zoukankan      html  css  js  c++  java
  • CSS3 弹性盒模型 box-flex

    说明:本文档兼容性测试基础环境为:windows系统;IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51

    语法:

    box-flex<number>

    默认值:0

    取值:

    <number>
    使用浮点数指定对象所分配其父元素剩余空间的比例。

    说明:

    设置或检索弹性盒模型对象的子元素如何分配其剩余空间。

    示例:将一个容器分成6份,子对象a分1份,b分2份,c分3份

    HTML Code:

    <ul id="box">
    	<li>a</li>
    	<li>b</li>
    	<li>c</li>
    </ul>

    CSS Code:

    #box{display:box;240px;height:100px;margin:0;padding:10px;list-style:none;}
    #box li:nth-child(1){box-flex:1;}
    #box li:nth-child(2){box-flex:1;}
    #box li:nth-child(3){box-flex:2;}

    上面代码请自行加上-moz-,-webkit-之类的。box-flex生效需定义其父元素display为box或inline-box

    误区:注意box-flex只是动态分配父元素的剩余空间,而不是整个父元素的空间。如上例,父元素#box的宽度为240px,如果你认为a,b,c的 宽度分别为60, 60, 120那么就错了,因为box-flex只是分配父元素的剩余空间而已,所以a,b,c所分到的应该是除内容外所剩余下来的宽度

    为了清晰所谓的剩余空间分配,对上例稍作修改,HTML Code不变

    CSS Code:

    #box{display:box;240px;height:100px;margin:0;padding:10px;list-style:none;}
    .box li{50px;padding:7px;}
    #box li:nth-child(1){box-flex:1;}
    #box li:nth-child(2){box-flex:1;}
    #box li:nth-child(3){box-flex:2;}

    从上面的代码,我们可以知道a,b,c的宽度分别为50+7*2=64px,三者加起来即 192px,所以剩下的240-192=48px才是父元素的剩余空间,于是a,b,c按照设定的1:1:2来分配这48px,a分得12px,b分得 12px,c分得24px,所以最终a=64+12=76px,b=64+12=76px,c=64+24=88px

    对应的脚本特性为boxFlex

    兼容性:

    示例:

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
    <meta charset="utf-8" />
    <title>box-flex_CSS参考手册_web前端开发参考手册系列</title>
    <style>
    h1{font:bold 20px/1.5 georgia,simsun,sans-serif;}
    .box{display:-webkit-box;display:-moz-box;display:-o-box;display:-ms-box;display:box;background:#000;240px;height:100px;margin:0;padding:10px;list-style:none;vertical-align:top;}
    #box li:nth-child(1){-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;-ms-box-flex:1;box-flex:1;background:#666;}
    #box li:nth-child(2){-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;-ms-box-flex:1;box-flex:1;background:#999;}
    #box li:nth-child(3){-webkit-box-flex:2;-moz-box-flex:2;-o-box-flex:2;-ms-box-flex:2;box-flex:2;background:#ccc;}
    </style>
    </head>
    <body>
    <h1>box-flex示例:</h1>
    <ul id="box" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>
    </body>
    </html>

  • 相关阅读:
    Android网络开发的那些事儿
    first day to Ruby on rails
    [转]Windows SDK与DirectX SDK集成
    Windows8
    [转]MPI--MPI+VS2010 配置及编译
    codeblock添加头文件路径和静态库路径
    汇编笔记1:debug
    Eclipse Error
    Android SDk 离线安装方法
    求一程序员合租,回龙观东大街地铁站十分钟,精装次卧2000,无需押金,一共两家
  • 原文地址:https://www.cnblogs.com/huaan011/p/3704028.html
Copyright © 2011-2022 走看看