整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS position 屬性

          CSS position 屬性

          定位<h2>元素:

          h2

          {

          position:absolute;

          left:100px;

          top:150px;

          }


          屬性定義及使用說明

          position屬性指定一個元素(靜態的,相對的,絕對或固定)的定位方法的類型。

          默認值:static
          繼承:no
          版本:CSS2
          JavaScript 語法:object.style.position="absolute"

          瀏覽器支持

          表格中的數字表示支持該屬性的第一個瀏覽器版本號。

          屬性
          position1.07.01.01.04.0

          屬性值

          描述
          absolute生成絕對定位的元素,相對于 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
          fixed生成絕對定位的元素,相對于瀏覽器窗口進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
          relative生成相對定位的元素,相對于其正常位置進行定位。因此,"left:20" 會向元素的 LEFT 位置添加 20 像素。
          static默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
          inherit規定應該從父元素繼承 position 屬性的值。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          ss 中的定位,是布局中常用的一種方法,它可以使html元素脫離文檔流,重新定位。語法如下:

          position: static|relative|absolute|fixed

          position 有四個值,static(默認靜態定位)、relative(相對定位)、absolute(絕對定位)、fixed(固定定位),通常配合left、top及z-index屬性使用(static除外)。

          • left —— 定位元素相對于定位點的左距離
          • top —— 定位元素相對于定位點的上距離
          • z-index ——定位元素的層級,當有多個定位元素上,通過此屬性調整元素的顯示層級,值越大的顯示在最上面。默認如果不設置z-index屬性,則會按照其在文檔流中的先后位置顯示。

          static(靜態定位)

          靜態定位很簡單,html元素默認就是靜態定位,和正常情況下html元素在文檔流中的排版一樣。left、top和z-index屬性對應靜態定位來說不起任何左右,如下圖示例:

          圖1

          圖1中的模塊1,雖然設置了position:static,但是其表現和沒有設置是一樣的,按照標準文檔流進行排版。

          relative(相對定位)

          相對定位是html元素相對于它原來在標準文檔流中的位置來定位的。如果不設置top、left的話它和靜態定位一樣,不同之處就是它可以設置top、left和z-index屬性,如下圖示例:

          代碼:

          圖2

          顯示效果:

          圖3

          圖3中模塊2使用了相對定位,脫離正常的文檔流,相對于原始位置左邊50px,頂部30px,但其在文檔流中的位置依然存在,只是視覺上相對原來的位置有偏移。

          相對定位的元素寬度默認和塊級元素一樣,寬度100%;

          absolute(絕對定位)

          絕對定位時當父級元素也是定位元素(包括相對定位、絕對定位、固定定位)時,它就相對于父級元素的左上角定位,如果父級元素沒有定位或者是靜態定位,那就相對于瀏覽器窗口左上角定位。如下示例:

          代碼:

          圖4

          顯示效果:

          圖5

          圖5中模塊3和模塊2-1都設置為絕對定位,模塊3的父級沒有定位,模塊2-1的父級是模塊2(相對定位)。所以模塊3相對于頁面左上角位置定位,模塊2-1相對于模塊2左上角定位。

          絕對定位不保留原來的位置,完全是脫離文檔流,且其寬度變成不是100%(類似行內元素),它通常都是和有定位的父級元素一塊使用才有意義。

          fixed(固定定位)

          固定定位,通俗講就是固定到屏幕上,它和絕對定位一樣完全脫離文檔流,不保留原來的空間位置。唯一的區別就是它是始終都是相對于瀏覽器窗口左上角定位,不管其父級元素設置了定位。如下示例:

          代碼:

          圖6

          顯示效果:

          圖7

          圖7中模塊4的設置為固定定位,它的父級時模塊2(相對定位),可以看出和模塊2-1(絕對定位)的區別,模塊4不是相對于父級的。

          再看下面這個示例,當滾動滾動條時模塊4始終定在那塊不動。

          圖8

          關于z-index

          注意看上面圖8中,模塊4顯示在模塊3下面,看下圖模塊3的z-index明明比模塊4的小,為什么會顯示在模塊4上面?

          圖9

          原因是模塊4的父級模塊(相對定位),它的z-index是100和模塊3相同,又因為模塊3元素在模塊2元素后面,所以模塊3顯示在模塊4上面,如果把模塊2的z-index改成101,如下圖:

          圖10

          模塊4顯示在模塊3上面了,所以z-index的屬性是同級元素相互進行比較大小。

          總結

          在網頁布局中,定位在早期使用較多,現在不建議過多使用定位,只有在特殊情況下使用,比如返回頂部按鈕效果,或左側導航欄,菜單欄固定定位,不跟隨頁面滾動等。

          本篇主要知識點:

          定位

          行為

          在文檔流中

          static

          默認行為;元素按順序堆疊并相互了解

          是的

          relative

          相對于其在流中的原始位置定位

          是的

          fixed

          相對于瀏覽器窗口定位

          不在

          absolute

          相對于最近的非靜態 ( fixed, relative, absolute) 元素定位

          不在

          感謝關注,歡迎指正錯誤及補充。

          上篇:前端入門——浮動float

          簡介

          上一篇文章,介紹了魔鬼屬性——浮動布局。浮動布局比較靈活,但是不容易控制。而定位布局使用戶精準定位頁面中的任意元素成為可能。因此在實際開發中,大家應該靈活使用這兩種布局方式,這樣才可以更好地滿足開發需求。

          2 定位布局

          定位常用于布局,利用定位可以將元素精確擺放在任何位置。定位布局共有4種方式,分別是:

          固定定位(fixed)。

          相對定位(relative)。

          絕對定位(absolute)。

          靜態定位(static)。

          static是所有元素的默認值,存在于正常流中,不能使用偏移屬性(top、bottom、left以及right)。通常所說的定位,使用的是另外3個關鍵字。

          2.1 固定定位

          固定定位不如其他定位類型用得普遍,確是最直觀也是最容易理解的定位方式。給一個元素設置position: fixed就能將元素放在視口的任意位置。這需要搭配四種屬性一起使用:top、right、bottom和left。這些屬性的值決定了固定定位的元素與瀏覽器視口邊緣的距離。

          所謂的固定定位,指的是被固定的元素不會隨著滾動條的拖動而改變位置。position:fixed固定定位元素的“包含塊”是根元素,唯一可以限制固定定位元素的就是<html>根元素。可見固定定位是很強悍的一個屬性。固定定位最常用于實現“回頂部特效”。

          2.2 相對定位

          在CSS中,我們可以使用position:relative來實現相對定位。所謂的相對定位,指的是該元素的位置是相對于它的原始位置計算而來的。

          position:relative也是結合top、bottom、left和right這4個屬性一起使用的,其中,先使用position:relative讓元素成為相對定位元素,接著使用top、bottom、left和right這4個屬性來設置元素的相對定位。一般只會用到其中兩個屬性。

          注意,在默認情況下,固定定位元素的位置是相對瀏覽器而言的,而相對定位元素的位置是相對于原始位置而言的。

          2.3 絕對定位

          絕對定位(absolute)會脫離正常流,并且會將元素變為塊級元素。元素在被設為絕對定位后,其原先所占的空間會被刪除,并且它會相對于包含塊偏移,它的包含塊就是離它最近的position屬性不為static的祖先元素的內容區域。絕對定位是定位類型里的重量級選手。它經常跟JavaScript配合,用于彈出菜單、工具提示以及消息盒子。

          2.4 靜態定位

          在默認情況下,元素沒有指定position屬性時,這個元素就是靜態定位的。也就是說,元素position屬性的默認值是static。

          3 層疊和z-index

          說完定位布局后不得不提的一個屬性就是層疊順序。瀏覽器將HTML解析為DOM的同時還創建了另一個樹形結構,叫作渲染樹(render tree)。它代表了每個元素的視覺樣式和位置。同時還決定瀏覽器繪制元素的順序。順序很重要,因為如果元素剛好重疊,后繪制的元素就會出現在先繪制的元素前面。定位元素時,這種行為會改變。瀏覽器會先繪制所有非定位的元素,然后繪制定位元素。默認情況下,所有的定位元素會出現在非定位元素前面。但是對相對定位或絕對定位的元素來說,通常無法用改變標記位置的方法解決層疊問題。相對定位依賴于文檔流,絕對定位元素依賴于它的定位祖先節點。這時候需要用z-index屬性來控制它們的層疊行為。

          層疊屬性類似于三維的Z軸,以對象為中心,前后移動,語法用z-index表示,后面可取值,值較大的元素將疊加在z-index值較小的元素之上。以下是層疊對象的完整語法。

               z-index : auto | number

          層性z-index后面接的值分別表示如下。

          • auto:默認值,由其父對象的定位決定。
          • ·number:無單位的整數值,可為負數。

          屬性的默認值為auto,如果設置是數字,可正可負。如果為正,最大數的對象將在前面,數值越大,越往前端顯示;如果為負值,將會出現對象之后。

          注意:第一,z-index 只在定位元素上生效,不能用它控制靜態元素。第二,給一個定位元素加上z-index可以創建層疊上下文。

          一個層疊上下文包含一個元素或者由瀏覽器一起繪制的一組元素。其中一個元素會作為層疊上下文的根,比如給一個定位元素加上z-index的時候,它就變成了一個新的層疊上下文的根。所有后代元素就是這個層疊上下文的一部分。

          所有層疊上下文內的元素會按照以下順序,從后到前疊放:

          • 層疊上下文的根
          • z-index為負的定位元素(及其子元素)
          • 非定位元素
          • z-index為auto的定位元素(及其子元素)
          • z-index為正的定位元素(及其子元素)

          如果發現 z-index 沒有按照預期表現,就在DOM樹里往上找到元素的祖先節點,直到發現層疊上下文的根。然后給它設置 z-idnex,將整個層疊上下文向前或者向后放。還要注意多個層疊上下文嵌套的情況。

          如果能夠依靠文檔流,而不是靠明確指定定位的方式實現布局,那么瀏覽器會幫我們處理好很多邊緣情況。記住,定位會將元素拉出文檔流。一般來說,只有在需要將元素疊放到別的元素之前時,才應該用定位。

          4 總結

          本文我們向讀者重點介紹了對象的定位、定位的基本語法和層疊順序設。屬性定位由position表示,除了可以用z-index控制層的層疊順序外,還可以用top、right、bottom和left設置對象在父對象的定位。定位與浮動也是網頁設計中比較難掌握的知識點,讀者在了解相關知識后需要多動手練習。更好地在實際應用中進行網頁設計。

          5 最后的最后

          為初學者提供學習指南,為從業者提供參考價值。我堅信碼農也具有產生洞見的能力。關注【碼農洞見】,一起學習和交流吧!


          主站蜘蛛池模板: 正在播放国产一区| 在线精品日韩一区二区三区 | 在线成人一区二区| 秋霞午夜一区二区| 国产精品一区二区久久精品涩爱| 中文字幕在线观看一区二区 | 日韩欧美一区二区三区免费观看| 亚洲视频一区在线播放| 91一区二区视频| 天堂va视频一区二区| 好爽毛片一区二区三区四无码三飞| 最新中文字幕一区二区乱码 | 国产乱码一区二区三区| 国产精品久久无码一区二区三区网| 亚洲av日韩综合一区久热| 最新中文字幕一区二区乱码| 在线观看视频一区二区| 精品久久久久一区二区三区 | 国产一区二区三区在线免费| 国产伦精品一区二区三区视频猫咪| 国产一区二区高清在线播放 | 合区精品久久久中文字幕一区| 亚洲国产精品一区二区九九| 亚洲A∨无码一区二区三区| 韩国福利一区二区美女视频| 精品无码国产AV一区二区三区 | 波多野结衣一区视频在线| 国产一区精品视频| 国精产品一区一区三区| 亚洲A∨精品一区二区三区下载| 国产激情无码一区二区三区| 亚洲av鲁丝一区二区三区| 波多野结衣电影区一区二区三区| 亚洲色无码一区二区三区| 在线精品自拍亚洲第一区| 久久久一区二区三区| 精品亚洲一区二区三区在线观看 | 亚洲一区精品无码| 国产精品一区二区四区| 老熟妇仑乱视频一区二区| 精品女同一区二区三区在线|