疑似要素a:after a:beforeを使用すると、リンクの一部と思われるテキストを追加できます。ただし、その部分をリンクの一部としてクリック可能にする方法がわかりません。
たとえば、次のcssは後でURLを示しています。
a:after {
content: " (" attr(href) ")";
}
...しかし、クリックはできません。
基礎となるHTMLを変更せずにこれを回避する人はいますか?
編集:chrome 13.0.782.107を使用しています。これは bug です。(Seanに感謝)
私は同じ問題を抱えていて、明らかに設定すると
a { vertical-align: middle; }
(したがって、リンク自体にnot擬似要素)、動作します。
これをcssに追加するだけです:
a {padding-right:Ypx} /* Y = size of your url in pixels */
URLのサイズが異なる場合は、JavaScriptを使用して取得する必要があります。
私は誰かがこれよりも良い解決策を持っていることを望んでいますが、念のために、私はこの恐ろしい/くだらない/ハッキングな解決策を思いつきました:
a {
margin-right: 40px;
}
a:after {
content: " (" attr(href) ")";
margin-left: -40px;
}
:beforeおよび:afterコンテンツを追加beforeおよびafterセレクター。 CSSには、タグ内のコンテンツを取得および編集できるセレクタはありません。それを実現する唯一の方法は、jQueryまたはjavascriptを使用して実際にHTMLを編集することです。
リンクとテキストを別々にラップしました。:beforeはコンテナに移動し、リンクは内部に移動します。このように、jQueryティガーとして:beforeを使用し、リンクとしてテキストを使用できます。 HTML:
<li class="before-here"><a href="#">My Link Text</a></li>
CSS:
li.before-here:before{ //some css like an image }
Jquery:
$("li.before-here").click(function(){ //do something});
これを使用して、ツリーに非表示/表示切り替えを作成します。これにより、左側に必要なボタンが表示され、親にリンクできます。
ドキュメントツリーの変更を回避するには、a:after
のJavaScriptクリックハンドラーを使用できます。
編集:擬似要素はDOMに追加されないため、これは機能しません。