リンクをクリックしたときに横に伸びる点線を消す方法2

えー、ずいぶん長いこと放置です。

IDEA*IDEAさんで紹介されている、「リンクをクリックしたときに横に伸びる点線を消す方法(Firefox)」に対するフォローです。

リンクが張ってあるテキストのtext-indentを-9999pxにするという方法をとるとFirefox等で点線がでます。
それを消すために
overflow:hidden;
outline:none;
を設定しますが、例えば liタグの中のテキストにリンクを張る場合などは下記のようにHTMLをコーディングする必要があります。

===HTML===
<ul id="sample">
	<li><a href="#"><span>あいうえお</span></li>
	<li><a href="#"><span>かきくけこ</span></li>
</ul>
===CSS===
#sample li {
	background: url(sample.jpg);
	height:20px;
}
#sample li span{
	text-indent:-9999px;
	overflow:hidden;
	outline:none;
}

や、まあ良いんですけど、

<span>

がキモチワルイ!

で、どうしたらこの気持ち悪さをなくせるかというと、下記で実現できます。

===HTML===
<ul id="sample">
	<li><a href="#">あいうえお</li>
	<li><a href="#">かきくけこ</li>
</ul>
===CSS===
#sample li {
	background: url(sample.jpg);
	height:20px;
}
#sample li a{
	display: block;
	height:0pt;
	overflow:hidden;
	padding-top:20px;
}

ね?すっきりです。Appleのメニューバーでも使われていた方法です。
若干CSSが面倒なので、リンク無しのテキスト飛ばしは、私もtext-indent:-9999pxを使います。

いかがでしょうか?