????眾所周知,css中position有四種取值,分別是static、fixed、relative、absolute。我們今天就來詳細(xì)的掰扯掰扯這四個(gè)值椎麦。
- **Position屬性有以下四個(gè)取值:**
? 1、static:靜態(tài)定位材彪,是position屬性的默認(rèn)值观挎,表示無論怎么設(shè)置top、bottom段化、right键兜、left屬性元素的位置(與外部位置)都不會(huì)發(fā)生改變。
? 2穗泵、relative:相對(duì)定位普气,表示用top、bottom佃延、right现诀、left屬性可以設(shè)置元素相對(duì)與其相對(duì)于初始位置的相對(duì)位置。
3履肃、absolute:絕對(duì)定位仔沿,表示用top、bottom尺棋、right封锉、left屬性可以設(shè)置元素相對(duì)于其父元素(除了設(shè)置了static的父元素以外)左上角的位置,如果父元素設(shè)置了static,子元素會(huì)繼續(xù)追溯到祖輩元素一直到body成福。
4碾局、fixed:絕對(duì)定位,相對(duì)于瀏覽器窗口進(jìn)行定位奴艾,同樣是使用top净当、bottom、right蕴潦、left像啼。
- **static**
static(靜態(tài)定位)是默認(rèn)值,元素出現(xiàn)在正常的流中潭苞。不會(huì)受到top, bottom, left, right影響忽冻。
- **relative**
? 定位為relative的元素脫離正常的文本流中,但其在文本流中的位置依然存在此疹。
? 注:元素脫離正常的文本流意思是外觀位置發(fā)生了改變僧诚,即是實(shí)際頁面的可以看到的變化,文本流的位置依然存在指的是默認(rèn)的位置(設(shè)置之前的位置)簡(jiǎn)單來說秀菱,就是人沒了振诬,魂還在~~~
- **absolute**
? ? 定位為absolute的層脫離正常文本流蹭睡,但與relative的區(qū)別是其在正常流中的位置不再存在衍菱。
在這里要注意別跟Fixed值混淆,absolute并不是永遠(yuǎn)根據(jù)瀏覽器窗口進(jìn)行定位的肩豁,這是Fixed的特性脊串,absolute要更加復(fù)雜:
1、一般情況下以父級(jí)的左上角定位清钥,在沒有父級(jí)的時(shí)候琼锋,他是參照瀏覽器左上角(這與relative完全一致);
如果在沒有父級(jí)元素的情況下祟昭,存在文本缕坎,則以它前面的最后一個(gè)文字的右上角為原點(diǎn)進(jìn)行定位但是不斷開文字,覆蓋于上方篡悟。(這里是與relative的第二個(gè)不同點(diǎn))谜叹;
2、如果父級(jí)沒有設(shè)定position屬性搬葬,那么當(dāng)前的absolute則以瀏覽器左上角為原始點(diǎn)進(jìn)行定位荷腊,位置將由偏移設(shè)置(top、bottom急凰、left女仰、right)決定;(這與relative完全一致)
3、如果父級(jí)設(shè)定position屬性(無論是absolute還是relative)疾忍,則以父級(jí)的左上角為原點(diǎn)進(jìn)行定位乔外,位置由偏移設(shè)置(top、bottom锭碳、left袁稽、right)決定;(這與relative完全一致)擒抛。
即使父級(jí)有Padding屬性推汽,對(duì)其也不起作用,說簡(jiǎn)單點(diǎn)就是:它只堅(jiān)持一點(diǎn)歧沪,就以父級(jí)左上角為原點(diǎn)進(jìn)行定位歹撒,父級(jí)的padding對(duì)其根 本沒有影響。 (這里是與relative的第三個(gè)不同點(diǎn))
- **fixed**
其實(shí)fixed和absolute是一樣的诊胞,唯一的區(qū)別在于:absolute元素是根據(jù)最近的定位上下文確定位置暖夭,而fixed永遠(yuǎn)根據(jù)瀏覽器確定位置。