position 屬性指定了元素的定位類型。
position 屬性的五個值:
- static??(靜態定位)? ? ? ? ?
HTML元素的默認值,即沒有定位,元素出現在正常的流中。
靜態定位的元素不會受到 top, bottom, left, right影響。
div.static {position: static;border: 3px solid #73AD21; }
?
- relative??(相對定位)相對定位元素的定位是相對其正常位置.
-
h2.pos_left {position:relative;left:-20px; } h2.pos_right {position:relative;left:20px; }
移動相對定位元素,但它原本所占的空間不會改變
h2.pos_top {position:relative;top:-50px; }
?
- fixed? ? ?(絕對定位)
元素的位置相對于瀏覽器窗口是固定位置。
即使窗口是滾動的它也不會移動:
-
p.pos_fixed {position:fixed;top:30px;right:5px; }
- absolute??(固定定位)
- 絕對定位的元素的位置相對于最近的已定位父元素,如果元素沒有已定位的父元素,那么它的位置相對于<html>:
-
h2 {position:absolute;left:100px;top:150px; }
- sticky? (粘性定位)
position: sticky;?基于用戶的滾動位置來定位。
粘性定位的元素是依賴于用戶的滾動,在?position:relative?與?position:fixed?定位之間切換。
它的行為就像?position:relative;?而當頁面滾動超出目標區域時,它的表現就像?position:fixed;,它會固定在目標位置。
元素定位表現為在跨越特定閾值前為相對定位,之后為固定定位。
這個特定閾值指的是 top, right, bottom 或 left 之一,換言之,指定 top, right, bottom 或 left 四個閾值其中之一,才可使粘性定位生效。否則其行為與相對定位相同。
注意:?Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下實例)。
div.sticky {position: -webkit-sticky; /* Safari */position: sticky;top: 0;background-color: green;border: 2px solid #4CAF50; }