国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Div+Css網(wǎng)頁(yè)布局之定位篇--Postion屬性詳解
Div+Css網(wǎng)頁(yè)布局之定位篇--Postion屬性詳解(2009-05-22 10:59:13)

    Div+Css網(wǎng)頁(yè)布局一直以來(lái)是用Css制作網(wǎng)站的精華,一個(gè)好的網(wǎng)站多半是由于其合理而有意義的布局使得網(wǎng)站更具表現(xiàn)力。

    正由于其是精華因此它也成為了Css學(xué)習(xí)的一個(gè)重點(diǎn)和難點(diǎn)。特別是用Position 屬性布局的問題一直是Css新手的一個(gè)難點(diǎn),因?yàn)榻^對(duì)定位和相對(duì)定位的書面解釋語(yǔ)通常說(shuō)得比較抽象,并且里面包含一些專業(yè)術(shù)語(yǔ),因此初學(xué)者看起來(lái)會(huì)比較吃力,比較難懂。

    因此我在此所談?wù)摰氖窃诹谐鰰姹磉_(dá)的同時(shí),用圖片和實(shí)際情況給大家一種更加直觀明了的介紹,這樣可以讓大家從根本上理解和鞏固Position的含義。當(dāng)你真正理解了Position屬性的定義之后,我相信聰明的你定可以將Position屬性運(yùn)用得游刃有余,那時(shí)結(jié)合Position屬性進(jìn)行網(wǎng)頁(yè)布局已不再話下。

   定位方式之一Position 定位

position : static | absolute | fixed | relative

取值:

static : 默認(rèn)值。無(wú)特殊定位,對(duì)象遵循HTML定位規(guī)則;

absolute : 將對(duì)象從文檔流中拖出,使用 left , right , top , bottom 等屬性相對(duì)于其最接近的一個(gè)最有定位設(shè)置的父對(duì)象進(jìn)行絕對(duì)定位。如果不存在這樣的父對(duì)象,則依據(jù) body 對(duì)象。而其層疊通過(guò) z-index 屬性定義;

fixed : 未支持。對(duì)象定位遵從絕對(duì)(absolute)方式。但是要遵守一些規(guī)范;

relative : 對(duì)象不可層疊,但將依據(jù) left , right , top , bottom 等屬性在正常文檔流中偏移位置;

Left : 檢索或設(shè)置對(duì)象與其最近一個(gè)具有定位設(shè)置的父對(duì)象左邊相關(guān)的位置。此屬性僅僅在對(duì)象的定位( position )屬性被設(shè)置時(shí)可用。否則,此屬性設(shè)置會(huì)被忽略。

Right : 檢索或設(shè)置對(duì)象與其最近一個(gè)具有定位設(shè)置的父對(duì)象右邊相關(guān)的位置。此屬性僅僅在對(duì)象的定位( position )屬性被設(shè)置時(shí)可用。否則,此屬性設(shè)置會(huì)被忽略。

Top : 檢索或設(shè)置對(duì)象與其最近一個(gè)具有定位設(shè)置的父對(duì)象頂邊相關(guān)的位置。此屬性僅僅在對(duì)象的定位( position )屬性被設(shè)置時(shí)可用。否則,此屬性設(shè)置會(huì)被忽略。

Bottom : 檢索或設(shè)置對(duì)象與其最近一個(gè)具有定位設(shè)置的父對(duì)象底邊相關(guān)的位置。此屬性僅僅在對(duì)象的定位( position )屬性被設(shè)置時(shí)可用。否則,此屬性設(shè)置會(huì)被忽略。

 

Absolute:

在Absolute的官方解釋語(yǔ)中出現(xiàn)了2個(gè)專業(yè)用語(yǔ),一個(gè)是文本流,一個(gè)是父對(duì)象,很明顯,要想理解absolutely的定義就必須得了解文本流和父對(duì)象的含義。

文本流 :一系列字符,可以由多行構(gòu)成,每行由一個(gè)換行符終止。在HTML中字符也就是html文檔顯示的元素(文字,圖片,視頻等),可將文本流抽象理解為整個(gè)html頁(yè)面元素的排版方式。

父對(duì)象(也稱父級(jí)對(duì)象) : 在Css官方語(yǔ)言中并未明確給出父對(duì)象到底是個(gè)什么概念,說(shuō)得比較籠統(tǒng),形象的也就是當(dāng)B嵌套在A中時(shí),A就是父級(jí)對(duì)象,B就是子級(jí)對(duì)象,就好像是A把B生出來(lái)的一樣。

<div id=”A”>   <div id=”B”></div>   </div>

 

