• [ css 弹性盒子模型 flex-basis 属性 ] 弹性盒子模型flex布局中flex-basis属性讲解及实例演示的区别


    设置或检索弹性盒伸缩基准值:

        如果所有子元素的基准值之和大于剩余空间,则会根据每项设置的基准值,按比率伸缩剩余空间

    计算值 – 绝对数:在flex-container主方向大小不足以容纳flex items的flex-basis总和时,浏览器会自动缩小它们

    实例:

    <!DOCTYPE html>
    <html lang="zh-cmn-Hans">
    <head>
    <meta charset="utf-8" />
    <title>flex-basis_CSS参考手册_web前端开发参考手册系列</title>
    <meta name="author" content="Joy Du(飘零雾雨), dooyoe@gmail.com, www.doyoe.com" />
    <style>
    .Grid {
        color: #FFF;
        display: -webkit-flex;
        width: 400px;
        border: 1px solid red;
    }
    
    .first {
        background: green;
        flex-basis: 400px;
    }
    
    .last {
        background: orange;
        flex-basis: 200px;
    }
    </style>
    </head>
    <body>
        <div class='Grid'>
            <div class='first'>我曾在天上见过地的繁华</div>
            <div class='last'>陈三说的</div>
        </div>
    </body>
    </html>

    解析:

    这里,.first的宽度是267px,.last的宽度是133px,它们是这样计算的:

     代码如下  
    .example-first(宽度) = 400 * (400 / (400 + 200)) = 266.666666667
    .example-last(宽度) = 400 * (200 / (400 + 200)) = 133.333333333

    也就是说,flex container按比例分配flex items的大小

    计算值 – 百分比:

    百分比的情况与计算值是一样的,如果flex container足够包含flex items的flex-basis总值,则10%的意思就是flex container在主方向的大小乘以10%。
    如果flex container不足以包含flex items的flex-basis总值

    实例:

    <!DOCTYPE html>
    <html lang="zh-cmn-Hans">
    <head>
    <meta charset="utf-8" />
    <title>-webkit-flex-basis_CSS参考手册_web前端开发参考手册系列</title>
    <meta name="author" content="Joy Du(飘零雾雨), dooyoe@gmail.com, www.doyoe.com" />
    <style>
    .example2-Grid {
        border: 3px solid black;
        display: -webkit-flex;
        width:700px;
        height: 200px;
    }
    
    .example2-Grid div:nth-of-type(1) {
        background: rgb(0, 137, 250);
        -webkit-flex-basis: 100%;   //190/100
    }
    
    .example2-Grid div:nth-of-type(2) {
        background: rgb(105, 0, 88);
        -webkit-flex-basis: 20%;
    }
    
    .example2-Grid div:nth-of-type(3) {
        background: rgb(255, 59, 0);
        -webkit-flex-basis: 30%;
    }
    
    .example2-Grid div:nth-of-type(4) {
        background: rgb(0, 197, 73);
        -webkit-flex-basis: 40%;
    }
    </style>
    </head>
    <body>
        <div class="example2-Grid">
            <div></div>
            <div></div>
            <div></div>
            <div></div>
        </div>
    </body>
    </html>

    解析:

    其中第一个flex item的flex-basis取值为100%,则计算时,它的main size占比是:

     代码如下  
    100% / (100% + 20% + 30% + 40%) = 52.631578947%

    真正设计或实现页面时,我们通常不可能做这样的计算,但了解计算过程的话,心里有底,碰上问题,就知道怎么解决。

  • 相关阅读:
    vim插件管理利器
    Ubuntu下安装java
    Eclipse的vim插件viPlugin的安装
    Ubuntu下如何检查文件的md5,sha-512码
    C语言的工具集
    ubuntu下禁用和恢复触摸板
    linux下开发C语言需要安装的manpages手册
    linux下C++的man文件安装
    源码编译安装git
    EditText属性详解
  • 原文地址:https://www.cnblogs.com/mysearchblog/p/5651961.html
Copyright © 2020-2023  润新知