1. 程式人生 > >CSS之Position屬性

CSS之Position屬性

CSS的很多其他屬性大多容易理解,比如字型,文字,背景等。有些CSS書籍也會對這些簡單的屬性進行大張旗鼓的介紹,而偏偏忽略了對一些難纏的屬性講解,有避重就輕的嫌疑。CSS中主要難以理解的屬性包括盒型結構,以及定位。正如positioniseverything,本文將主要講述關於position的理解,力求讓您看完本文後對position有著最全面的認識。

position的四個屬性值:

  1. relative
  2. absolute
  3. fixed
  4. static

下面分別講述這四個屬性。

<div id="parent">
     <div id="sub1">sub1</div>
     <div id="sub2">sub2</div>
</div>


1. relative

relative屬性相對比較簡單,我們要搞清它是相對哪個物件來進行偏移的。答案是它本身的位置。在上面的程式碼中,sub1和sub2是同級關係,如果設定sub1一個relative屬性,比如設定如下CSS程式碼:

#sub1
{
    position: relative;
    padding: 5px;
    top: 5px;
    left: 5px;
}


我們可以這樣理解,如果不設定relative屬性,sub1的位置按照正常的文件流,它應該處於某個位置。但當設定sub1為的position為relative後,將根據top,right,bottom,left的值按照它理應所在的位置進行偏移,relative的“相對的”意思也正體現於此。

對於此,您只需要記住,sub1如果不設定relative時它應該在哪裡,一旦設定後就按照它理應在的位置進行偏移。

隨後的問題是,sub2的位置又在哪裡呢?答案是它原來在哪裡,現在就在哪裡,它的位置不會因為sub1增加了position的屬性而發生改變。

如果此時把sub2的position也設定為relative,會發生什麼現象?此時依然和sub1一樣,按照它原來應有的位置進行偏移。

注意relative的偏移是基於物件的margin的左上側的。

2. absolute

這個屬性總是有人給出誤導。說當position屬性設為absolute後,總是按照瀏覽器視窗來進行定位的,這其實是錯誤的。實際上,這是fixed屬性的特點。

當sub1的position設定為absolute後,其到底以誰為物件進行偏移呢?這裡分為兩種情況:

(1)當sub1的父物件(或曾祖父,只要是父級物件)parent也設定了position屬性,且position的屬性值為absolute或者relative時,也就是說,不是預設值的情況,此時sub1按照這個parent來進行定位。

注意,物件雖然確定好了,但有些細節需要您的注意,那就是我們到底以parent的哪個定位點來進行定位呢?如果parent設定了margin,border,padding等屬性,那麼這個定位點將忽略padding,將會從padding開始的地方(即只從padding的左上角開始)進行定位,這與我們會想當然的以為會以margin的左上端開始定位的想法是不同的。

接下來的問題是,sub2的位置到哪裡去了呢?由於當position設定為absolute後,會導致sub1溢位正常的文件流,就像它不屬於 parent一樣,它漂浮了起來,在DreamWeaver中把它稱為“層”,其實意思是一樣的。此時sub2將獲得sub1的位置,它的文件流不再基於 sub1,而是直接從parent開始。

(2)如果sub1不存在一個有著position屬性的父物件,那麼那就會以body為定位物件,按照瀏覽器的視窗進行定位,這個比較容易理解。

3. fixed

fixed是特殊的absolute,即fixed總是以body為定位物件的,按照瀏覽器的視窗進行定位。

希望這篇文章對學習CSS的同胞們能有所幫助

4. static

position的預設值,一般不設定position屬性時,會按照正常的文件流進行排列

相關推薦

CSSPosition屬性

CSS的很多其他屬性大多容易理解,比如字型,文字,背景等。有些CSS書籍也會對這些簡單的屬性進行大張旗鼓的介紹,而偏偏忽略了對一些難纏的屬性講解,有避重就輕的嫌疑。CSS中主要難以理解的屬性包括盒型結構,以及定位。正如positioniseverything,本文將主要講

CSS學習筆記position屬性

相同 五個 alt otto 內邊距 通過 http 觀察 ive 一、前言   1.HTML中的三種布局方式: 標準流:網頁中默認的布局方式,即順序布局 浮動:float 定位:position   2.position屬性的作用方式: 給posi

CSSposition屬性( absolute | relative | static | fixed )詳解

ack 關系 tail 而且 tools css bar 簡單 tag 我們先來看看CSS3 Api中對position屬性的相關定義: static:無特殊定位,對象遵循正常文檔流。top,right,bottom,left等屬性不會被應用。 relative:對象遵

css定位屬性

color 進行 塊級元素 文檔 定義 adding absolut 表示 頁面 定位標簽:position包含的屬性:relative(相對)與 absolute(絕對)1.position:relative:如果對一個元素進行相對定位,首先它將出現在它所在的位置上。 然

