CSS Position 定位屬性
1. 介紹
1.1 說明
Position 屬性:規定元素的定位類型。即元素脫離文檔流的布局,在頁面的任意位置顯示。
1.2 主要的值
①absolute :絕對定位;脫離文檔流的布局,遺留下來的空間由後面的元素填充。定位的起始位置為最近的父元素(postion不為static),否則為Body文檔本身。
②relative :相對定位;不脫離文檔流的布局,只改變自身的位置,在文檔流原先的位置遺留空白區域。定位的起始位置為此元素原先在文檔流的位置。
③fixed :固定定位;類似於absolute,但不隨著滾動條的移動而改變位置。
④static :默認值;默認布局。
1.3 輔助屬性
position屬性只是使元素脫離文檔流,要想此元素能按照希望的位置顯示,就需要使用下面的屬性(position:static不支持這些):
①left : 表示向元素的左邊插入多少像素,使元素向右移動多少像素。
②right :表示向元素的右邊插入多少像素,使元素向左移動多少像素。
③top :表示向元素的上方插入多少像素,使元素向下移動多少像素。
④bottom :表示向元素的下方插入多少像素,使元素向上移動多少像素。
上面屬性的值可以為負,單位:px 。如果是百分比,則以父容器為參照,但是,父級如果沒有確定具體的高度,如果此時position為relative,top和bottom屬性不起作用,比如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body {
background-image: url("amazing-sky.jpg");
background-position: center, center;
background-size: cover;
}
height: 100%
}*/
#container {
color: #ffffff;
width: 100%;
text-align: center;
position: relative;
bottom: 50%;
}
</style>
</head>
<body>
<!-- <div id="container"> -->
<div id="container">
<h1>Let‘s Learn HTML5</h1>
<p>發揮您的美感與想象力,探索Web開發的無限可能性,現誠邀您一同踏上HTML5的學習之路。</p>
<a href="invite.php">邀您參加</a>
</div>
<!-- </div> -->
</body>
</html>
上例中container的父級為body,寬度默認為100%,高度雖然沒有設置100%,所有top,bottom不起作用
2. position 定位方式
2.1 position:absolute
2.1.1 說明
絕對定位;脫離文檔流的布局,遺留下來的空間由後面的元素填充。定位的起始位置為最近的父元素(postion不為static),否則為Body文檔本身。
2.1.2 視圖
2.2 position:relative
2.2.1 說明
相對定位;不脫離文檔流的布局,只改變自身的位置,在文檔流原先的位置遺留空白區域。定位的起始位置為此元素原先在文檔流的位置。
2.2.2 視圖
2.3 position:fixed
2.3.1 說明
固定定位;類似於absolute,但不隨著滾動條的移動而改變位置。
2.3.2 視圖
2.3.3 應用場景
①登錄框覆蓋層:如dz論壇的登錄。
②虛假QQ消息廣告。
2.4 position:static
2.4.1 說明
默認定位,表示此元素為默認定位方式。
3. 總結
3.1 滾動條是否出現
當含有position屬性的元素為最邊緣元素時:
①absolute 和 relative :含有此2個值的邊緣元素,瀏覽器縮小到此元素不可見時,會出現滾動條。
②fixed :含有此值的邊緣元素,瀏覽器縮小到此元素不可見時,不會出現滾動條。
3.2 示例
3.2.1 視圖
<!DOCTYPE html><head>
<title>position</title>
<meta charset="UTF-8">
<style type="text/css">
div {
height: 200px;
width: 300px;
border-color: Black;
border-style: solid;
border-width: 1px;
}
#a {
position: absolute;
left: 900px;
top: 150px;
}
#b {
position: relative;
left: 500px;
top: 100px;
}
#c {
position: fixed;
left: 970px;
top: 400px;
}
#d {
position: static;
background-color: Window;
}
</style>
</head>
<body>
<div id="a">
div-a
<br /> position:absolute;
<br /> 絕對定位
</div>
<div id="b">
div-b
<br /> position:relative;
<br /> 相對定位;不脫離文檔流,只改變自身的位置,在文檔流原先的位置遺留空白區域。
</div>
<div id="c">
div-c
<br /> position:fixed;
<br /> 固定定位;固定在頁面中,不隨瀏覽器的大小改變而改變位置。
</div>
<div id="d"></div>
<input type="text" value="input1" />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</body>
</html>
CSS Position 定位屬性