box-flex实现三等分布局

(转载)http://www.cnblogs.com/OrangeManLi/p/4112991.html

前言:

   我还是个前端的菜鸟,现在在实习,接触到一些移动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();

        width: calc((100% - (margin + padding )* 3 * 2) / 3 );   
    width: -webkit-calc((100% - (margin + padding )* 3 * 2) / 3 ); 
    width: -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》都会是均分的。 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值