positionnbsp;absolutenbsp;relativenbsp;z-index
由于平時不太用到,所以過去寫css的時候對于position屬性的absolute relative值理解比較模糊,
對于z-index的層疊更是摸不著頭腦,除了理解的因素外,各個瀏覽器的不同解析結果也是一個大問題.今天仔
細閱讀了一下css文檔,總算是對盒模型的浮動、定位有了比較深刻的理解.
我們在實踐中很有可能遇到這樣的問題:
1、做一個橫向導航,然后鼠標經過之后出現下拉菜單,那么這個下拉菜單的位置控制就是一個關鍵;
2、我們想在一個正常的頁面布局中放入幾個浮在頁面上的氣泡提示,這時既不想讓氣泡提示破壞正常的
文檔布局,又不想氣泡提示的定位在不同的瀏覽器中到處亂飄.
3、當我們在一句正常的文本中插入一個小圖標的話,一般會使用標簽,而這時它的
垂直居中問題又是讓人困惑,無論你使用html屬性absmiddle、或是使用css屬性vertical-align、
抑或是使用父對象的heigh + line-height,在不同的瀏覽器中總會看起來不同.
嗯,上面幾個問題你是否也遇到過呢?如果你至今還沒有一個很好的解決辦法,不妨繼續閱讀此文,
或許能對你有所幫助:)
我們先看一下position屬性的幾個取值定義:
position: static、absolute、relative
static : 默認值.如果沒有指定position屬性,支持position屬性的html對象都是默認為
static,可以這么理解:把html頁面看作一個文檔流,源代碼中各個標簽的先后位置就是它們所對應的對
象的呈現次序,所有取值為static的對象都按照你所編寫的html標簽的順序依次呈現.
如下圖所示,這是一個常見的指定了float:left;的橫向導航:
relative: 相對定位.這個屬性值保持對象所在文檔流中的位置,也就是說它具有和static相
同的呈現方式,它同樣占有在文檔流中的固定位置,后面的對象不會侵占或覆蓋;與static屬性值不同的
是,設置了relative的對象,可以通過top, left, right, bottom屬性設定自己的新顯示位置,
這4個屬性的取值是相對于文檔流的前一個對象的,你可以自由設置這4個屬性偏移到新的位置而不對文檔
流中的其他對象產生任何影響,原來的頁面呈現仍然會我行我素:
absolute: 絕對定位.和relative不同的是,這個屬性值會將當前對象拖出文檔流,后面的對
象會占有原來的位置,也就是說,當前對象的呈現是獨立顯示的,但是它的位置在指定top, left,
right, bottom任一屬性之前仍是有繼承性的,這時的4個屬性的取值是相對于瀏覽器的,和文檔
流無關了.如果把示例中的B區域設定為absolute而不指定 4個位置屬性,通過設定margin來改變
它的相對位置,用這個方法可以解決前面提到的問題2.
提示a: css2.0手冊中提到relative和absolute定位的滾動條區別不是絕對的,至少在firefox、
opera和safari中滾動條該出現還是會出現.
提示b: 屬性值為absolute對象的z-index屬性可以設置層疊顯示的次序,它是直接有效的;
而屬性值為relative對象的z-index屬性在設置時要小心,把當前對象的z-index設置為-1是不行的,
在firefox中它會無法顯示,必須設置為0以上,我們如果想讓別的對象擋住它,只有將其他對象也設置position
為relative,并將z-index屬性取一個比它大的值即可.
上面的表述不知道也許不是很清晰,具體的理解還是要自己親自動手操作一下.
這樣看來,前面的問題就有解了,問題3我們可以根據設計的要求將其設置為相對或絕對定位;
問題1的解決方法也有很多,個人推薦使用有語義的dl, dt, dd來實現,而且這個方法在不同
瀏覽器中的表現基本相同(已在ie, firefox, opera, safari中測試),僅在top的屬性上有
幾像素的差異,由于時間關系我只能給出自己測試時的代碼以供參考:
css
body {
color:#fff;
font-size:12px;
}
ul li {
float:left;
height:30px;
background-color:#99CC99;
margin:0 10px;
padding:0;
border:1px solid #c30;
width:100px;
}
ul li div {
border:1px solid #f00;
background-color:#996666;
width:100px;
height:100px;
position:absolute;
margin-top:15px;
margin-left:-1px;
*margin-left:-79px;
}
ul li dl,
ul li dl dt,
ul li dl dd {
margin:0;
padding:0;
}
ul li dl dd {
border:1px solid #f00;
background-color:#996666;
width:100px;
height:100px;
position:absolute;
margin-top:11px;
*margin-top:10px;
margin-left:-1px;
}
html
- 標題
下拉菜單
- 列表b
- 列表c
- 標題
- 下拉菜單
跑運輸論壇,跑跑運輸,搞活經濟!!! (還等什么!!!趕快猛點進入!!!) 跑運輸站長博客,跑運輸,搞活經濟!!! (還等什么!!!趕快猛點進入!!!)
聚劃算淘寶客外推精選商品、 集結聚劃算外推高轉化商品 品牌賣家折扣商品推廣 天天瘋狂購,低至3折,還等 神馬 打造第一母嬰達人館,網羅更多母嬰商品,為你打造屬于你的溫馨小屋! 淘寶優秀店鋪精選,集合了高傭金高轉換率的優秀店鋪。 秒殺滿立減 齊集淘寶瘋狂促銷食品、讓你買得省心、吃得放心、而且還有高額傭金哦! 淘寶皇冠店鋪精選,集合了高傭金高轉換率的皇冠 店鋪。 淘寶網-亞洲最大、最安全的網上交易平臺,提供機票、票務服務,方便您的出行 想看寶島臺灣的時尚動態嗎,想觀寶島臺灣的潮流前沿嗎,一切盡在臺灣館頻道,高傭金、高轉化,精彩不容錯過 淘寶最權威的女裝風向標,集合了淘寶最熱賣的優質商品,給買家帶來全新的購物體驗。 淘寶商城,亞洲最大最全最專業的網上購物網站——淘寶網打造的在線B2C購物平臺。淘寶商城頻道集合了全球最知名的品牌包括聯想、惠普、迪士尼、Kappa、樂扣樂扣、JackJones等,給買家帶來全新的一站式購物體驗 正品行貨保證!精選電器城最優品牌商品,讓您有親臨商城的優良購物體驗。 引領淘寶數碼時尚,為你帶來淘寶最受追捧的新潮數碼產品,讓你追隨時尚永不out! 淘寶最權威的鞋包配飾風向標,集合了淘寶最熱賣的優質商品,讓買家了解每季最時尚的配飾。 淘寶客男人頻道,精選淘寶網熱銷男裝,高成交、高傭金、高轉化,讓您收益節節高! 集結淘寶最豐富的強勢類目,精選最優質的賣家和商品,達到最廣泛的買家覆蓋率 淘寶美容館,我的美容管家。精選商品、高額傭金、瘋狂暢銷、打造買家自己的美容小館。 打造第一居家達人館,網羅更多創意極品和居家商品,為你共同打造屬于你的浪漫滿屋!
網購從這里開始
總結
以上是生活随笔為你收集整理的positionnbsp;absolutenbsp;relativenbsp;z-index的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流畅的验证组件:FluentValida
- 下一篇: MAC电脑数据迁移方法