1. 程式人生 > >深入理解css中position屬性及z-index屬性

深入理解css中position屬性及z-index屬性

在網頁設計中,position屬性的使用是非常重要的。有時如果不能認識清楚這個屬性,將會給我們帶來很多意想不到的困難。

  position屬性共有四種不同的定位方法,分別是static、fixed、relative、absolute,sticky。最後將會介紹和position屬性密切相關的z-index屬性。

第一部分:position: static

  static定位是HTML元素的預設值,即沒有定位,元素出現在正常的流中,因此,這種定位就不會收到top,bottom,left,right的影響。

  如html程式碼如下:

123<div class="wrap"><div 
class="content"></div></div>

  css程式碼如下:

12.wrap{width: 300px;height: 300px; background: red;}.content{position: static; top:100px; width: 100px;height: 100px; background: blue;}

  效果圖如下:

我們發現,雖然設定了static以及top,但是元素仍然出現在正常的流中。

第二部分:fixed定位

  fixed定位是指元素的位置相對於瀏覽器視窗是固定位置,即使視窗是滾動的它也不會滾動,且fixed定位使元素的位置與文件流無關

,因此不佔據空間,且它會和其他元素髮生重疊

  html程式碼如下:

1<div class="content">我是使用fix來定位的!!!所以我相對於瀏覽器視窗,一直不動。</div>

  css程式碼如下:

12body{height:1500px; background: green; font-size: 30px; color:white;}.content{ position: fixed; right:0;bottom: 0; width: 300px;height: 300px; background: blue;}

  效果圖如下:

即右下角的div永遠不會動,就像經常彈出來的廣告!!!

值得注意的是:fixed定位在IE7和IE8下需要描述!DOCTYPE才能支援。

第三部分:relative定位

  相對定位元素的定位是相對它自己的正常位置的定位

  關鍵:如何理解其自身的座標呢?

  讓我們看這樣一個例子,hmtl如下:

123<h2>這是位於正常位置的標題</h2><h2 class="pos_bottom">這個標題相對於其正常位置向下移動</h2><h2 class="pos_right">這個標題相對於其正常位置向右移動</h2>

  css程式碼如下:

12.pos_bottom{position:relative; bottom:-20px;}.pos_right{position:relative;left:50px;}

  效果圖如下:

即bottom:-20px;;向下移動。  left:50px;向右移動。

即可以理解為:移動後是移動前的負的位置。

比如上例中,移動後是移動前負的bottom:-20px;即移動後是移動前bottom:20px;也就是說,移動後是移動前的向下20px;

又如:left:50px;移動後是移動前左邊的-50px;那麼也就是說移動後是移動前的右邊的50px。

即:移動後對於移動前:如果值為負數,則直接換成整數;如果值為整數,則直接改變相對方向。

  弄清楚了relative是如何移動的,下面我們看一看移動之後是否會產生其他的影響。

      html程式碼如下:

123<h2>這是一個沒有定位的標題</h2><h2 class="pos_top">這個標題是根據其正常位置向上移動</h2><p><b>注意:</b> 即使相對定位元素的內容是移動,預留空間的元素仍儲存在正常流動。</p>

  css程式碼如下:

1h2.pos_top{position:relative;top:-35px;}

  效果圖如下:

 根據之前的說法,top:-35px;值是負數,則直接換成正數,即移動後相對與移動前向上偏移了35px;我們發現於上,移動後和上面的元素髮生了重疊;於下,即使相對元素的內容移動了,但是預留空間的元素仍然儲存在正常流動,也就是說相對移動之後,不會對下面的其他元素造成影響。

注意:top:20px;是指子元素的margin外側和包裹元素的border內側之間的距離是20px。

 第四部分:absolute定位

  絕對定位的元素相對於最近的已定位父元素,如果元素沒有已定位的父元素,那麼它的位置相對於<html>。

     下面舉幾個例子:

  例子1:

12345678910111213141516171819<!DOCTYPE html><html lang="en">

相關推薦

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

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

CSS position:absolute 與 z-index 對層次結構影響

不使用 position 這種情況下每一層都遵循 HTML 定位規則,其中的 left,right,top,bottom 定位資訊對其無效,z-index 也不會發揮作用因為沒有層疊的情況出現. 2. 使用 absolute 如兩個絕對定位物件的 z-index 屬性具有同樣的值,那麼將依據它們在HTML文件

深入理解cssposition定位和z-index屬性

注:本文僅供交流使用,如有不當之處歡迎批評指正,但請註明詳由,謝謝!由於平時不太用到,所以過去寫css的時候對於position屬性的absolute、relative值理解比較模糊,對於z-index的層疊更是摸不著頭腦,除了理解的因素外,各個瀏覽器的不同解析結果也是一個大

