1. 引言
原文:bitsofcode的HOW POSITIONING CSS PROPERTIES INTERACT
译者:爱前端,乐分享的FedFun,前端痴王海庆的博客。
译言:来看下CSS标布局情况下,定位相关属性之间的相互作用,意译为主,不当之处敬请指正。
阅读建议5分钟。
2. 正文
在定位元素时,我们经常用到四个属性display
、position
、float
和偏移属性top right bottom left
等。但不是在每个元素上都可以同时应用这四个属性,一些特殊的值组合会覆盖其他属性的应用,这些组合有:
display: none
position: absolute
或position: fixed
float: left
或float: right
position: static
接下来,我们就一起来研究这些组合之间如何相互作用。
2.1 DISPLAY: NONE
当display
设置成none时,其它定位属性统统失效,因为没有产生盒模型(the box model)。
1 | .foo { |
2.2 POSITION: ABSOLUTE (OR FIXED)
如果将position
属性设置为absolute
或fixed
时,将会产生以下作用:
Float
对float
属性设置的任何值都会被覆盖,float
属性的计算值(the computed value)自动设置为none
。
1 | .foo { |
DISPLAY
随着display
属性值的不同,计算值可能会被覆盖,如下表所示。
| 指定值 | 计算值 |
| ————- |:————-:|
| inline, inline-block, table-row-group, table-column, table-column-group, table-header-group, table-footer-group, table-row, table-cell, table-caption | block |
| inline-table | table |
| 其他值 | 跟指定值相同 |
下面的代码中,.foo
和.bar
表现上没有区别。
1 | .foo { |
2.3 FLOAT: LEFT (OR RIGHT)
除了上面两种情况,当我们把float
属性设置为left
或right
时,相互作用如下:
DISPLAY
跟上面绝对定位、固定定位类似,元素浮动后display
属性变换如上表所示。
下面代码中,.foo
和.bar
的表现效果也一样。
1 | .foo { |
2.4 POSITION: STATIC
除了上面的变化,当position
属性值为static
时,相互作用如下:
偏移值
当元素静态定位时,偏移属性将失效,如下代码所示。
1 | .foo { |
3. 声明
爱前端乐分享的FedFun,csdn专家博客,王海庆希望能对您有所帮助,限于作者水平有限,出错难免,欢迎拍砖!
欢迎任何形式的转载,烦请注明装载,保留本段文字。
本文原文链接http://blog.csdn.net/whqet/article/details/49464099
独立博客http://whqet.github.io
新浪微博http://weibo.com/FedFun
极客头条http://geek.csdn.net/user/publishlist/whqet