2012-04-12 4 views

答えて

4

擬似要素position:absolute;:afterに与え、それにmarginを付けてそれをシフトする必要があります。 :afterのコンテンツが正しく表示されるようにするには、アンカーにdisplay:inline-block;が必要です。

参照:http://jsfiddle.net/ECFBR/

+2

は、これは、例えば、IE9、のいずれかの違いはありません。 – thirtydot

+0

あなたは正しいですが、ChromeとFirefoxでは動作しますがIEでは動作しないようです。おそらく、この問題のCSSベースの完全な解決策はありません。 –

+0

私はそこにいるとは思わない。私はこの以前の質問を思い出す:http://stackoverflow.com/questions/5434819/cannot-undo-to-decoration-for-child-elements – thirtydot

6

これを処理する最も簡単な方法は、各リンクにテキストの周りspanをラップすることです::hover

<a href="#"><span>test</span></a> 

のみspantext-decoration: underlineを与えられます。

a:hover span {text-decoration: underline} 

参照:http://jsfiddle.net/thirtydot/3N9vs/27/

同様の古い質問:Cannot undo text-decoration for child-elements
も関連:CSS text-decoration property cannot be overridden by child element

+1

私の答えに記載されているテキスト装飾の伝播は、疑似要素に適用されます。よく生成するボックスは 'a'要素のボックスの子です。しかし、JoshのソリューションがChromeとFirefoxでうまく動作する理由はあまりわかりません。 – BoltClock