現(xiàn)在我們?cè)倩剡^(guò)頭來(lái)看Absolute。在CSS中,它的寫法是: position: absolute; 他的意思是絕對(duì)定位,那到底怎么來(lái)理解“絕對(duì)”這兩個(gè)字呢?我們先來(lái)看兩個(gè)例子:

1.       研究沒有父級(jí)或父級(jí)未定義position的情況:

創(chuàng)建一個(gè)html文檔,定義一個(gè)div,并為它寫下以下屬性

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>無(wú)標(biāo)題文檔</title>

<style type="text/css">

#test1 {

position:absolute;

width:200px;

height:200px;

border:10px solid #000000;

background-color:#990000;}

</style>

</head>

 

<body>

<div id="test1"></div>

</body>

</html>

 

(圖片1)

很明顯在沒有任何其他元素干擾下他是參照html頁(yè)面默認(rèn)的margin處開始定位的(非瀏覽器的左上角,瀏覽器的左上角再Address的A處),也就是body。那么我們?cè)趺磁浜蟃OP、RIGHT、BOTTOM、LEFT(下面簡(jiǎn)稱TRBL)來(lái)進(jìn)行定位呢?

我們繼續(xù)為叫做text1的div進(jìn)行以下定義:

#test1 {

       position:absolute;

       width:200px;

       height:200px;

       border:10px solid #000000;

       background-color:#990000;

       top:50px;

       left:50px;

}

 

(圖片2)

如果設(shè)定TRBL并且沒有父級(jí)或父級(jí)沒有設(shè)定position屬性,那么當(dāng)前的absolute則以瀏覽器左上角為原始點(diǎn)進(jìn)行定位,位置將由TRBL決定。

 

2.       研究具有父級(jí)對(duì)象并且父級(jí)對(duì)象設(shè)定了position屬性:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>無(wú)標(biāo)題文檔</title>

<style type="text/css">

body {

margin:0;

color:#FFFFFF;}

#test0 {

width:270px;

height:50px;

background-color:#795B7D;}

 

#test1 {

position:absolute;

width:200px;

height:200px;

border:10px solid #000000;

background-color:#990000;

top:50px;

left:50px;}

 

#test2 {

position:absolute;

border:10px solid #BFA800;

width:100px;

height:100px;

background-color:#000066;}

</style>

</head>

 

<body>

<div id="test0">我是默認(rèn)定位,沒有margin/padding/border不受定位影響</div>

<div id="test1">

<div id="test2">我是子對(duì)象,大家注意看我的位置變化</div></div>

 

</body>

</html>

 

(圖片3)

在這個(gè)例子中大家可以很明顯的看出父級(jí)對(duì)象是個(gè)什么意思了吧!說(shuō)得更直觀一點(diǎn),父子對(duì)象關(guān)系就是當(dāng)B嵌套在A中時(shí),A就是父級(jí)對(duì)象,B就是子級(jí)對(duì)象,就好像是A把B生出來(lái)的一樣。

那我們來(lái)看看當(dāng)為名叫test2的子對(duì)象加上了TRBL是,它的移動(dòng)和沒有父對(duì)象的時(shí)候是否一樣呢?

我們?yōu)閠est2定義如下:

#test2 {

       position:absolute;

       border:10px solid #BFA800;

       width:100px;

       height:100px;

       top:20px;

       left:20px;

       background-color:#000066;

}

 

(圖片4)

    很明顯,移動(dòng)規(guī)則仍然是參照原始點(diǎn)進(jìn)行移動(dòng)。

    而關(guān)于z-index層疊問題就更好理解了,當(dāng)兩個(gè)div重疊時(shí)候,z-index的值越大層疊就越靠前(前提是兩個(gè)div都擁有position屬性).同時(shí)理解“大”的含義,-1比-2要大,通過(guò)數(shù)軸進(jìn)行比較(z軸)。

通過(guò)這2個(gè)例子,我們完全可以很好的理解絕對(duì)定位absolute的意思,總結(jié)可以說(shuō)為:

它是參照瀏覽器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面簡(jiǎn)稱TRBL)進(jìn)行定位,在沒有設(shè)定TRBL,默認(rèn)依據(jù)父級(jí)的做標(biāo)原始點(diǎn)為原始點(diǎn)。如果設(shè)定有TRBL并且父級(jí)沒有設(shè)定position屬性,那么當(dāng)前的absolute則以瀏覽器左上角為原始點(diǎn)進(jìn)行定位,位置將由TRBL決定。

