5
我是一個CSS初學者。基本上,我有以下的html:CSS:正確的方法使厚<a:hover>下劃線字體下劃線
<ul>
<li><a href="news.html">О нас</a></li>
<li><a href="#">Галерея</a></li>
</ul>
我想盤旋我a
標籤時,有一個厚厚的下劃線,但我用大伸自定義字體,所以如果我用這個常用的伎倆:
a:hover {
text-decoration: none;
border-bottom: 2px solid;
padding: 0;
margin: 0;
}
下劃線遠遠低於基準線:但我希望它看起來像這樣:
我試圖做這樣的:
<ul>
<li class="over"><a href="news.html">О нас</a></li>
<li class="over"><a href="#">Галерея</a></li>
</ul>
.over{
font-size: 30px;
height:30px; // makes the text overlap this element
overflow:visible;
}
.over:hover {
border-bottom: 2px solid #ec6713;
}
但下劃線的寬度是現在所有的字符串是相同的:
然後我說display: inline-block;
爲.over
。不過,我得到這個:
然後,我改變inline-block
到table
,但底線是再遠低於:
我結束了增加額外的span
,所以現在我有:
<ul>
<li><span class="over"><a href="news.html">О нас</a></span></li>
<li><span class="over"><a href="#">Галерея</a></span></li>
</ul>
.over{
font-size: 30px;
height:30px; // makes the text overlap this element
overflow:visible;
display:inline-block;
}
.over:hover {
border-bottom: 2px solid #ec6713;
}
這最終給了我期望的行爲(下劃線的寬度調整爲字符串寬度,並且位置接近基線)。但是爲此增加一個額外的span
是一個好習慣嗎?這看起來不好嗎?
那麼這三種方式同樣適用,還是CSS專家出於某種原因更喜歡其中之一? – netimen
那麼,一個更喜歡選項1,另一個更喜歡選項2.因此需要說我的選項1不是[在所有瀏覽器中都支持](http://css-tricks.com/browser-support-pseudo-elements /)。那麼你自己的選擇,我的選擇2是一個更好的解決方案。 – LinkinTED