我有一個相當簡單的交互式地圖與一堆「引腳」,在懸停時顯示相應的「標籤」。Z-index不適用於多個絕對定位元素
CSS(不相關性略):
#map { position: relative; }
.map-pin { display: block; position: absolute; }
.map-tag { float: left; left: 20px; opacity: 0; pointer-events: none; position: absolute; }
.map-pin:hover .map-tag { opacity: 1; pointer-events: all; }
HTML(只包括了明顯的原因之一針格):
<div id="map">
<div id="map-pin-1" class="map-pin">
<div class="map-tag"></div>
</div>
</div>
的問題是標籤,儘管給他們任何足夠高z-index值,不會出現在所有其他引腳之上。看起來他們只會出現在DOM中特定標籤上方的引腳之上。例如,#map-pin-3 .map-tag
將出現在#map-pin-1
和#map-pin-2
之上,但#map-pin-4
將出現在標籤上方。
有什麼建議嗎?
我意識到其他引腳出現在標籤上方的原因是因爲.map-pin div的高度和寬度設置爲20px。這樣做是爲了防止大的div阻止其他引腳懸空。我在'.map-pin'裏面直接插入了一個錨點作爲'.map-tag'的兄弟,並將其設置爲20x20(並且將'.map-pin'設置爲auto),所以當標籤出現在.map-pin一個'被盤旋,而不是整個div。如果我增加div尺寸,它會覆蓋其他引腳,但會阻止它們懸停。如果我減少它,它允許引腳懸停,但引腳出現在div上方。 – Bobe