*{ margin:0; padding:0; list-style:none;}
li {height:100px; margin:0 5px 0 0; float:left; width:100px 0 0; float:left; width:100px); z-index:1; display:block; height:100px; width:100px; background:#000;}
li a:hover {background:#000000;}
li a:hover {background:#000000;}
li a:hover { BR>li a:hover span {display:block; background:#c00; width:200px; height:200px; position:absolute; top:0; left:100px; position:absolute; top:0; left:100px; position:absolute; top:0; left:100px; position:100 ; >
提示:您可以先修改部分程式碼再運行
我們設定了a為位置:相對;這樣他的子級就會根據父級的坐標為坐標然後隱藏原點進行定位了。我們設定跨度的具體形狀以及定位屬性,然後重力了。再一個的α類:懸停使得span被啟動。我們看一下結果,我們會發現,所有的都應該在上面的現在全部在下面了。那我們怎麼解決這個問題呢,其實以CSS想要強行突破是不太可能的,所以我們反過來想,不能讓這個沒有被觸發的父級標籤沒有position:relative;屬性,而只是觸發的時候繼承這個父級賦上這樣的值?其實想到這裡基本上已經可以解決所有的問題了:
*{margin:0;填充:0;列表樣式:無;}
li {高度:100px;邊距:0 5px 0 0;向左飄浮;寬度:100px;}
li a {display:block;高度:100px;寬度:100px;背景:#000;}
li a:hover {position:relative; z 索引:1; }
li span {display:none;}
li a:hover span {display:block;寬度:200px;高度:200px;背景:#c00;位置:絕對;頂部:0;左:100px; z 索引:1000; }
提示:您可以先修改部分程式碼再運行
我們只針對a:hover來設定其屬性為position:relative;就可以了,這樣只有在滑鼠觸發的時候A才會被賦於一個相對定位的屬性。這樣就完成可以解決被其他父級標籤所擋的尷尬了。BR> 當然如果不介意IE6或IE5.X這樣的瀏覽器 我們還可以把程式碼再做簡化:
CSS可以改成這樣:
*{margin:0; padding:0; list-style:none;}
li {height:100px; margin:0 5px 0 0; float:left; width:100px; background:#000;}
li:h {position:relative;#000;}
li:h {position:relative;#000;}
li:h {position:relative; span {display:none;}
li:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0 }
提示:您可以先修改部分程式碼再執行
原始閱讀:
http://andymao.com/andy/post/67.html