1. 程式人生 > >CSS Position 定位屬性

CSS Position 定位屬性

區域 沒有 覆蓋 tar data- 文檔 頁面 輔助 SM

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;
}

/*html,body{
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 定位屬性