一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

position:relative/absolute無法沖破的等級

注:本文實例在IE5.x下可能會顯示不出來,請使用IE6、IE7、Firefox、Opera等瀏覽器來調試!
前段時間記得好像是誰在群里提出了一個實在是讓大家都覺得很不理解的一個問題: 
復制代碼 代碼如下:
<ul>  
<li>第一塊</li>  
<li><span>第二塊</span></li>  
<li>第三塊</li>  
<li>第四塊</li>  
<li>第五塊</li>  
</ul> 

如果我我們設定LI為position:relative;設置span為position:absolute;那么我們會發現無論SPAN的z-index值設置得再高都將永遠在后面父級的下面。
復制代碼 代碼如下:
*{margin:0; padding:0; list-style:none;}  
li {width:100px; height:100px; margin:0 5px 0 0; background:#000; float:left; position:relative; z-index:1;}  
li span {width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000;}  


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]    提示:您可以先修改部分代碼再運行
試一下很容易發現我們的子級,z-index的值達到了1000的被設定了position:absolut;子級都被檔在了父級的下面。我想了很久,我覺得其根本問題是:設置同樣的position:relative/absolute;同級標簽之間的等級是無法用z-index超越的。我們上面的例子中的第一個LI的等級永遠都要小于后一個LI的等級,所以我們在LI里的子級身上設置了position:absolute;,給了非常高的z-index值。
也許你會這樣來想:只要針對有span的LI設置position:relative;不就好了嗎?非常正確。當其它的LI都不設置position:relative;那么我們需要的那個子級就可以浮在所有的內容之上。但是如果實際上,所有的LI中都要有span,并且屬性都需要一樣怎么辦?當然我們不大會需要有這樣的效果。但是我們需要有這樣的效果:子級全部是隱藏的,當有鼠標反應時出現并且浮在所有的內容之上。我們要知道,這確實是件讓人頭疼的事,因為我們上面見識到了,子級在顯示的時候都被壓在了下一個父級標簽的下面。下面我們來實現一下這個鼠標反應的定位效果:
復制代碼 代碼如下:
<ul>  
<li><a href="" title=""><span>第一塊</span></a></li>  
<li><a href="" title=""><span>第二塊</span></a></li>  
<li><a href="" title=""><span>第三塊</span></a></li>  
<li><a href="" title=""><span>第四塊</span></a></li>  
<li><a href="" title=""><span>第五塊</span></a></li>  
</ul>  

我們通過鏈接的鼠標事件來完成這個顯示隱藏效果:
復制代碼 代碼如下:
*{margin:0; padding:0; list-style:none;}  
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}  
li a {position:relative; z-index:1; display:block; height:100px; width:100px;  background:#000;}  
li a:hover {background:#000000;} 
li span {display:none;}  
li a:hover span {display:block; background:#c00; width:200px; height:200px; position:absolute; top:0; left:100px; z-index:1000; }  


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]    提示:您可以先修改部分代碼再運行
我們設定了a為position:relative;這樣他的子級就會根據父級的左上角為坐標原點進行定位了。然后我們設定span的具體形狀以及定位屬性,然后把他隱藏了。我們再通過A的偽類:hover使得span被激活。我們看一下結果,我們會發現,所有應該在上面的現在全在下面了。那我們怎么解決這個難題呢,其實以CSS想強行突破是不太可能,所以我們反過來想,能不能讓這個沒有被觸發的父級標簽沒有position:relative;屬性,而只是觸發的時候才有級這個父級賦上這樣的值?其實想到這里基本上已經可以解決所有的問題了:
復制代碼 代碼如下:
*{margin:0; padding:0; list-style:none;}  
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}  
li a {display:block; height:100px; width:100px;  background:#000;}  
li a:hover {position:relative; z-index:1; }  
li span {display:none;}  
li a:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }  


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]    提示:您可以先修改部分代碼再運行
我們只要針對a:hover來設定其屬性為position:relative;就可以了,這樣只有在鼠標觸發的時候A才會被賦于一個相對定位的屬性。這樣就完成可以解決被其它父級標簽所擋的尷尬了。
當然如果不介意IE6或是IE5.X這樣的瀏覽器我們還可以把代碼再做簡化:
復制代碼 代碼如下:
<ul>  
<li><span>第一塊</span></li>  
<li><span>第二塊</span></li>  
<li><span>第三塊</span></li>  
<li><span>第四塊</span></li>  
<li><span>第五塊</span></li>  
</ul>  

CSS可以改成這樣:
復制代碼 代碼如下:
*{margin:0; padding:0; list-style:none;}  
li {height:100px; margin:0 5px 0 0; float:left; width:100px; background:#000;}  
li:hover {position:relative; z-index:1;}  
li span {display:none;}  
li:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }  


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]    提示:您可以先修改部分代碼再運行
原始閱讀:
http://andymao.com/andy/post/67.html

HTML/CSS技術position:relative/absolute無法沖破的等級,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 黄色网址免费在线 | 亚洲天堂久久精品成人 | 久久精品国产久金国产思思 | 亚洲欧美视频网站 | 99精品伊人久久久大香线蕉 | 黄色大片网站在线观看 | www.欧美黄色 | 青春娱乐国产分类精品二 | 五月婷婷影视 | 精品视频一区二区三区在线观看 | 国产精品每日在线观看男人的天堂 | 一区二区三区日韩精品 | 黄色免费网站在线观看 | 精品伊人久久久久7777人 | 六月婷婷精品视频在线观看 | 91无毒不卡| 天天色天天射综合网 | 美女无遮挡免费视频 | 日本美女一区二区 | 精品一区二区三区波多野结衣 | aa级国产女人毛片水真多 | 免费 高清 日本视频 | 1区2区3区集团有限公司 | 欧美色黄 | 国产精品美女久久久久 | 中文字幕日韩精品亚洲七区 | 久久大香萑太香蕉综合网 | 亚洲88| 欧美精品在线免费观看 | 亚洲人成伊人成综合网久久久 | 免费91麻豆精品国产自产在线观看 | 久久免费国产精品一区二区 | 亚洲精品欧美综合四区 | 国产精品视频第一页 | 色播.com| 国产乱论| 一级做a爰片性色毛片新版的 | 春色视频一区二区三区 | 乱色欧美videos黑人 | 一二三四在线播放免费视频中国 | 黄视频大全 |