本文内の外部リンクに対して、それを示すアイコンを表示する方法として、Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイトに、a要素に「.external」といった class を付け、
- アイコン画像を a要素の背景として右端にひとつ表示する方法
- :after擬似要素と contentプロパティを使ってアイコン画像を追加する方法
と、2種類の方法が載っています。
ただし、Win IE と Mac IE はいずれのバージョンも :after擬似要素と contentプロパティをサポートしていないため、背景関連プロパティを利用して実現したほうがよいだろう。
このように書かれているのですが、IE ではリンクテキストが折り返している場合、リンクテキストが含まれる行の右端に表示されてしまい、返ってみにくい状態となってしまいます。
また、いちいち外部リンクの a要素に対して class 指定するのも面倒ですし、漏れがあるかもしれません。
で、このサイトに採用した方法は、属性セレクタを使ってリンク先を判別し、:after擬似要素と contentプロパティを使ってアイコン画像を追加する方法です。したがって、IE では表示できません。
#みなさん、poor な IE より、Firefox を使いましょう。
因みに、IE7 では属性セレクタには対応するようになりましたが、相変わらず :after擬似要素あるいは :before擬似要素には未対応です。
具体的には、
div#main a[href^="http:"]:after,
div#main a[href^="https:"]:after {
content: url(css_img/external.gif);
vertical-align: middle;
}
div#main a[href^="<$MTBlogUrl$>"]:after {
content: "";
vertical-align: baseline;
}
href属性が”http:”か”https:”で始まる a要素に対して、リンクテキストの後にアイコン画像を追加し、その上で href属性が自サイトの URL である場合は追加したアイコン画像を消します。
なお、div#main を指定してコンテンツ領域のみに限定しています。
参考にしたサイト: CFDN | 外部リンクにアイコンを付ける






Recent Comments