为什么 .nav-tabs.nav-justified > li { display: table-cell; width: 1%; }

来源:5-20 自适应导航(实现原理)

起个名真无语

2016-06-21 20:24

.nav-tabs.nav-justified > li { display: table-cell; width: 1%;  }   width:1%;为什么?

写回答 关注

3回答

  • 慕粉3913593
    2016-09-05 17:52:11

    我也觉得很奇怪为什么是1%,于是今天实验了一下,其实width不必是1%,这个值取决于你cell里内容的长度。举个例子,如果cell里输入‘one’,在chrome中其长度是27个像素,我设置包裹它的div的长度是1000px,那么width的值就可以设置为100/(1000/27)约为2.7%,那么小于2.7%的值都会使cell完整的填充div且cell的长度相等,一般都不会小于1%,所以这个宽度就有它的道理了。由于没有chrome的源码,无从知道table cell宽度的算法,但我通过实验得到了一个可信的算法:我在div中输出了10个‘one’,当width小于10%大于2.7%的时候比较简单,不会填满div,最右边有空白区域,其大小直接用减法即可得到,不多说。当width大于10%的时候最右一个cell宽度坍塌,中间的cell长度也是不等的,其算法为

    1. 计算出可以放多少个cell,比如width=15%,可以放6.666666...个‘one’,可是我要放10个

    2. 于是要保证有3个one是最小的宽度:27px,最右边的3个one就是了

    3. 剩余的宽度:1000-27*3=919px,每个cell的宽度919/6.666....=137.85就是138px,所以有6个138px宽的cell

    4. 剩下的一个cell的宽度:1000-6*138-27*3=91px

    5. 改变width=17%,上面的算法依然成立。

      http://img.mukewang.com/57cd4041000150d012540435.jpg

    侠客岛的含笑

    你为什么不用27直接除以1000,

    2016-12-28 07:54:38

    共 1 条回复 >

  • qq_忆真芙蓉_0
    2016-06-25 14:31:21

    width:1%; 防止没有内容时,造成整个布局的坍塌

    起个名真无语

    那为什么不是min-width:1%;???

    2016-06-27 19:54:33

    共 1 条回复 >

  • 明阳青昀
    2016-06-22 10:31:30

    可能是格子之间的间隔距离吧

玩转Bootstrap(基础)

告诉你使用Bootstrap,并且能够独立定制出适合自己的Bootstrap

314546 学习 · 2275 问题

查看课程

相似问题