position:absolute、float、display:inline-block
2017-11-17 18:02
423 查看
绝对定位position:absolute 完全脱离了普通流,无法跟普通流建立交互关系(普通流能影响绝对定位,但绝对定位不影响普通流)。这样来说,在弹性布局的场景中,绝对定位就存在缺陷。但也因为它完全脱离文档流,定位绝对很擅长做层叠布局。另外,绝对定位对于元素位置的控制也是最为灵活的。
浮动,本身不是用来做布局的,而是做文字环绕效果。但是CSS2.1好像也就这个属性能够快速地满足一些需求,因此才有了浮动布局。浮动相对绝对定位好处是,它可以影响IFC,也可以通过 clear 清除浮动影响块级布局,可以与普通流建立良好的交互。 而且浮动本身是脱离普通流的,在顶端对齐和右对齐上有特别的优势。而 inline-block 的垂直对齐上有更多选择。
inline-block,这个属性也不是用来布局的(偏向于排版),但是在 CSS3 普及之前,它的用处也很大。该元素的盒子在行框中进行格式化,其顺序与源HTML中的顺序一一对应。 同时该元素不脱离普通流,这比浮动来说有更大的优势,它可以跟普通流产生自然交互,而不必要借助去其他属性。而且相比浮动,相邻元素间的垂直对齐方式,inline-block 比 float 更加灵活, float 格式化时有一条规则,就是越高越好(因此常常表现为顶端对齐),而 inline-block 在行内格式化,拥有更灵活的垂直对齐方式。
应用:
如果使用了浮动,清除浮动就会成为你的副作用,而且如果你没有良好的HTML/CSS 结构的话,清除浮动是一个很复杂的事情。
inline-block 虽然避免了清除浮动的事情,但是会有另一个副作用,即空白符问题。
当居右(右浮动)时, float是按先后顺序来的, 先写的排子右边; 而inline-block则保持左右顺序不变。
推荐网站http://learnlayout.com/了解CSS布局。
浮动,本身不是用来做布局的,而是做文字环绕效果。但是CSS2.1好像也就这个属性能够快速地满足一些需求,因此才有了浮动布局。浮动相对绝对定位好处是,它可以影响IFC,也可以通过 clear 清除浮动影响块级布局,可以与普通流建立良好的交互。 而且浮动本身是脱离普通流的,在顶端对齐和右对齐上有特别的优势。而 inline-block 的垂直对齐上有更多选择。
inline-block,这个属性也不是用来布局的(偏向于排版),但是在 CSS3 普及之前,它的用处也很大。该元素的盒子在行框中进行格式化,其顺序与源HTML中的顺序一一对应。 同时该元素不脱离普通流,这比浮动来说有更大的优势,它可以跟普通流产生自然交互,而不必要借助去其他属性。而且相比浮动,相邻元素间的垂直对齐方式,inline-block 比 float 更加灵活, float 格式化时有一条规则,就是越高越好(因此常常表现为顶端对齐),而 inline-block 在行内格式化,拥有更灵活的垂直对齐方式。
应用:
如果使用了浮动,清除浮动就会成为你的副作用,而且如果你没有良好的HTML/CSS 结构的话,清除浮动是一个很复杂的事情。
inline-block 虽然避免了清除浮动的事情,但是会有另一个副作用,即空白符问题。
当居右(右浮动)时, float是按先后顺序来的, 先写的排子右边; 而inline-block则保持左右顺序不变。
推荐网站http://learnlayout.com/了解CSS布局。
相关文章推荐
- position:absolute、float、display:inline-block 区别
- [css]margin/padding/display:inline/block/float
- 避免使用不必要的float(display:inline,position:relative)
- CSS 用display:inline-block代替float: left排版注意事项
- display:inline-block与float在布局时的差异分析
- 第三期《float 与 display:inline-block的区别是什么》
- CSS之使用display:inline-block与float布局的区别
- display:inline-block 和float:left 的区别
- display:inline-block和float:left的选择
- float和display:inline-block
- css之display:inline-block与float区别(可以尝试用一下)
- display:inline-block 和 float 水平排列区别?
- 避免使用不必要的float(display:inline,position:relative)
- float: left; margin: 0 auto; display:inline-block;三者的之间的纠葛
- css 用 display: inline-block; 代替 float
- display:inline-block替换float的问题
- display:inline-block 和 float:left的区别
- display:inline-block和float
- css之display:inline-block与float区别
- display:inline-block造成的间距