这篇文章主要是对任务三笔记1(定位)一文的补充,如果想获取更加详细的定位知识,可以先阅读<a href="http://www.jianshu.com/p/4ef59dc9b967">任务三笔记1(定位)</a>
清除浮动
1.overflow技巧
一种清除浮动的技巧是使用overflow属性。在具有浮动元素的父容器中设置"overflow"的属性值为"auto",这样父容器就会有一个高度存在。
在IE6中,父容器是需要设置一个"width"和一个"height"。因为高度可能是一个变量,宽度为100%,他们将能正常的工作。使用“overflow:auto;”,在IE浏览器中会给元素添加滚动条,这样一来,最好是直接使用“overflow:hidden;”来清除浮动。
但是使用"overflow"技巧清除浮动,确实存在一些缺点。例如:你想要给容器内的元素添加一个盒子阴影和制作一个下拉菜单。就会发现阴影和菜单会被切断在父元素之内。
2.clearfix技巧
"clearfix"技巧是基于在父元素上使用":before" 和":after"两个伪类。使用这些伪类,我们可以在父元素前后创建隐藏元素。防止子元素顶部和底部的外边距塌陷,使用"display: table"确保在IE6/7下的一致性。
.box-set:before,.box-set:after {
content: "";
display: table;
}
.box-set:after {
clear: both;
}
.box-set {
*zoom: 1;
}
很多情况下,你需要控制更多元素的位置,而且超过了浮动所能提供的范围,这个时候我们就需要发挥"position"属性的作用。"position"属性提供的五个不同属性值,每种属性值可以给元素提供不同的位置。
static
任务三笔记1(定位)有提过不在记录
relative
任务三笔记1(定位)有提过不在记录
absolute
当一个绝对元素有固定的高度和宽度,并且盒子同时设置了"top" 和"bottom"时,"top"更具有优先级;当同时设置了"left" 和 "right"时,优先级取决于它的页面使用的语言,例如,如果你的页面是英文页面,那么"left"属性优先级高,如果你的页面是阿拉伯语,那么"right"的位移属性优先级高。
当一个绝对定位元素没有明确的指明高度和宽度,同时使用盒子位移的"top" 和"bottom"属性时,会使整个元素的高度跨越整个容器。同样的,当这个元素同时使用位移"left" 和 "right"属性值,会使整个元素宽度跨越整个容器。
fixed
固定定位最常用于在页面创建固定头部、或者脚部、或者一个固定的侧栏。注意如何设置"left" 和 "right"两个盒子位移,使得"页脚"跨越了页面的整个宽度,而不需要使用margin、padding和border来破坏盒模型就做到了收缩自如。
HTML
<footer>Fixed Footer</footer>
CSS
footer{
position: fixed;
bottom: 0;
left: 0;
right: 0;
}
z-index
通常认为Web页面是二维页面,显示的元素都在X轴Y轴上。当你的元素有定位的时候,它们有时候会放置在另一个元素的顶部。要改变这些元素是一个怎么样的层叠顺序,要知道Z轴,z轴是用"z-index"来控制的。
元素的"z-index"值越高,将会出现在越上面,不管元素在DOM的哪个位置。
给元素设置"z-index"属性,首先要在这个元素上设置了"position"属性值为"relative"、"absolute"或者"fixed"之一。