一、浮动和定位可以让元素脱离文档流
定位有三种,其中absolute/fixed会脱离文档流,relative不会脱离文档流,
static是默认的样式,不会脱离文档流
当position为relative/absolute/fixed时top/right/z-index(设置元素的层叠,值越大,可以覆盖值小的元素,即最大的可见,较小的被覆盖,值可以为负值;都没有设置时,谁在后面显示谁)
广告一般用fixed定位,不管滚动条如何滚动,元素始终再远啦的位置,不会改变
或者可以通过js实现
relative相对于自己原来的位置定位,但是之前的文档流还在,后面的元素直接接着原来的位置排列,忽略偏移后的元素位置
absolute设置定位时,相对于static定位以外的第一个父元素进行定位,如果一直没有,可以直接找到body,会脱离文档流,该元素后的元素会直接忽略此元素进行定位
absolute定位的时候居中设置top:50%left:50%;margin-left:-宽度的一半;margin-top:-高度的一半
二、浮动
块级元素从上到下,依次排列;行内元素从左到右依次排列;
浮动的元素可以向左或向右浮动,直到它的外边缘碰到另一个元素或者另一个浮动元素或者边框
快捷键:div.container>div.box*3按tab键可以生成如下代码:
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div></div>
.box:nth-child(2){}
浮动元素对块级元素没有影响,浮动元素对文字的影响。浮动渲染的时候没有向上走,只能靠左靠右,放不下的时候往下走,如果想让元素向上移动,可以用负top
浮动的清除,元素浮动后,其后的元素
父容器会忽略浮动元素,而且浮动元素会对其他元素如文字造成影响
none
任何属性只能对自己生效,就是想让谁放在哪里,就让该元素进行浮动比如一二两个元素都是左浮动,应该对第二个元素进行设置渲染,不能对第一个进行渲染。如果第二个元素 想向下,其右还有元素时,可以设置第二个元素clear:right,如果右边没有元素,设置clear:right是没有用的,必须设置