HTML和CSS的那些事儿4-Position,Floats,Z-Index
恩,看来还是很多点要深入…比如不同的浏览器对所有dom元素都有各自的默认样式,这种默认样式赋予标签语义的外在表现,这就是为什么h1~h6默认就是粗体,一看就知道是做标题的料~
1,定位之默认定位-static position
所有元素样式的position属性的值都是static。position:static使元素至于正常的呈现流中。没啥好说的。。
2,定位之绝对定位-absolute Position
相对于根元素HTML
相对于其他容器元素
绝对定位的元素永远相对于包含它的容器元素进行定位,而不管包含它的容器元素的定位属性是啥。所以绝对定位的元素脱离了正常的元素呈现流(块状元素从上到下,内联元素从左到右)。
在非绝对定位元素的眼里:绝对定位的那哥们就一疯子,让它去逍遥吧,我们在正常的活着,并且呈现的时候忽略掉它的存在就可以了。
3,定位之相对定位-relative position
相对定位的元素不会从正常的元素呈现流中脱离。其相邻的元素会按着正常的呈现方式呈现,
在普通元素的眼里:相对定位的那哥们是有点另类,可通过left和top属性到处劈腿,但还好不太过分。我们呈现的时候还是兼顾着它吧。
相对定位元素的“相对”,不是相对于别的元素,而是相对于当前呈现流中元素没加position:relative之前自身的位置!(我懂了,不过也太TMD拗口了唉)
绝对定位和相对定位的配合使用可达到各种定位效果。
4,定位之固定定位-fixed position
固定定位是css定位史上的亮点,可惜IE眼睛长在PP后面,看不到它所以对它不友好唉。。特别是IE6那厮混蛋!
固定定位和绝对定位一样的疯狂!
绝对定位相对于父级容器元素;固定定位只相对于浏览器的视窗(viewport)。
5,浮动-Floats
浮动在css的本意不是用于定位的!俺要浮动元素,实现内容或元素排版!
6,浮动之清除浮动-Clear Floats
在元素A上清除浮动,使得A不再围绕别的浮动元素。反过来说,一般情况下浮动的元素会被邻近的内容围绕呈现,当邻近的元素应用了clear属性,就会和浮动的元素分开。
clear具体可以有left,right,和both.
最精简的clearfix写法(来自于古狗大神):
.clearfix{zoom:1;}
.clearfix:after{
content:’\20’;display:block;clear:both;
}
说明:
content:'\20'指定在浮动列表后增加一个空白字符,
首先这个字符不可见,无需visibility:hidden来隐藏,
其次他没有高度,无需height:0来隐藏其高度…
7,Z-Index-我叫Z-index
说白了就是元素堆叠时的索引号(序号)。z-index为元素建立了堆叠方向的坐标。