2014-02-06 83 views
1

我有這個問題,我認爲是一個簡單的修復,但它不會工作。css在圖像鏈接上顯示背景顏色

在我的內容中,我希望所有鏈接都是紅色文本,並且在懸停時我需要帶白色文本和半徑以及一些填充的紅色背景。我也把過渡到平穩。

我不想在圖像鏈接上這樣做,所以在底部我重置圖像的背景和填充。 但我仍然在圖像底部出現紅色邊框。

有人可以爲我解決這個問題嗎? 謝謝!

#content a:link, #content a:visited, #content a:active{ 
color:#c5252c; 
text-decoration:none; 
padding:0; 
border-radius: 2px; 
-moz-border-radius: 2px; 
-webkit-border-radius: 2px; 

-webkit-transition: all 500ms cubic-bezier(0.445, 0.050, 0.550, 0.950); 
-moz-transition: all 300ms cubic-bezier(0.445, 0.050, 0.550, 0.950); 
-ms-transition: all 300ms cubic-bezier(0.445, 0.050, 0.550, 0.950); 
-o-transition: all 300ms cubic-bezier(0.445, 0.050, 0.550, 0.950); 
transition: all 300ms cubic-bezier(0.445, 0.050, 0.550, 0.950); /* easeInOutSine */ 

-webkit-transition-timing-function: cubic-bezier(0.445, 0.030, 0.550, 0.950); 
-moz-transition-timing-function: cubic-bezier(0.445, 0.030, 0.550, 0.950); 
-ms-transition-timing-function: cubic-bezier(0.445, 0.030, 0.550, 0.950); 
-o-transition-timing-function: cubic-bezier(0.445, 0.030, 0.550, 0.950); 
transition-timing-function: cubic-bezier(0.445, 0.030, 0.550, 0.950); /* easeInOutSine */} 

#content a:hover{ 
background:#c5252c; 
color:#FFF; 
text-decoration:none; 
padding:0 4px 0 4px; 
} 


#content a:link img, #content a:hover img, #content a:active img, #content a:visited img{ 
padding:0px; 
background-color:transparent; 
background:none; 
} 

回答

1

那是因爲你不是不固定鏈接的背景,而是鏈接內部圖像的背景。

解決方案是爲每個包含圖像的鏈接添加一個類,以便您可以通過#content .className直接引用它,並在其中取消設置背景和填充。

不幸的是,你不能搞清楚什麼它包含純CSS選擇a。你可以用javascript做到這一點,但它很可能會是一個矯枉過正的問題。例如,jQuery擁有:has()選擇器,可以完全提供您要搜索的功能。還有seems to be選擇器在草案中向CSS提供此功能。

0

通過選擇#content a:link img要重設圖像本身的背景,但你需要重置爲a

您可以爲包含img元素的a元素設置一個特殊類,並重置此特殊類的背景。

<a class='image-link'> 
    <img src="..." /> 
</a> 

<a>this is a text link</a> 

#content .image-link {background:none;} 
1

謝謝你們夥計們。

解決了這個腳本。

<script> 
$("a").has("img").css("background-color", "transparent"); 
</script>