一、浮動(dòng)和定位可以讓元素脫離文檔流
定位有三種,其中absolute/fixed會(huì)脫離文檔流,relative不會(huì)脫離文檔流,
static是默認(rèn)的樣式,不會(huì)脫離文檔流
當(dāng)position為relative/absolute/fixed時(shí)top/right/z-index(設(shè)置元素的層疊,值越大,可以覆蓋值小的元素,即最大的可見,較小的被覆蓋,值可以為負(fù)值;都沒有設(shè)置時(shí),誰在后面顯示誰)
廣告一般用fixed定位,不管滾動(dòng)條如何滾動(dòng),元素始終再遠(yuǎn)啦的位置,不會(huì)改變
或者可以通過js實(shí)現(xiàn)
relative相對于自己原來的位置定位,但是之前的文檔流還在,后面的元素直接接著原來的位置排列,忽略偏移后的元素位置
absolute設(shè)置定位時(shí),相對于static定位以外的第一個(gè)父元素進(jìn)行定位,如果一直沒有,可以直接找到body,會(huì)脫離文檔流,該元素后的元素會(huì)直接忽略此元素進(jìn)行定位
absolute定位的時(shí)候居中設(shè)置top:50%left:50%;margin-left:-寬度的一半;margin-top:-高度的一半
二、浮動(dòng)
塊級(jí)元素從上到下,依次排列;行內(nèi)元素從左到右依次排列;
浮動(dòng)的元素可以向左或向右浮動(dòng),直到它的外邊緣碰到另一個(gè)元素或者另一個(gè)浮動(dòng)元素或者邊框
快捷鍵: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){}
浮動(dòng)元素對塊級(jí)元素沒有影響,浮動(dòng)元素對文字的影響。浮動(dòng)渲染的時(shí)候沒有向上走,只能靠左靠右,放不下的時(shí)候往下走,如果想讓元素向上移動(dòng),可以用負(fù)top
浮動(dòng)的清除,元素浮動(dòng)后,其后的元素
父容器會(huì)忽略浮動(dòng)元素,而且浮動(dòng)元素會(huì)對其他元素如文字造成影響
none
任何屬性只能對自己生效,就是想讓誰放在哪里,就讓該元素進(jìn)行浮動(dòng)比如一二兩個(gè)元素都是左浮動(dòng),應(yīng)該對第二個(gè)元素進(jìn)行設(shè)置渲染,不能對第一個(gè)進(jìn)行渲染。如果第二個(gè)元素 想向下,其右還有元素時(shí),可以設(shè)置第二個(gè)元素clear:right,如果右邊沒有元素,設(shè)置clear:right是沒有用的,必須設(shè)置