2016-03-11 135 views
4

我遇到的情況,我想與邊框底部的文本鏈接,並建立這樣CSS鏈接懸停不是圖像

a:hover { 
color: #492512; 
border-bottom: 2px dashed #94705A; 
} 

的CSS問題是圖像被包裹在鏈接也有這個邊界底部,例如。

<a href="home"> 
    <img src="logo.jpg" alt="Logo" class="logo-img"> 
</a> 

我該如何定位a:懸停,它只用於文本鏈接?純CSS將是可取的。

+5

你需要來標記''用類名標記純CSS:''然後做':懸停:沒有(圖像配鏈接){下邊框:2px的破滅;' –

+0

您能改變html標記? – NiZa

+0

@MarcosPérezGude我試過了,它不適合我..我錯過了什麼? – LGSon

回答

1

沒問題。

爲您的文字鏈接添加一個類。然後針對這些鏈接。

a.testing:hover { 
 
    color: #492512; 
 
    border-bottom: 2px dashed #94705A; 
 
}
<a href="home"> 
 
    <img src="http://cdn.sstatic.net/stackoverflow/img/sprites.svg?v=bc7c2f3904bf" alt="Logo" class="logo-img"> 
 
</a> 
 

 
<a class="testing" href="home"> 
 
    TESTING 
 
</a>

希望這有助於。


添加編輯

這裏是另一種選擇

a:hover { 
 
color: #492512; 
 
border-bottom: 2px dashed #94705A; 
 
} 
 

 
a[href*='ignorethis'] { 
 
\t text-decoration: none !important; 
 
\t border-bottom: 0 none !important; 
 
}
<a href="http://www.milk.com?ignorethis"> 
 
    <img src="http://s.w.org/style/images/wp-header-logo.png" alt="Logo" class="logo-img"> 
 
</a> 
 

 

 
<a href="http://www.milk.com"> 
 
    TESTED 
 
</a>

這通過靶向目標的所有錨,其href屬性包含給定值達到同樣的事情(」忽略這個')。其他方式可以使用。

屬性* =包含值

屬性^ =開始值

屬性$與價值=結束

要使用這只是「#特殊的測試值」追加到年底鏈接或在有針對性的鏈接的情況下附加'?special-test-value = 0'或在查詢字符串已存在的情況下使用'& special-test-value = 0'

我以爲這是一個有趣的方式來定位鏈接這對很多人來說可能是新的。


另一種使用情況

如果情況是單個URL或一組特定的網址,你可以用它們來結束他們的目標和排除錨定圖像的方式。

a[href$='somedomain.com/url1/'], a[href$='somedomain.com/url2/'], a[href$='somedomain.com/url.../'], a[href$='somedomain.com/urlN/'] { 
    text-decoration: none !important; 
    border-bottom: 0 none !important; 
} 

好的,這是一個美好的夜晚。

+0

謝謝。它也可能是一個解決方案,但我最好添加一個類的圖像,我認爲這是更清晰的在我的情況下(網站上的圖像鏈接較少) – Gas

+0

我可以建議你回滾你的2編輯,他們是非常混亂的解決方案,甚至如果他們確實解決了一些難得的要求,並且只保留第一個,那麼順便說一下,這可能是所有人的最佳答案,從我+1。 – LGSon

-3

那麼你可以做一個單獨的類圖像鏈接:

a:hover { 
 
    color: #492512; 
 
    border-bottom: 2px dashed #94705A; 
 
} 
 
a.image-anchor:hover { 
 
    border-bottom: 0 none; 
 
}
<p><a href="stackoverflow.com">Text link</a></p> 
 
<p><a class="image_anchor" href="stackoverflow.com"><img src="https://blog.stackoverflow.com/images/wordpress/stackoverflow-logo-300.png"></a></p>

+0

是的,這可能是一個解決方案,但對於CMS生成的網站來說有點笨拙。我還想過一個jQuery解決方案,它只是向所有具有圖像的添加一個類,然後將其作爲目標,如果沒有純CSS解決方案。 – Gas

+1

這仍然會在圖像鏈接上生成邊框底部,它不應該 – LGSon

1

有兩種方法,將文本包裝在span(下面的示例中)或將唯一類設置爲僅包含文本的鏈接。

a { 
 
    text-decoration: none; 
 
} 
 
a:hover { 
 
    color: #492512; 
 
} 
 
a:hover :not(img) { 
 
    border-bottom: 2px dashed #94705A; 
 
}
<a href="home"> 
 
    <img src="http://placehold.it/50/100/" alt="Logo" class="logo-img" /> 
 
</a> 
 

 
<br> 
 
<br> 
 

 
<a href="home"> 
 
    <span>Text</span> 
 
</a>

0

看來,純粹的CSS樣式全球不工作,所以我使出jQuery來添加一個類具有圖像,像這樣的錨:

jQuery("a").each(function(){ 
if (jQuery(this).children('img').length > 0) { 
jQuery(this).addClass("noborder"); 
} 
}); 

和CSS是:

a:hover { 
    border-bottom: 2px dashed #94705A; 
} 

a.noborder:hover { 
    border-bottom: none; 
} 

感謝所有的紀念nts和建議。

乾杯!