Webを見ていてリンクをクリックするといきなり立ち上がるAdobe Reader。
「PDFならそう書いとけや!」とほんのり殺意がわく瞬間ですね。
非力なサブマシンならOS毎巻き込んで石地蔵状態になる可能性もあり
なかなかこいつは無視できない事例。
自分が制作する場合にはこういう事はかなり気をつけてますが
昔はそれこそテキストリンクの横にimgタグで
ひとつひとつ画像を貼りつけていたもんです。
しかし、このご時世、もっと簡単な方法ないんかいと世間に問えば
それがあるんですよ奥さんっ!
CSS3なら以下の書き方が可能です。
外部リンクでアイコンを変更する場合
a[href^=”http://”]{
background:transparent url(../images/external.png) center right no-repeat;
display:inline-block;
padding-right:15px;
}判別する箇所のサンプル -mailto
a[href^=”mailto:”]判別する箇所のサンプル -PDF
a[href$=’.pdf’]判別する箇所のサンプル -圧縮ファイル
a[href$=’.zip’], a[href$=’.rar’], a[href$=’.gzip’]判別する箇所のサンプル -画像
a[href$=’.gif’], a[href$=’.jpg’], a[href$=’.jpeg’], a[href$=’.png’]判別する箇所のサンプル -ドキュメント
a[href$=’.xls’], a[href$=’.csv’], a[href$=’.doc’], a[href$=’.txt’]
もちろんこれはIE6では動作しないので、IE6対応の場合
behaviorを使って以下の記述もプラス。
* html a{ behavior: expression( this.className += this.getAttribute("href").match(/^http.*/) && (!this.getAttribute("href").match("自サイトドメイン")) ? " external" : "", this.className += this.getAttribute("href").match(/\.pdf$/) ? " pdf" : "", this.className += this.getAttribute("href").match(/\.doc$/) ? " doc" : "", this.className += this.getAttribute("href").match(/\.xls$/) ? " xls" : "", this.className += this.getAttribute("href").match(/\.zip$/) ? " zip" : "", this.className += this.getAttribute("href").match(/^mailto.*/) ? " mailto" : "", this.style.behavior = "none" ); }
それでも、めんどくせえという人はJQueryを使いましょう。
もちろんJavascriptをオフにされると動作しません。
以下のサイトで紹介されてるやり方が一番簡単です。
Lost Technology様の「リンクしているファイルのアイコンを表示」
http://www.losttechnology.jp/WebDesign/2010/linkicon.html
アイコン画像は・・・・・それぐらい作ろうね、と言いたいけども
ICON WANTEDって便利なサイトもあったり。
http://iconwanted.com/
一度、この設定をしておけば使い回しも利くし
うっかり間違いもなくなるので便利には違いないですね。