今天在工作過程中,遇到這麼乙個奇葩問題,搞了好一陣子才找到原因,遂總結了一下...
先上demo:
<div
style
="width:800px; height:400px;"
>
<
div
style
="width:380px; height:400px; float:left;"
>
<
div
id="a1"
style
=" position:relative; z-index:1;"
>
<
div
style
="position:absolute;"
>
<
div
style
="width:400px; height:200px; position:absolute; background:#f00; left:100px; top:50px;"
>
div>
div>
div>
div>
<
div
style
="width:380px; height:400px; float:right;"
>
<
div
id="a2"
style
=" position:relative; z-index:1;"
>
<
div
style
="position:absolute;"
>
<
div
style
="width:400px; height:200px; position:absolute; background:#0f0; left:-100px; top:100px;"
>
div>
div>
div>
div>
div>
<
input
type
="button"
value
="click"
onclick
="document.getelementbyid('a1').style.zindex=3"
/>
當你用ie7執行此段**
(ie6暫未確認是否會出此問題,不過推斷也會有這問題,畢竟這兩瀏覽器就是一對奇葩... )
你會發現,不管怎麼點按鈕,紅色層死活不肯跑到綠色層上面...
而在其他瀏覽器不會,唯獨ie的奇葩兄弟會這樣
但是...如果你用css直接定義乙個z-index:3給a1,紅框又能蓋住綠框了...
並且用頁面載入事件( 如jquery的$(document).ready(function()) )來觸發js,修改a1的z-index也是可以實現紅框蓋住綠框...
也就是說,唯獨像點選,滑鼠經過這樣的時間所觸發執行的js是無效果的...
此時此刻...無比鬱悶了吧...
解決方法是:
將a1和a2的父級元素都設為相對定位( position:relative )
然後修改按鈕onclick事件觸發的js,讓其功能變為如下...
修改a1父級元素的z-index,使a1的父級元素的z-index值大於a2的父級元素的z-index值
這樣就正常了
總結:ie6 和 ie7 下,兩個
相對定位
元素,如果他們的上一級
父級元素( 注意,是最親的一級 )不是同一元素。
其z-index值通過頁面載入事件以外的其他事件來執行js進行修改,均無效果。
而直接定義css,或通過ready事件來執行js進行修改,則有效果。
關於z index的一些疑惑
當我使用z index這個屬性的時候,為了實現首頁的banner圖,我還同是用到了乙個bootstrap的carousels外掛程式,然後我就鬱悶了,開始沒有發現,然後出現了在360瀏覽器上當banner滑動的時候我的頭部居然閃爍的現象,開始一直找不到原因。最後仔細的觀察居然是這個屬性的問題就是z ...
關於編譯的一些小知識
gnu編譯器 g 編譯 c 程式 在windows下,進入源 所在的路徑下,在命令列中輸入 g o test.exe test.cpp將test.cpp 編譯生成 test.exe 可執行檔案,如果沒有 o test.exe 選項,預設生成 a.exe 在linux下,進入源 所在的路徑下,在命令列...
關於dialog的一些小結
1.自定義dialog繼承dialog,2.或者activity在mainifest中設定 android theme style commondialog android theme.dialog 或者 3.處理一些手機寬高不能與螢幕寬高等同問題 顯示在底部與螢幕寬度一樣 private void...