0
我試圖讓一個「播放」圖標出現在懸停的視頻鏈接上方。爲此,我使用:before僞元素在鏈接上添加►字符。我的問題是,所有的鏈接都有相對的定位,儘管my:before元素的寬度/高度爲0,但它似乎在移動鏈接。0寬度和高度影響其他元素的相對位置的DIV
將樣式「display:inline-block;」添加到大多數瀏覽器的這個問題中,但我仍然遇到IE/Firefox的問題。
HTML
<li class="videoLinks">
<a>
<img src="01-poster.png">
</a>
<a>
<img src="02-poster.png">
</a><br><br>
<a >
<img src="03-poster.png">
</a></li>
CSS
.videoLinks a{
display:inline-block;
}
.videoLinks a img{
z-index:0;
opacity:0.7;
border:1px solid #808080;
margin-left:4px;
box-shadow:2px 3px 5px rgba(0,0,0,0.2);
}
.videoLinks a img:hover{
opacity:1;
border:1px solid #ff6600;
}
.videoLinks a:hover:before{
z-index:5;
position:relative; top:-12px; left:30px;
display:inline-block; width:0px; height:0px;
margin:0; padding:0; border:0;
content:"\25BA"; /** "►" **/
color:rgba(255,96,0,0.8); font-size:80px;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
pointer-events:none;
}
在此先感謝
「之前」將內容放在之前,因此使用絕對定位將相對於包含鏈接的div而不是鏈接本身。我曾想過在標籤上使用「:before」,但不幸的是,原來標籤不接受僞元素。 – Liam
實際上,':before'把它包含的任何內容相對於實際元素(不一定是「之前」)。因此,如果您在元素上設置了「position:relative」,並在':before'上設置了「position:absolute」,則可以將僞元素與實際元素相關聯。你可以認爲它是一個子元素。 – brouxhaha
謝謝!將位置設置爲「.videoLinks a」的相對位置。 – Liam