2013-11-27 86 views
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; 
    } 

在此先感謝

回答

0

:元素默認顯示內嵌之前。因爲您無法設置內聯元素的寬度和高度,所以您需要顯示:內聯塊或塊上這些元素。只是爲了解釋爲什麼這個工作...

但我可以問爲什麼你不使用位置:絕對的:before-element?所以它不會對圖像產生任何影響,並且可以將它集中在鏈接上。顯示:內聯塊包含播放按鈕和圖像之間的虛擬空間,這是移動圖像的原因。

+0

實際上,':before'把它包含的任何內容相對於實際元素(不一定是「之前」)。因此,如果您在元素上設置了「position:relative」,並在':before'上設置了「position:absolute」,則可以將僞元素與實際元素相關聯。你可以認爲它是一個子元素。 – brouxhaha

+0

謝謝!將位置設置爲「.videoLinks a」的相對位置。 – Liam

相關問題