首頁  >  文章  >  web前端  >  解析css的position裡的relative和absolute的差別

解析css的position裡的relative和absolute的差別

高洛峰
高洛峰原創
2017-03-28 17:27:103943瀏覽

position有以下屬性static、inherit、fixed、absolute、relative
前三個好理解好區分:
static :是預設狀態,沒有定位,元素出現在正常的流中(忽略top, bottom, left, rightz-index 宣告)。
nherit:從父元素繼承 position 屬性的值。
fixed:產生絕對定位的元素,相對於瀏覽器視窗進行定位。 (即滾動瀏覽器的時候,元素永遠固定顯示在視窗視覺區的某個位置)。

比較常用而且會引起初學者迷惑的是absolute和relative,它兩個有什麼分別呢?

一、先來看看W3C給的概念

absolute:產生絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。

relative:產生相對定位的元素,相對於其正常位置進行定位。

兩者最核心的差別在於:absolute不受父元素裡的其他元素影響,而relative會受到父元素裡的其他元素影響。

二、一張圖看懂absolute、relative的差異

解析css的position里的relative和absolute的区别

#程式碼:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
html,body,div,p{
margin: 0;
padding: 0;
}
#baba {
position: absolute;
left: 50px;
top:50px;
width: 300px;
height: 300px;
background: blue;
}
#baba p{
background:lightblue;
}
#erzi {
position: absolute;
left: 50px;
top:50px;
width: 200px;
height: 200px;
background: yellow;
}
</style>
</head>
<body id="body">
<div id="baba">
<p></p>
<div id="erzi">
<p></p>
</div>
</div>
<script>
var baba=document.getElementById("baba"),
erzi=document.getElementById("erzi");
baba.children[0].innerHTML="我是"+baba.id;
erzi.children[0].innerHTML="我是"+erzi.id;
</script>
</body>
</html>

以上是解析css的position裡的relative和absolute的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn