当下各种手机,平板尺寸不一,如果盒模型只能固定尺寸,不能随意压缩,将不能很好的迎合这个时代。所以css3推出了新的盒模型——弹性盒子模型(Flexible Box Model)。
弹性盒模型可以水平布局,可以垂直布局,还可以调换顺序,可以设置不等的百分比等。
1.弹性盒子column分栏
1 <h2>1.弹性盒子column分栏</h2>
2 <div class="freebox">
3 <img src="image/moon.jpg" alt="天宫二号" /> 9月15日晚10点04分,八月十五中秋节夜晚,甘肃酒泉,天宫二号飞行器发射升空。在酒泉卫星发射中心,一轮满月周围惊现一圈月晕,这为即将升空的火箭背景加分不少。(图片来源:东方IC)
4 <p>
5 这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻.
6 </p>
7 <p>
8 这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻,这是一段新闻.
9 </p>
10 </div>
1 /*弹性盒子分栏*/
2
3 .freebox {
4 -webkit-column-count: 3;
5 -webkit-column-rule-style: dotted;
6 -webkit-column-gap: 30px;
7 -moz-column-count: 3;/*兼容火狐浏览器*/
8 -moz-column-rule-style: dotted;
9 -moz-column-gap: 30px;
10 column-count: 3;/*兼容原生css*/
11 column-rule-style: dotted;
12 column-gap: 30px;
13 margin: 10px auto;
14 }
15
16 div img {
17 width: 320px;
18 height: 200px;
19 }
20
21 div p {
22 text-indent: 30px;
23 }
效果:
这个方法虽然非常好用,一句代码就能实现完美分栏,但是兼容性不佳,火狐,谷歌等浏览器都还处于试验阶段。
了解即可,不宜过分依赖,下面几种方法一样。
2.旧版弹性盒子居中布局
1 <!-- 旧版弹性盒子居中布局 -->
2 <h2>2.旧版弹性盒子居中布局</h2>
3 <div class="centerimg">
4 <img src="image/moon.jpg" alt="天宫二号" />
5 </div>
1 /*旧版弹性盒子居中布局*/
2
3 .centerimg {
4 width: 600px;
5 height: 400px;
6 margin: 10px auto;
7 display: -webkit-box;
8 display: -moz-box;
9 display: box;
10 -webkit-box-pack: center;
11 -moz-box-pack: center;
12 box-pack: center;
13 -webkit-box-align: center;
14 -moz-box-align: center;
15 box-align: center;
16 background: #a7ffa7;
17 }
效果:
3.新版弹性盒子排序
1 <!-- 新版弹性盒子排序 -->
2 <h2>3.新版弹性盒子排序</h2>
3 <div class="contant_row">
4 <div class="first">
5 1号盒子排第三(-webkit-order:3)
6 </div>
7 <div class="second">
8 2号盒子排第一(-webkit-order:1)
9 </div>
10 <div class="third">
11 3号盒子排第二(-webkit-order:2)
12 </div>
13 </div>
14 <div class="contant_column">
15 <div class="first">
16 1号盒子排第三(-webkit-order:3)
17 </div>
18 <div class="second">
19 2号盒子排第一(-webkit-order:1)
20 </div>
21 <div class="third">
22 3号盒子排第二(-webkit-order:2)
23 </div>
24 </div>
1 /*新版弹性盒子排序*/
2
3 .contant_row {
4 width: 600px;
5 height: 200px;
6 margin: 10px auto;
7 display: -webkit-flex;
8 display: flex;
9 -webkit-flex-direction: row;
10 -moz-flex-direction: row;
11 flex-direction: row;
12 border: 1px solid #f00;
13 }
14
15 .contant_column {
16 width: 600px;
17 height: 200px;
18 margin: 10px auto;
19 display: -webkit-flex;
20 display: flex;
21 -webkit-flex-direction: column;
22 -moz-flex-direction: column;
23 flex-direction: column;
24 border: 1px solid #f00;
25 }
26
27 .first {
28 width: 100px;
29 height: 100px;
30 -webkit-flex: 1;
31 -moz-flex: 1;
32 flex: 1;
33 -webkit-order: 3;
34 -moz-order: 3;
35 order: 3;
36 color: #fff;
37 background: red;
38 }
39
40 .second {
41 width: 100px;
42 height: 100px;
43 -webkit-flex: 1;
44 -moz-flex: 1;
45 flex: 1;
46 -webkit-order: 1;
47 -moz-order: 1;
48 order: 1;
49 color: #fff;
50 background: green;
51 }
52
53 .third {
54 width: 100px;
55 height: 200px;
56 -webkit-flex: 2;
57 -moz-flex: 1;
58 flex: 1;
59 -webkit-order: 2;
60 -moz-order: 2;
61 order: 2;
62 color: #fff;
63 background: blue;
64 }
效果: