元素重疊及position定位的z-index順序

html頁面重疊錯誤巫糙,多數(shù)還是position定位情況下z-index的問題环揽。

?元素位置重疊的背景常識

?(x)html文檔中的元素默認(rèn)處于普通流(normal flow)中,其順序由元素在文檔中的先后位置決定捌肴,此時一般不會產(chǎn)生重疊(但指定負(fù)邊距可能產(chǎn)生重疊)式矫。當(dāng)我們用css為某個元素指定 float浮動或者position定位后,元素的定位將會依情況發(fā)生如下改變:

1. 指定float值left/right??? ?行內(nèi)元素也會隱形變成塊元素预明,元素會脫離文檔的普通流缩赛,向左或右浮動,直到其外邊緣碰到包含框或另一個浮動框撰糠。

?2. 指定position值relative??? 可以相對于其在普通流中的位置偏移酥馍,原本所占的空間仍保留。

?3. 指定position值absolute????? 行內(nèi)元素也會隱形變成塊元素阅酪,元素會脫離文檔的普通流旨袒,相對于最近的已定位祖先元素偏移,如果元素沒有已定位的祖先元素术辐,那么它的位置相對于最初的包含塊偏移砚尽。

?4. 指定position值fixed???? 元素會脫離文檔的普通流,相對于瀏覽器窗口偏移辉词,固定在瀏覽器的某個位置必孤。

以上四種情況下,文檔中的元素都將可能被浮動/定位元素覆蓋產(chǎn)生重疊瑞躺。 元素位置重疊的可能原因

?1. 負(fù)邊距/float浮動 margin為負(fù)值時元素會依參考線向外偏移隧魄。margin-left/margin-top的參考線為左邊的元素/上面的元素(如無兄弟元素則為 父元素的左內(nèi)側(cè)/上內(nèi)側(cè)),margin-right和margin-bottom的參考線為元素本身的border右側(cè)/border下側(cè)。一般可以利 用負(fù)邊距來就行布局隘蝎,但沒有計算好的話就可能造成元素重疊购啄。堆疊順序由元素在文檔中的先后位置決定,后出現(xiàn)的會在上面嘱么。 浮動元素會脫離文檔的普通流狮含,有可能覆蓋或遮擋掉文檔中的元素。

?2. position的relative/absolute/fixed定位 當(dāng)為元素設(shè)置position值為relative/absolute/fixed后曼振,元素發(fā)生的偏移可能產(chǎn)生重疊几迄,且z-index屬性被激活。 z-index值可以控制定位元素在垂直于顯示屏方向(Z 軸)上的堆疊順序(stack order)冰评,值大的元素發(fā)生重疊時會在值小的元素上面映胁。

?3. window窗口元素引發(fā)的重疊 瀏覽器解析頁面時,先判斷元素的類型:窗口元素優(yōu)于非窗口元素顯示(也就是窗口元素會覆蓋在其它非窗口元素之上)甲雅,同為非窗口類型才能在激活z-index屬性控制堆疊順序解孙。

Flash元素屬于window窗口元素

?所以如果頁面上flash元素和其他元素發(fā)生重疊坑填,需要先將flash嵌入的wmode屬性的window(窗口,默認(rèn)的會造成上面所說的問題)改為非窗口模式:opaque(非窗口不透明)或者 transparent(非窗口透明)弛姜。

ie6下select屬于window類型控件

同理脐瑰,它也產(chǎn)生窗口元素的遮擋問題。解決方法使用iframe(原理:ie6下普通元素?zé)o法覆蓋select廷臼,iframe可以覆蓋select苍在, 普通元素可以覆蓋iframe)/用div模擬實現(xiàn)select的效果。我一般會為被select遮擋的div在內(nèi)部追加(appendChild)一個 空的子iframe荠商,設(shè)置position:absolute脫離文檔流空間寂恬、width:100%;height:100%;覆蓋整個父div、z- index:-1;確保值要小于父div的z-index值讓父div覆蓋顯示在iframe上面莱没,借助這個iframe來覆蓋select初肉。

淺說position定位及z-index使用

使用前提:

?z-index只能在position屬性值為relative或absolute或fixed的元素上有效。

基本原理 :

z-index值可以控制定位元素在垂直于顯示屏方向(Z 軸)上的堆疊順序(stack order)郊愧,值大的元素發(fā)生重疊時會在值小的元素上面朴译。

使用的相對性:

?z-index值只決定同一父元素中的同級子元素的堆疊順序。父元素的z-index值(如果有)為子元素定義了堆疊順序(css版堆疊“拼 爹”)属铁。向上追溯找不到含有z-index值的父元素的情況下眠寿,則可以視為自由的z-index元素,它可以與父元素的同級兄弟定位元素或其他自由的定位 元素來比較z-index的值焦蘑,決定其堆疊順序盯拱。同級元素的z-index值如果相同,則堆疊順序由元素在文檔中的先后位置決定例嘱,后出現(xiàn)的會在上面。 所以如果當(dāng)你發(fā)現(xiàn)一個z-index值較大的元素被值較小的元素遮擋了拼卵,請先檢查它們之間的dom結(jié)點關(guān)系奢浑,多半是因為其父結(jié)點含有激活并設(shè)置了z-index值的position定位元素。 也因為這個相對性腋腮,還會引發(fā)瀏覽器表現(xiàn)不一致出現(xiàn)兼容問題雀彼。原因是ie6聪富、7下面position值為非static的元素在未設(shè)置z-index值的情況下都會被隱含添加z-index:0,而Firefox/Chrome等現(xiàn)代瀏覽器會遵循標(biāo)準(zhǔn)默認(rèn)z-index:auto不會產(chǎn)生值炕横。

負(fù)值的z-index也依照大小比較的原理嗽交,但一般來說負(fù)值的z-index會被透明的body覆蓋導(dǎo)致點擊等事件響應(yīng)出現(xiàn)問題沃疮,請謹(jǐn)慎使用邑茄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市跛十,隨后出現(xiàn)的幾起案子洲尊,更是在濱河造成了極大的恐慌霎苗,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件避凝,死亡現(xiàn)場離奇詭異,居然都是意外死亡含潘,警方通過查閱死者的電腦和手機线婚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔗草,“玉大人模叙,你說我怎么就攤上這事厂庇∈淅簦” “怎么了熙含?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長与纽。 經(jīng)常有香客問我僚碎,道長矛双,這世上最難降的妖魔是什么灵疮? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮店展,結(jié)果婚禮上秃流,老公的妹妹穿的比我還像新娘概说。我一直安慰自己挂捻,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悠汽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兆旬。 梳的紋絲不亂的頭發(fā)上宿饱,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天沥寥,我揣著相機與錄音邑雅,去河邊找鬼吹泡。 笑死爆哑,一個胖子當(dāng)著我的面吹牛揭朝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屯换,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼蕾盯,長吁一口氣:“原來是場噩夢啊……” “哼级遭!你這毒婦竟也來了鸥跟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤拟淮,失蹤者是張志新(化名)和其女友劉穎干茉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體很泊,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡角虫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了委造。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戳鹅。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昏兆,靈堂內(nèi)的尸體忽然破棺而出枫虏,到底是詐尸還是另有隱情,我是刑警寧澤爬虱,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布隶债,位于F島的核電站,受9級特大地震影響饮潦,放射性物質(zhì)發(fā)生泄漏燃异。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一继蜡、第九天 我趴在偏房一處隱蔽的房頂上張望回俐。 院中可真熱鬧逛腿,春花似錦、人聲如沸仅颇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忘瓦。三九已至搁廓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耕皮,已是汗流浹背境蜕。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凌停,地道東北人粱年。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像罚拟,于是被迫代替她去往敵國和親台诗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案赐俗? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,737評論 1 92
  • CSS 定位 CSS有三種基本的定位機制:普通流阻逮,浮動粱快,絕對定位(absolute, fixed):普通流是默認(rèn)定...
    _空空閱讀 5,724評論 0 15
  • 1.解決bootstrap datetimepicker 在bootstrap modal中不顯示問題 通過...
    一只機智的蝸牛閱讀 1,332評論 0 2
  • z-index使用的前提 z-index只能在position屬性值為relative或absolute或fixe...
    panw3i閱讀 1,172評論 0 0
  • 本思維導(dǎo)圖筆記由得到欄目《每天一本書》音頻節(jié)目整理而成,希望能給對此書感興趣的讀者帶來幫助夺鲜。 原創(chuàng)導(dǎo)圖皆尔,轉(zhuǎn)載請注明。
    Real_bin閱讀 137評論 0 0