浮动就是一个变态、魔鬼,自私自利且影响他人的混球。 —— 张鑫旭
如何使用float
- 子元素加上
float: left和width - 父元素加上
.clearfix - 就这些,没了!
代码示例
<div class="fatherElement"><div class="x clearfix"><div class="childElement"></div><div class="childElement"></div></div></div>
.clearfix::after{content: '';display: block;clear: both;}.childElement{float: left; /* 子元素加float */width: 191px; /* 子元素宽度 */margin-right: 12px; /* 子元素间距 */}.x{margin-right: -12px; /* 巧妙使用负margin居中 */}
至于
.clearfix为什么这么写,可以参考clear - MDN,反正我是没看懂。
一些经验
- 有经验者会留一些空间或最后一个元素不设置width;
- 这个布局是为IE准备的,应付老版本IE足矣;
- 对于双倍margin的bug,解决方法可以参考老版本IE双边距问题;
- 手机页面傻子才用float;
- float需要程序员自己计算宽度,十分不灵活;
更多参考资料: CSS float浮动的深入研究、详解及拓展(一) - 张鑫旭 CSS float浮动的深入研究、详解及拓展(二) - 张鑫旭
