CSS按比例等分box,并显示分隔线

2 篇文章 0 订阅
2 篇文章 0 订阅
代码如下:
  <ul>
        <li>我是菜单一</li>
        <li>我是菜单二</li>
        <li>我是菜单三</li>
    </ul>
Css Code:
   ul {
       overflow:hidden;
       width:640px;
       margin:0 auto;
       border:1px solid #ccc;
       text-align:center;
             }
         ul li {
        list-style:none;
        float:left;
         width:33.33%;
         padding:10px 0;

          }

实现的效果为

OK,That's so easy!,这样我就可以三等分了,可是各位看官,如果你细心的情况下,你会发现,现在导航都会加些分隔,有同学这样说了,既然等分都没有一点问题,加分隔就加一个右边框不就可以了吗?OK,你说的没有错,这样想就成功了50%,我们就按他所说的,来演示一下效果:

啊,大事不好了,怎么第三项都被撑破了,自动换行了,我们完美的导航出现了问题,这样的效果我相信,没有人会觉得这是正常的,原来我们在加border-right:1px solid #ccc;时,会自动为li增加1px,最后我们的总宽度为33.33*3+3>100,总宽度早已经不是100了,他们一起把ul撑破了,出现这样的情况与以前的html制定的标准有关,现在html 5横空出世,妈妈再不担心我找不到家了。html 5引入了新的属性 box-sizing,当你设置一个元素为box-sizing: border-box; 时,此元素的内边距和边框不再会增加它的宽度。如果宽度不增加,我们当然不担心被撑破呀,于是我们赶紧为li增加  -webkit-box-sizing: border-box;box-sizing: border-box;

看到了,我们的子元素再也不出轨了,因为我们用box-size并没有为其增加宽度,我相信这个Demo各位小伙伴会常用到的。
给一个最终的CSS

 ul {

       overflow:hidden;

       width:640px;

       margin:0 auto;

       border:1px solid #ccc;

       text-align:center;

             }

    ul li {

    list-style:none;

    float:left;

    width:33.33%;

    padding:10px 0;

    border-right:1px solid #ccc;

    -webkit-box-sizing: border-box;

    box-sizing: border-box;

    }

    ul li:last-child {border-right:0;}

 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值