明白了之后相信大家可以理解為什么行家們多說(shuō)“網(wǎng)頁(yè)居中的話用Absolute就容易出錯(cuò)”這句話了吧?!因?yàn)榫W(wǎng)頁(yè)一直是隨著分辨率的大小自動(dòng)適應(yīng)的,而Absolute則會(huì)以瀏覽器的左上角為原始點(diǎn),不會(huì)因?yàn)榉直媛实淖兓兓恢谩?/p>

 

    在此我們不緊明白了absolute的用法,而且還看見了一個(gè)很明顯的問題,那就是絕對(duì)定位不光脫離了文本流,而且在文本流中也不會(huì)給這個(gè)絕對(duì)定位元素留下專屬空位,這就好比是一個(gè)工廠里的工人,如果有一個(gè)工人走了自然會(huì)要有別的工人來(lái)填充這個(gè)位置。而移動(dòng)出去的部分自然也就成為了自由體。絕對(duì)定位將可以通過(guò)TRBL來(lái)設(shè)置元素處在任何一個(gè)位置。

    那么相對(duì)定位呢?相對(duì)定位只可以在文本流中進(jìn)行位置的上下左右的移動(dòng),但存在一定的局限性,雖然他的表現(xiàn)區(qū)脫離了文本流,但是在文本流卻依然為其保留了一席之地,這就好比一個(gè)打工的人他到了外地,但是在老家依然有一個(gè)專屬于他的位置,這個(gè)位置不隨他的移動(dòng)而改變。但是這樣很明顯就會(huì)空出一塊空白來(lái),如果希望文本流拋棄這個(gè)部分就需要用到絕對(duì)定位。

 

    看完了這兩段話后你肯定會(huì)有點(diǎn)摸不著頭腦,不要緊我們就借由這個(gè)疑問來(lái)討論一下相對(duì)定位的用法,同樣我們還是舉兩個(gè)例子來(lái)看看,當(dāng)你看完了例子再回過(guò)頭來(lái)看上面的兩段話你會(huì)理解得非常清楚,并可以知道絕對(duì)定位和相對(duì)定位的差別。

 

 

    Relative:

    Relative,Css中的寫法是:position: relative; 他的意思是相對(duì)定位,他是參照父級(jí)的原始點(diǎn)為原始點(diǎn),無(wú)父級(jí)則以body的原始點(diǎn)為原始點(diǎn),配合TRBL進(jìn)行定位,當(dāng)父級(jí)內(nèi)有padding等Css屬性時(shí),當(dāng)前級(jí)的原始點(diǎn)則參照父級(jí)內(nèi)容區(qū)的原始點(diǎn)進(jìn)行定位。

    看完這段話后大家是否覺得很熟悉呢?對(duì),其實(shí)絕對(duì)定位和相對(duì)定位的定位標(biāo)準(zhǔn)都是一樣的,都是“參照父級(jí)的原始點(diǎn)為原始點(diǎn),無(wú)父級(jí)則以body的原始點(diǎn)為原始點(diǎn),配合TRBL進(jìn)行定位”,他們只是在實(shí)際運(yùn)用情況中會(huì)有一些不同,下面的例子就是來(lái)解決這些疑惑的,當(dāng)你了解了這些不同之處以后,你就能非常熟練的運(yùn)用position定位了。

    1.研究沒有父級(jí)或父級(jí)未定義position的情況:

    由于與absolute的定位方式一樣,因此只需將absolute例子中absolute相應(yīng)的改變?yōu)閞elative即可,在此我就不在贅述。

    2. 研究具有父級(jí)對(duì)象并且父級(jí)對(duì)象設(shè)定了position屬性:

    我們先來(lái)看看所有div都不加position屬性的情況:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>無(wú)標(biāo)題文檔</title>

<style type="text/css">

body {

       margin:0;

       color:#FFFFFF;}

 

#test0 {

       width:270px;

       height:50px;

       background-color:#795B7D;}

 

#test1 {

       width:200px;

       height:200px;

       border:10px solid #000000;

       background-color:#990000;}

 

#test2 {

              border:10px solid #BFA800;

       width:100px;

       height:100px;

       background-color:#000066;}

</style>

</head>

 

<body>

<div id="test1">

       <div id="test2">我是子對(duì)象,大家注意看我的位置變化</div>

</div>

<div id="test0">我是參考div,沒有margin/padding/border不受定位影響</div>

</body>

</html>

 

(圖片5)

    此處我把參考div放在了測(cè)試div的下面,大家想想,如果我把名叫test1的父級(jí)加上一個(gè)position:absolute,會(huì)發(fā)生什么變化呢?對(duì),參考div的左上角會(huì)跑到test1的左上角,也就是瀏覽器的左上角。 

(圖片6)

    大家再想想,如果我把名叫test1的父級(jí)加上一個(gè)position:relative,會(huì)發(fā)生什么變化呢?

#test1 {

       position:relative;

       width:200px;

       height:200px;

       border:10px solid #000000;

       background-color:#990000;

}

       為了大家看的更明顯,我們?yōu)閠est1加上TRBL:

       #test1 {

              position:relative;

              width:200px;

              height:200px;

              border:10px solid #000000;

              background-color:#990000;

