运行结果如图4-5所示。
![]() |
| 图4-5 具有空间弹性的菜单栏 |
代码分析:在示例4-5中,设置container类的盒元素的宽度为100%,即浏览器窗口的宽度,会随着窗口宽度的变化而变化。把菜单栏的box-flex属性设置为1,使其具有空间弹性以分配盒元素的剩余空间。如图4-5所示,菜单栏由灰线开始填充了盒元素的剩余空间,菜单栏本身的宽度变大了。在本示例中,当窗口的宽度改变时,菜单栏的宽度也会跟着变化。 广州网站设计
3. 多个子元素的弹性空间
当盒元素内部的多个子元素都定义box-flex属性时,子元素的空间弹性是相对的。浏览器将会把各个子元素的box-flex属性值相加得到一个总值,然后根据各自的值占总值的比例来分配盒元素的剩余空间。
对于示例4-5中的文章列表栏目也设置弹性,值为2。调整样式表如下。
【示例4-6】 多个子元素的弹性空间分配。
广州网站设计
- <style type="text/css">
- .container {
- width:100%; /* 设置盒元素的宽度为100% */
- background-color:#CCC;
- display:-webkit-box;
- display:-moz-box;
- display:box;
- }
- .container div {
- color:#FFF;
- font-size:12px;
- padding:10px;
- line-height:20px;
- width:100px; /* 设置三个栏目的固定宽度100px */
- }
- .container div ul {
- margin:0;
- padding-left:20px;
- }
- .container .left-aside {
- background-color:#F63;
- /* 设置菜单栏具有空间弹性 */
- -webkit-box-flex:1; /* 兼容webkit内核 */
- -moz-box-flex:1; /* 兼容gecko内核 */
- box-flex:1; /* 标准用法 */
- }
- .container .center-content {
- background-color:#390;
- /* 设置文章列表栏有空间弹性 */
- -webkit-box-flex:2; /* 兼容webkit内核 */
- -moz-box-flex:2; /* 兼容gecko内核 */
- box-flex:2; /* 标准用法 */
- }
- .container .right-aside {
- background-color:#039;
- }
- </style>
![]() |
| 图4-6 多个子元素的弹性空间分配 |