深入理解CSS的定位(position)

CSS中的定位(position)   使用CSS來定位頁面內層的位置,一直是比較難以掌握的事情,很多時候,往往被絕對定位的元素,總是以瀏覽器的左上角為座標原點,此時,如果瀏覽器的大小改變,被定義的層就會偏離設計想要的位置,讓人很撓頭。   其實,要想控制好層的絕對定位,只

深入理解CSS的層疊上下文和層疊順序

零、世間的道理都是想通的 在這個世界上,凡事都有個先後順序,凡物都有個論資排輩。比方說食堂排隊打飯,對吧,講求先到先得,總不可能一擁而上。再比如說話語權,老婆的話永遠是對的,領導的話永遠是對的。 在CSS屆,也是如此。只是,一般情況下,大家歌舞昇平,看不出什麼差異,即所謂的眾生平等。但是,當

position定位z-index的使用

使用前提 z-index只能在position屬性值為relative或absolute或fixed的元素上有效。 基本原理 z-index值可以控制定位元素在垂直於顯示屏方向(Z 軸)上的堆疊順序(stack order),值大的元素髮生重疊時會在值小的元素上面。 使用的相對性

理解cssposition屬性

理解css中的position 兩種型別的定位 static型別:只有一個值position: static.position預設值 relative型別:包括三個值,這三個值會相互影響,允許你以特定方式移動元素 position: relative position:

z-indexposition深入理解-css

在網頁設計中,position屬性的使用是非常重要的。有時如果不能認識清楚這個屬性,將會給我們帶來很多意想不到的困難。並且css中的z-index屬性,簡單而又複雜;搞不懂裡面的原理,很難實現自己的功能。這次記錄下自己的查詢。 詳情見:深入理解css中的posi

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

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

深入理解C++public、protectedprivate用法

strong ostream pro index nbsp contain table bsp 新的 深入理解C++中public、protected及private用法 投稿:shichen2014 字體:[增加 減小] 類型:轉載 時間:2014-08-23 我要評論

深入理解Java虛擬機:JVM高級屬性與最佳實踐》讀書筆記(更新

pen 內存區域 深度 span 進化 ria 最短 描述 core 第一章:走進Java 概述 Java技術體系 Java發展史 Java虛擬機發展史 1996年 JDK1.0,出現Sun Classic VM HotSpot VM, 它是 Sun JDK 和 Open

深入理解Java的字段與屬性的區別

ring rgs name 私有變量 pub tail 博文 們的 方式 轉載出處 http://blog.csdn.net/chenchunlin526/article/details/69939337 1、Java中的屬性和字段有什麽區別? 答:Java中的屬性(p

cssposition 定位的兼容性,以及定位的使用層級的應用

技術 number 窗口 fix padding 就會 border 代碼 兼容 一、首先我們來看看定位的兼容性,當然是在IE6、7但是現在大多數公司都已經不考慮了 我們就作為一個了解吧: 1、在IE67下,子元素有相對定位的話,父級的overflow:hidden包不住子

cssposition屬性值的區別

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

深入理解vueProps屬性

mss command mman 理解 多個 prop 重復 item cin 使用 Props 傳遞數據 組件實例的作用域是孤立的。這意味著不能並且不應該在子組件的模板內直接引用父組件的數據。可以使用 props 把數據傳給子組件。 “prop” 是組件數據的一個字段,期

深入理解Java的底層阻塞原理實現

更多 安全 posix pla static events time() 方便 原理 談到阻塞,相信大家都不會陌生了。阻塞的應用場景真的多得不要不要的,比如 生產-消費模式,限流統計等等。什麽 ArrayBlockingQueue、 LinkedBlockingQueue、

CSSposition屬性介紹(新增sticky)

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

深入理解Java的欄位與屬性的區別

1、Java中的屬性和欄位有什麼區別?  答:Java中的屬性(property),通常可以理解為get和set方法。 而欄位(field),通常叫做“類成員”,或 "類成員變數”,有時也叫“域”,理解為“資料成員”,用來承載資料的。 這兩個概念是完全不同的。 2、屬性

Android 深入理解Android的自定義屬性

1、引言 對於自定義屬性,大家肯定都不陌生,遵循以下幾步,就可以實現: 自定義一個CustomView(extends View )類 編寫values/attrs.xml,在其中編寫styleable和item等標籤元素 在佈局檔案中CustomView使用自定義的屬性(

專案中彈出頁面的顯示層次問題 CSSz-index屬性

z-index最大值: IE FireFox Safari的z-index最大值是2147483647 。 Opera的最大值是2147483584.。 IE Safari Opera在超過其最大值時按最大值處理。 FireFox 在超過最大值時會資料溢位正負不定,但有一點可以肯定絕對不會高於2147