文档流的概念指什么?有哪种方式可以让元素脱离文档流?
- 文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.(自己的理解是从头到尾按照文档的顺序,该在什么位置就在什么位置,也可以按照上面的意思理解,自上而下,自左到右的顺序)
- 脱离文档流:
A. float
B. position:absolute
C. position:fixed
有几种定位方式,分别是如何实现定位的,使用场景如何?
- position:absolute 将对象从文档流中拖出,使用left,right,top,bottom等属性相对于他最近的定位祖先元素。如果没有这样一个祖先元素,则相对于原始的容器。。而其层叠通过z-index属性定义 。(布局内部)
- position:fixed 固定定位。相对于浏览器窗口定位,浏览器不会因此显示滚动条,而当滚动条滚动时,对象始终固定在原来位置。(广告、对话框、、、)
- position:relative 相对定位。对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置。(小偏移)
- 负margin:通过使用margin-top、margin-right、margin-bottom、margin-left使元素位置发生偏移。
absolute, relative, fixed 偏移的参考点分别是什么
- absolute 相对于父容器具有position属性的进行定位
- relative 相对于它自身原来的位置进行定位
- fixed 固定定位,相对于浏览器的窗口进行定位
z-index 有什么作用? 如何使用?
- 设置层级高低
- z-index:1 默认是0,也可以设置为负数
position:relative和负margin都可以使元素位置发生偏移?二者有什么区别
- position:relative 本身还处在文档流中,对其他元素没有影响。同时设置上下(左右)不会都生效,冲突默认上左生效
-
负margin方法使元素位置偏移,使元素在文档流中的位置发生了改变,其后的元素受其影响。margin-left;margin-top;自身会移动。而margin-left;margin-bottom影响其他元素。
如何让一个固定宽高的元素在页面上垂直水平居中?
.ct{
height:500px;
background:#ccc;
position:relative;
}
.box2{
width:100px;
height:100px;
border:1px solid;
position:absolute;
top:50%;
left:50%;
margin:-50px 0 0 -50px;
}
浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?
- 脱离文档流,使没设置高度父容器塌陷。
- 后面的元素挤上来,同时挤上来的元素内容被挤出(文字环绕)
清除浮动指什么? 如何清除浮动?
撑开父容器高度,使父容器占据浮动元素的文档流,以免影响其他元素
1.给父元素加高度
2.给父元素加浮动、position、overflow形成BFC,使父元素意识到浮动元素的存在。
3.加个div/伪类after并清楚两侧浮动,使小尾巴跑到最后一行,从而撑开高度。