• box-flex实现三等分布局


    前言:

       我还是个前端的菜鸟,现在在实习,接触到一些移动web的开发任务,遇到了很多问题,记录一下顺便分享给大家。

    问题?

       要实现下图的三等分屏幕效果。此页面为手机web页面,要求自适应宽度。

     

     

     

    探索:

      期初是用的width33.33%,但是这样很容易出错,因为marginborderpadding不计算在盒子的width中,所以33.33%显然达不到效果,会应为有marginpadding的参合整体的宽度超过了,实际的width100%

       

    解决:

         (1css3 box-sizing属性就是控制盒子的宽度计算包括margin borderpadding

              box-sizing:border-box; /*border计算在width*/

              -moz-box-sizing:border-box; /* Firefox */

              -webkit-box-sizing:border-box; /* Safari */

     

         (2)使用css3 calc();

             calc((100% - (margin + padding )* 3 * 2) / 3 );   
         -webkit-calc((100% - (margin + padding )* 3 * 2) / 3 ); 
         -moz-calc((100% - (margin + padding )* 3 * 2) / 3 ); 

        

         (3) CSS3 box-flex 属性

             重点来了,这个新特性可能使用的比较少,但感觉很好用所以推荐一下哈。

     

            css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间

    <div class="nav">

      <div class="nav-li">成就</div>

      <div class="nav-li">动态</div>

      <div class="nav-li">收藏</div>

    </div>

    Css:

       .nav{

     

     display:inline-block;

        /* Firefox */

        display:-moz-box;

        -moz-box-orient:horizontal;

        /* Safari, Opera, and Chrome */

        display:-webkit-box;

        -webkit-box-orient:horizontal;

        /* W3C */

        display:box;

        box-orient:horizontal;

    }

    .nav-li{

    height: 40px;

    line-height: 40px;

    -webkit-box-flex: 1.0;

    -moz-box-flex:1.0;

     box-flex:1.0;

    }

    就是这样,按照上面写就可以达到自动均分了啦啦啦。这样写的好处就是,你不管添加几个内容《div》都会是均分的。 

  • 相关阅读:
    java程序员面试金典--i++
    JavaScript 装逼指南
    轻松学习 JavaScript——第 8 部分:JavaScript 中的类
    轻松学习 JavaScript——第 7 部分:对象属性描述符
    轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数
    轻松学习 JavaScript——第 5 部分:简化函数提升
    轻松学习 JavaScript——第 4 部分:函数中的 arguments 对象
    轻松学习 JavaScript——第 3 部分:函数中的默认参数
    布隆过滤器
    决策树(ID3、C4.5、CART)
  • 原文地址:https://www.cnblogs.com/OrangeManLi/p/4112991.html
Copyright © 2020-2023  润新知