如何理解css中position的五個(gè)屬性-創(chuàng)新互聯(lián)

如何理解css中position的五個(gè)屬性,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

超過十載行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序制作,微信開發(fā),APP應(yīng)用開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

在實(shí)際開發(fā)頁面布局時(shí),運(yùn)用position,對定位的塊級元素的嵌套的效果總是不太理解,這里做了幾個(gè)測試

一般的在w3c中我們可以很容易的獲取定義:

static : 默認(rèn)值。沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。

fixed :生成絕對定位的元素,相對于瀏覽器窗口進(jìn)行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進(jìn)行規(guī)定。

inherit?。阂?guī)定應(yīng)該從父元素繼承 position 屬性的值。

absolute : 生成絕對定位的元素,相對于 static 定位以外的第一個(gè)父元素進(jìn)行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進(jìn)行規(guī)定。

relative : 生成相對定位的元素,相對于其正常位置進(jìn)行定位。因此,"left:20" 會(huì)向元素的 LEFT 位置添加 20 像素。

總的來說 :

      static呢,就是正常的文檔流順序,默認(rèn)的,相當(dāng)于沒有定位!

      fixed呢, 就是相對于瀏覽器窗口,就是你滾動(dòng)條怎么滾動(dòng),他還是那個(gè)位置,就想是 “粘” 在窗口上了!

inherit呢, 就是從父元素繼承 position 屬性的值,

      absolute呢,是脫離文檔流的原來的位置是不繼續(xù)占據(jù)了,如果他的父級元素中有已經(jīng)定位了的不管是absolute的還是relative,它都會(huì)相對于他的父級元素來定位,如果他的父級元素中沒有定位了的那么它就是相對于body來定位的。也就是說absolute的絕對是有參照物的!

      relative呢,是不會(huì)脫離文檔流的原來的位置也就繼續(xù)占據(jù)了,它是只相對于自身原來的位置來定位的!

前三個(gè)是很容易理解的,對于absolute和relative的結(jié)合使用,做了幾個(gè)測試

測試(absolute和relative)

1.單獨(dú)的absolute和relative

2.relative中的relative,absolute中的relative

3.absolute中的absolute,relative中的absolute

代碼如下:


<!DOCTYPE html>
<html>
<head>
   <title>position -- absolute -- relative</title>
</head>
<style>
   .test-a{
       position: absolute;
       top:20px;
       left:60px;
       width:200px;
       height: 100px;
       background: red;
   }
   .test{
       width:400px;
       height: 100px;
       background: green;
   }
   .test-r{
       position:relative;
       top:50px;
       left:130px;
       background: yellow;
       width:160px;
       height: 180px;
   }
   .test-rr{
       position: relative;
       top: 20px;
       left: 100px;
       width: 600px;
       height: 300px;
       background: blue;
   }
   .test-aa{
       position: absolute;
       top: 24px;
       left: 34px;
       background: orange;
   }
   .test-aaa{
       position: absolute;
       top: 24px;
       left: 34px;
       width:400px;
       height:200px;
       background: #18E457;
   }
   .test-aaaa{
       position: absolute;
       top: 124px;
       left: 134px;
       width:400px;
       height:200px;
       background: yellow;
   }
   .test-rrr{
       position: relative;
       top: 24px;
       left: 34px;
       width:400px;
       height:200px;
       background: yellow;
   }
   .test-rrr{
       position: relative;
       top: 124px;
       left: 134px;
       width:400px;
       height:200px;
       background: red;
   }
   .test-r-a{
       position: absolute;
       top: 124px;
       left: 134px;
       width:800px;
       height:800px;
       background: yellow;
   }
   .test-a-r{
       position: relative;
       top: 124px;
       left: 134px;
       width:700px;
       height:700px;
       background: red;
   }
