• 弹性盒模型计算


    弹性盒模型计算

    弹性盒模型计算

    DIV1
    DIV2
    DIV3
    DIV4

    弹性盒模型宽度为0的前提下,如果弹性盒模型内设置了具体宽度,计算盒模型的宽度时,应该用父级的宽度减去具体设置的值,然后剩下的宽度按照flex等分计算。
    也可理解为:父级减去内部所有固定宽度后,按照flex总份数等分,每个盒子再乘以所占份数最后加上自己的固定宽度(margin、padding、border)。

    示例:

    此例设置DIV1、DIV2、DIV3为弹性盒模型,DIV1占2份,DIV2、DIV3各占1份。DIV4为固定宽度200px,左边距60px。所有DIV设置内边距50px,边框20px。父级总宽1000px。

    第一步:用父级总宽减去所有固定宽度,4个div共有8个50px的横向padding、8个20px的横向border,1个200px的固定div,以及一个横向60px的margin
    1000 - 50 * 8 - 20 * 8 - 200 - 60 = 180

    第二步:将剩下的宽度按照flex的份数等分,div1为2、div2为1、div3为1,一共为4份
    180 / 4 = 45

    结果:
    DIV1的宽度为 45 * 2 + 50 * 2 = 190
    DIV2的宽度为 45 * 1 + 50 * 2 = 145
    DIV3的宽度为 45 * 1 + 50 * 2 = 145
    DIV4的宽度为 200 + 50 * 2 = 300

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>弹性盒子模型计算</title>
    <style>
    body { font-size:1em; line-height:1.5em; padding:50px; color:#333; font-family:"微软雅黑"; }
    
    .box { width:1000px; background:#EBEBEB; border:10px solid #CCC; display:-webkit-box; -webkit-box-orient:horizontal; }
    .box div { padding:50px; border:20px solid #00e5ed; color:#FFF; text-shadow:2px 2px 2px rgba(0, 0, 0, .5); width:0; }
    .box .div1 { -webkit-box-flex:2; background:#12d698; }
    .box .div2 { -webkit-box-flex:1; background:#128ed6; }
    .box .div3 { -webkit-box-flex:1; background:#efb017; }
    .box .div4 { width:200px; background:gray; margin-left:60px; }
    </style>
    </head>
    
    <body>
    <h1>弹性和模型计算</h1>
    <div class="box">
      <div class="div1">DIV1</div>
      <div class="div2">DIV2</div>
      <div class="div3">DIV3</div>
      <div class="div4">DIV4</div>
    </div>
    
    <p>弹性盒模型宽度为0的前提下,如果弹性盒模型内设置了具体宽度,计算盒模型的宽度时,应该用父级的宽度减去具体设置的值,然后剩下的宽度按照flex等分计算。<br />
    也可理解为:父级减去内部所有固定宽度后,按照flex总份数等分,每个盒子再乘以所占份数最后加上自己的固定宽度(margin、padding、border)。
    </p>
    <h2>示例:</h2>
    <p>
    此例设置DIV1、DIV2、DIV3为弹性盒模型,DIV1占2份,DIV2、DIV3各占1份。DIV4为固定宽度200px,左边距60px。所有DIV设置内边距50px,边框20px。父级总宽1000px。<br /><br />
    第一步:用父级总宽减去所有固定宽度,4个div共有8个50px的横向padding、8个20px的横向border,1个200px的固定div,以及一个横向60px的margin<br />
    1000 - 50 * 8 - 20 * 8 - 200 - 60 = 180<br /><br />
    第二步:将剩下的宽度按照flex的份数等分,div1为2、div2为1、div3为1,一共为4份<br />
    180 / 4 = 45<br /><br />
    结果:<br />
    DIV1的宽度为 45 * 2 + 50 * 2 = 190<br />
    DIV2的宽度为 45 * 1 + 50 * 2 = 145<br />
    DIV3的宽度为 45 * 1 + 50 * 2 = 145<br />
    DIV4的宽度为 200 + 50 * 2 = 300
    </p>
    </body>
    </html>
  • 相关阅读:
    JAVA中获取当前系统时间
    struts2文件下载及 <param name="inputName">inputStream</param>的理解
    struts2文件下载,动态设置资源地址
    IE8上传文件时文件本地路径变成"C:fakepath"的问题
    Java设置session超时(失效)的三种方式
    学一点Git--20分钟git快速上手
    关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
    GBK、GB2312、iso-8859-1之间的区别
    mysql的多表查询
    mysql错误:“ Every derived table must have its own alias”(每个派生出来的表都必须有一个自己的别名)
  • 原文地址:https://www.cnblogs.com/baie/p/3158509.html
Copyright © 2020-2023  润新知