CSStransition屬性

clas art idt back htm margin val eight ack 1.鼠標移動到div中背景顏色慢慢變化(1個屬性的變化) <!DOCTYPE html> <html> <head> &

CSS float 屬性

spa 需要 字符 pre play ie8 -s table style 特性: float的設計初衷僅僅是文字環繞效果 浮動具有破壞性,會使父容器高度塌陷 清除浮動方法: 1.腳底插入cleart:both 2.父元素BFC(IE8+)/haslayout(IE

cssposition屬性值的區別

字母 列表 evel 所有 img pos ocs ima sele 1.relative 元素相對自身的原位置偏移某個距離,但是原本的空間依舊保留,表現為空白 2.absolute   原來的元素空間被刪除,新生成一個塊級框,與頁面內容相對靜止,如果頁面向下滑動

CSSposition屬性介紹(新增sticky)

 position的含義是指定位型別,取值型別可以有:static、relative、absolute、fixed、inherit和sticky,這裡sticky是CSS3新發布的一個屬性。 1、position: static   static(沒有定位)是position的預設值,元素處

cssposition屬性(web作業)

position屬性 參考:http://www.w3school.com.cn/cssref/pr_class_position.asp 定義和用法 position 屬性規定元素的定位型別。 說明 這個屬性定義建立元素佈局所用的定位機制。任何元素都可以定位,不過

前端CSS屬性操作1 css操作屬性

css之操作屬性 1.文字 1.文字顏色:color 顏色屬性被用來設定文字的顏色。 顏色是通過CSS最經常的指定:

web前端練習3----cssposition屬性理解

position: fixed;元素的位置相對於瀏覽器視窗是固定位置。即使視窗是滾動的它也不會移動: 用法: position: fixed; left: 0px; top: 0px; 下面主要講相對定位和絕對定位 position: relative; 相對定位元素的定位是相

深入理解cssposition屬性及z-index屬性

在網頁設計中,position屬性的使用是非常重要的。有時如果不能認識清楚這個屬性,將會給我們帶來很多意想不到的困難。  position屬性共有四種不同的定位方法,分別是static、fixed、relative、absolute,sticky。最後將會介紹和positio

css關於position屬性的用法(絕對定位和相對定位的混淆)

挺久沒用,有點忘了關於position這個屬性的用法,導致在練手的時候又犯了跟最開始新手才會犯的錯誤,那就是absolute和relative的用法。 在此首先看一下官方對這兩個屬性值的解釋: position 屬性值的含義: static元素框正常生成。塊級元素

CSSposition屬性詳解

position的定位模型有五中,分別為static、relative、absolute、fixed、sticky。 同時,這五中定位模型可以被繼承。既inherit。 操作的屬性分別為top   left   right   bottom  z-index. 1.st

CssPosition屬性的含義

position有四個引數:static  | relative | absolute | fixed position:static,意味元素沒有被定位,元素會出現在文件本該出現位置,是頁面元素預設的定位的方式,一般無需指定,除非想要覆蓋之前設定的定位,一旦應用此屬性

CSSPosition詳解

CSS的很多其他屬性大多容易理解,比如字型,文字,背景等。有些CSS書籍也會對這些簡單的屬性進行大張旗鼓的介紹,而偏偏忽略了對一些難纏的屬性講解,有避重就輕的嫌疑。CSS中主要難以理解的屬性包括盒型結構,以及定位。正如positioniseverything,本文將主要講述

【唯一講明白的】CSSposition屬性( absolute | relative | static | fixed )詳解

static:無特殊定位,物件遵循正常文件流。top,right,bottom,left等屬性不會被應用。 relative:物件遵循正常文件流,但將依據top,right,bottom,left等屬性在正常文件流中偏移位置。而其層疊通過z-index屬性定義。 absolute:物件脫離正常文件流,使用t

cssposition定位個人理解

css 的position定位 個人小結: fixed:固定元素位置,脫離正常文件流,不論頁面中元素如何變化,當前fixed元素始終固定位置,一般用於一些頂部選單,搜素, 回到頂部,快速回復 等 一些需要始終出現在使用者視線內,需要跟隨頁面滾動,固定在方便點選的位置上的元素

CSSposition屬性(定位)的特點解析

CSS position屬性 position屬性之static 作用: 使元素定位於常規/自然流中 特點: (1)left、top、right、bottom屬性和z-index屬性不生效 (2)如果兩個相鄰的元素都設定了margin,兩者中

CSSdisplay屬性

display 屬性規定元素應該生成的框的型別。 值 描述 none 此元素不會被顯示。 block 此元素將顯示為塊級元素,此元素前後會帶有換行符。 inline 預設