</style>
<body>
   <div class="test-a">absolute</div>
   <div class="test">分割</div>
   <div class="test-r">relative</div>
   <h3  >結(jié)合使用</h3>
   <p>parentNode的position不是relative或absolute,那absolute的絕對對象是針對body的
     parentNode的position  是relative或absolute,那absolute的絕對對象是針對parentNode的
     也就是說absolute的絕對是有參照Node的 </p>
   <div class="test-rr">
       absolute外的relative
       <div class="test-aa">
           relative內(nèi)的absolute,,,里面這個(gè)div是相對外面那個(gè)div定位的
       </div>
   </div>
   <div class="test-aaa">
           absolute外的absolute
           <div class="test-aaaa">
               absolute內(nèi)的absolute,,,,,,,,里面這個(gè)div是相對外面那個(gè)div定位的
           </div>
   </div>
   <div class="test-rrr" >
           relative外的relative
           <div class="test-rrrr">
               relative內(nèi)的relative,,,,,,,,里面這個(gè)div是相對原來位置定位的
           </div>
   </div>
   <div class="test-r-a">
       relative外的absolute
       <div class="test">
           <div class="test-a-r">
               relative內(nèi)的absolute,,,里面這個(gè)div是相對原來位置定位的
           </div>
       </div>
   </div>
</body>
</html>


其實(shí)很多時(shí)候,網(wǎng)上的經(jīng)驗(yàn),很多很雜,自己實(shí)踐一下,才能自己真正理解。

CSS中三大position屬性值用法解讀

本文向大家簡單介紹一下CSS中position屬性值的使用,主要包括static:默認(rèn)值,relative:相對定位,absolute:絕對定位三種,主要用于定位html元素的位置,并影響元素塊生成的方式,相信本文介紹對你一定會(huì)有所幫助。

CSS中position屬性值用法

CSS中position屬性有4種可選值:static,relative,absolute,fixed,用于定位html元素的位置,并影響元素塊生成的方式。這里我們重點(diǎn)看一下position屬性的三個(gè)取值定義:position:static、absolute、relative。

static:默認(rèn)值

如果沒有指定position屬性值,支持position屬性的html對象都是默認(rèn)為static,可以這么理解:把html頁面看作一個(gè)文檔流,源代碼中各個(gè)標(biāo)簽的先后位置就是它們所對應(yīng)的對象的呈現(xiàn)次序,所有取值為static的對象都按照你所編寫的html標(biāo)簽的順序依次呈現(xiàn)。

relative:相對定位

此position屬性值保持對象所在文檔流中的位置,也就是說它具有和static相同的呈現(xiàn)方式,它同樣占有在文檔流中的固定位置,后面的對象不會(huì)侵占或覆蓋;與static屬性值不同的是,設(shè)置了relative的對象,可以通過top,left,right,bottom屬性設(shè)定自己的新顯示位置,這4個(gè)屬性的取值是相對于文檔流的前一個(gè)對象的,你可以自由設(shè)置這4個(gè)屬性偏移到新的位置而不對文檔流中的其他對象產(chǎn)生任何影響,原來的頁面呈現(xiàn)仍然會(huì)我行我素.

absolute:絕對定位

和relative不同的是,這個(gè)position屬性值會(huì)將當(dāng)前對象拖出文檔流,后面的對象會(huì)占有原來的位置,也就是說,當(dāng)前對象的呈現(xiàn)是獨(dú)立顯示的,但是它的位置在指定top,left,right,bottom任一屬性之前仍是有繼承性的,這時(shí)的4個(gè)屬性的取值是相對于瀏覽器的,和文檔流無關(guān)了。如果把示例中的B區(qū)域設(shè)定為absolute而不指定4個(gè)位置屬性,通過設(shè)定margin來改變它的相對位置,用這個(gè)方法可以解決前面提到的問題2。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,溫馨提示:

屬性值為absolute對象的z-index屬性可以設(shè)置層疊顯示的次序,它是直接有效的;而屬性值為relative對象的z-index屬性在設(shè)置時(shí)要小心,把當(dāng)前對象的z-index設(shè)置為-1是不行的,在firefox中它會(huì)無法顯示(注意,不是說瀏覽器有誤,而是指如果父對象是根元素body,那么z-index是無效的,任何z-index設(shè)置都不會(huì)顯示在根元素之后,除了IE的解析bug,感謝#19提示),必須設(shè)置為0以上,我們?nèi)绻胱寗e的對象擋住它,只有將其他對象也設(shè)置position為relative,并將z-index屬性取一個(gè)比它大的值即可。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。

網(wǎng)站名稱:如何理解css中position的五個(gè)屬性-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article28/djjdjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站排名、全網(wǎng)營銷推廣、建站公司、網(wǎng)站策劃、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)