左右两侧按1:1自适应,中间固定宽度500px
// CSS
/* 首先定义 container ,关注display */
/* webkit 是Chrome、Safari 的浏览器前缀 */
.container{margin: auto;display: -webkit-box;width: 80%;height: 200px;
}
/* 开始定义左、中、右 */
.left { -webkit-box-flex: 1; border: 1px dashed black;}
.main {width: 500px; border: 1px dashed black;}
.right {-webkit-box-flex: 1; border: 1px dashed black;}// HTML
<div class="container"><div class="left"></div><div class="main"></div><div class="right"></div>
</div>
很多时候,浏览器可能不支持弹性盒子(如:Opera 和 IE 9及之前版本).我们可以编写兼容性代码如下:
.father{display: -webkit-box; /* Chrome 和 Safari */display: -o-box; /* Opera */display: -moz-box; /* FireFox */display: -ms-box; /* IE */display: box;
}
.son_content{-webkit-box-flex: 4; -o-box-flex: 4;-moz-box-flex: 4;-ms-box-flex: 4;box-flex: 4;
}
我们希望,布局能纵向布局,代码如下: (ps:只用改变container,慢慢体会)
// CSS
.container{margin: 30px;display: -web-box;-moz-box-orient: block-axis;-webkit-box-orient: block-axis;-o-box-orient: block-axis;box-orient: block-axis;width: 800px;heigth: 500px;
}
效果如下:
参考《CSS高效开发实战》 P105~P108