top:150px;

              left:300px;

    

 

(圖片7)

    大家可以看到,參考div的位置并未隨著test的移動(dòng)而移動(dòng),它依然處于原位置,雖然他的表現(xiàn)區(qū)脫離了文本流,但是在文本流卻依然為其保留了原本的位置,很明顯就會(huì)空出一塊空白來(lái),如果希望文本流拋棄這個(gè)部分就需要用到絕對(duì)定位。因此在實(shí)際運(yùn)用中要特別注意這點(diǎn),根據(jù)你所要的效果來(lái)決定是否留下空白區(qū)域。

    現(xiàn)在再去看看關(guān)于那個(gè)打工人的比喻,現(xiàn)在是不是可以很好的理解了呢?

    現(xiàn)在你了解相對(duì)定位的含義以及相對(duì)定位和絕對(duì)定位的區(qū)別了吧。

    相互關(guān)聯(lián)的定位:

    上面說(shuō)的是單一的絕對(duì)定位或相對(duì)定位,而在實(shí)際的應(yīng)用中我們常常會(huì)需要用到一種特別的形式——相對(duì)定位和絕對(duì)定位的混合使用。

    那么我們就以下面的例子來(lái)鞏固一下上面所學(xué)的2種定位吧:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>無(wú)標(biāo)題文檔</title>

<style type="text/css">

body {

       margin:0;

       color:#FFFFFF;}

 

#test1 {

       position:relative;

       width:200px;

       height:200px;

       border:10px solid #000000;

       background-color:#990000;

       top:50px;

       left:50px;}

 

#test2 {

       position:absolute;

       border:10px solid #BFA800;

       width:100px;

       height:100px;

       top:20px;

       left:20px;

       background-color:#000066;}

</style>

</head>

<body>

<div id="test1">

       <div id="test2">我是子對(duì)象,大家注意看我的位置變化</div>

</div>

</body>

</html>

 

    這時(shí)候子對(duì)象test2即有絕對(duì)定位的特性有包含相對(duì)定位的特點(diǎn),父級(jí)這里如果要產(chǎn)生位置移動(dòng),或是瀏覽器窗口大小有所變動(dòng)都不會(huì)影響到這個(gè)絕對(duì)定位元素與父級(jí)的相對(duì)定位元素之間的位置關(guān)系。這個(gè)子級(jí)也不用調(diào)整數(shù)值。

    這是一種很特別并且也是非常實(shí)用的應(yīng)用方式。如果你之前對(duì)于定位的控制并不自如的話,相信看完對(duì)這里對(duì)定位的解釋一定可以把定位使用得隨心所欲。

Fixed:

    由于廣告的濫用,使得一些瀏覽器軟件都開始有了廣告內(nèi)容攔截,使得一些很好的效果現(xiàn)在都不推薦使用了。比如讓一個(gè)元素可能隨著網(wǎng)頁(yè)的滾動(dòng)而不斷改變自己在瀏覽器的位置。而現(xiàn)在我可以通過(guò)CSS中的一個(gè)定位屬性來(lái)實(shí)現(xiàn)這樣的一個(gè)效果,這個(gè)元素屬性就是曾經(jīng)不被支持的position:fixed; 他的含義就是:固定定位。這個(gè)固定與絕對(duì)定位很像,唯一不同的是絕對(duì)定位是被固定在網(wǎng)頁(yè)中的某一個(gè)位置,而固定定位則是固定在瀏覽器的視框位置。

    雖然原來(lái)的瀏覽器并不支持過(guò)個(gè)屬性,但是瀏覽器的發(fā)展使得現(xiàn)在的高級(jí)瀏覽器都可以正確的解析這個(gè)CSS屬性。并且通過(guò)CSS HACK來(lái)讓IE6都可以實(shí)現(xiàn)這樣的效果(目前無(wú)法使IE5.x)實(shí)現(xiàn)這種效果。為了不使本文變成冗長(zhǎng)的大論這里只是簡(jiǎn)要告訴大家它的含義關(guān)于fixed屬性的實(shí)例的一些問題大家可以上百度或者Google查找并分析一下,很容易理解的。有不理解的地方可以給我留言!

    總結(jié):相信大家看完了這篇文章后一定會(huì)對(duì)position屬性有一個(gè)更高的了解了吧,希望今后你可以揮灑自如的運(yùn)用這個(gè)屬性進(jìn)行定位。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
css 背景透明,文字不透明,alpha濾鏡,opacity,position:relat...
請(qǐng)教CSS中的position:relative;的作用。
div+Css示例
理解CSS浮動(dòng)float、定位position
ie7下z
css中postion的fixed與absolute區(qū)別詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服