自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CSS中position定位和z-index屬性用法詳解

開發(fā) 前端
本文向大家描述一下CSS中的position定位和z-index屬性的用法,重點(diǎn)說(shuō)一下position屬性中static、absolute、relative參數(shù)的定義和使用。

你對(duì)CSS中的position定位和z-index屬性的用法是否了解,position屬性中static、absolute、relative三個(gè)參數(shù),這里和大家分享一下其用法。

深入理解CSS中的position定位和z-index屬性

  由于平時(shí)不太用到,所以過(guò)去寫CSS的時(shí)候?qū)τ趐osition屬性的absolute、relative值理解比較模糊,對(duì)于z-index的層疊更是摸不著頭腦,除了理解的因素外,各個(gè)瀏覽器的不同解析結(jié)果也是一個(gè)大問(wèn)題。今天仔細(xì)閱讀了一下CSS文檔,總算是對(duì)盒模型的浮動(dòng)、定位有了比較深刻的理解。

  我們?cè)趯?shí)踐中很有可能遇到這樣的問(wèn)題:

  1、做一個(gè)橫向?qū)Ш?,然后鼠?biāo)經(jīng)過(guò)之后出現(xiàn)下拉菜單,那么這個(gè)下拉菜單的位置控制就是一個(gè)關(guān)鍵;

  2、我們想在一個(gè)正常的頁(yè)面布局中放入幾個(gè)浮在頁(yè)面上的氣泡提示,這時(shí)既不想讓氣泡提示破壞正常的文檔布局,又不想氣泡提示的定位在不同的瀏覽器中到處亂飄。

  3、當(dāng)我們?cè)谝痪湔5奈谋局胁迦胍粋€(gè)小圖標(biāo)的話,一般會(huì)使用標(biāo)簽,而這時(shí)它的垂直居中問(wèn)題又是讓人困惑,無(wú)論你使用html屬性absmiddle、或是使用CSS屬性vertical-align、抑或是使用父對(duì)象的heigh+line-height,在不同的瀏覽器中總會(huì)看起來(lái)不同。

  嗯,上面幾個(gè)問(wèn)題你是否也遇到過(guò)呢?如果你至今還沒有一個(gè)很好的解決辦法,不妨繼續(xù)閱讀此文,或許能對(duì)你有所幫助:)

  ◆我們先看一下position屬性的幾個(gè)取值定義:

  position:static、absolute、relative

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

  如下圖所示,這是一個(gè)常見的指定了float:left;的橫向?qū)Ш剑骸 ?/p>

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

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

  提示a:蘇昱的CSS2.0手冊(cè)中提到relative和absolute定位的滾動(dòng)條區(qū)別不是絕對(duì)的,至少在firefox、opera和safari中滾動(dòng)條該出現(xiàn)還是會(huì)出現(xiàn)。

  提示b:屬性值為absolute對(duì)象的z-index屬性可以設(shè)置層疊顯示的次序,它是直接有效的;

  而屬性值為relative對(duì)象的z-index屬性在設(shè)置時(shí)要小心,把當(dāng)前對(duì)象的z-index設(shè)置為-1是不行的,在firefox中它會(huì)無(wú)法顯示,必須設(shè)置為0以上,我們?nèi)绻胱寗e的對(duì)象擋住它,只有將其他對(duì)象也設(shè)置position為relative,并將z-index屬性取一個(gè)比它大的值即可。

  上面的表述不知道也許不是很清晰,具體的理解還是要自己親自動(dòng)手操作一下。

  這樣看來(lái),前面的問(wèn)題就有解了,問(wèn)題3我們可以根據(jù)設(shè)計(jì)的要求將其設(shè)置為相對(duì)或絕對(duì)定位;

  問(wèn)題1的解決方法也有很多,個(gè)人推薦使用有語(yǔ)義的dl,dt,dd來(lái)實(shí)現(xiàn),而且這個(gè)方法在不同瀏覽器中的表現(xiàn)基本相同(已在ie,firefox,opera,safari中測(cè)試),僅在top的屬性上有幾像素的差異,由于時(shí)間關(guān)系我只能給出自己測(cè)試時(shí)的代碼以供參考:

#p#

◆示例代碼:  

  1. body{  
  2. color:#fff;  
  3. font-size:12px;  
  4. }  
  5. ulli{  
  6. float:left;  
  7. height:30px;  
  8. background-color:#99CC99;  
  9. margin:010px;  
  10. padding:0;  
  11. border:1pxsolid#c30;  
  12. width:100px;  
  13. }  
  14. ullidiv{  
  15. border:1pxsolid#f00;  
  16. background-color:#996666;  
  17. width:100px;  
  18. height:100px;  
  19. position:absolute;  
  20. margin-top:15px;  
  21. margin-left:-1px;  
  22. *margin-left:-79px;  
  23. }  
  24. ullidl,  
  25. ullidldt,  
  26. ullidldd{  
  27. margin:0;  
  28. padding:0;  
  29. }  
  30. ullidldd{  
  31. border:1pxsolid#f00;  
  32. background-color:#996666;  
  33. width:100px;  
  34. height:100px;  
  35. position:absolute;  
  36. margin-top:11px;  
  37. *margin-top:10px;  
  38. margin-left:-1px;  
  39. }  
  40. <ul> 
  41. <li> 
  42. 標(biāo)題-#text  
  43. <div> 
  44. 下拉菜單-div  
  45. div> 
  46. li> 
  47. <listylelistyle="position:relative;">列表bli> 
  48. <li>列表cli> 
  49. <li> 
  50. <dl> 
  51. <dt>標(biāo)題-dtdt> 
  52. <dd>下拉菜單-dddd> 
  53. dl> 
  54. li> 
  55. ul> 

【編輯推薦】

  1. CSS樣式表優(yōu)化秘訣
  2. CSS Sprites樣式生成工具用法詳解
  3. FireFox和IE中CSS兼容技巧匯總
  4. CSS代碼整理及優(yōu)化七大原則
  5. 深入剖析Firefox下 margin-top失效原因與解決方案

 

 

 

責(zé)任編輯:佚名 來(lái)源: 236web.com
相關(guān)推薦

2010-09-08 16:22:32

PositionCSS

2010-09-06 11:11:31

CSS定位

2010-09-01 11:21:18

CSSpositionfloat

2010-08-24 15:11:24

PositionCSS

2010-09-15 13:44:01

CSS positio

2010-08-23 09:42:50

CSSPosition

2010-09-15 15:03:52

CSS positio

2010-09-15 14:56:18

CSSposition:fi

2010-09-15 14:30:07

CSS backgro

2010-09-06 17:20:04

background-CSS

2010-09-15 14:00:06

position屬性DIV

2010-09-07 16:46:59

CSSexpression

2010-09-13 12:56:56

CSSpositionfloat

2020-12-28 12:36:11

css重疊順序

2020-12-29 05:28:55

Css前端Css z-index

2010-09-10 12:40:06

CSS相對(duì)定位CSS絕對(duì)定位

2010-08-23 08:45:08

CSSpadding內(nèi)邊距

2010-08-23 15:33:47

CSSpadding

2010-09-01 13:37:58

CSSclip屬性

2010-09-10 10:47:47

CSSposition
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)