ホームページ作成/リンクの表示・装飾 (HTML,CSS,JavaScript)

別ウインドウで開くリンクにアイコンを付加(3ページ目)

リンク先を新規ウインドウで開くよう記述されているリンクに限定して、アイコンが付加されるようスタイルシートを書いてみましょう。target属性に値「_blank」が指定されているリンクに自動的に画像を表示させます。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

新規ウインドウを表すアイコンを用意する

ここでは、以下のようなアイコンを用意しました。何でも好きなようにアイコン画像を作って下さい。

アイコン画像(newwinicon.gif):「 新しいウインドウで開く

必要であれば、上記のアイコン画像をコピーしてお使いいただいても構いません。(横16px×縦14px)

新規ウインドウで開くリンクにアイコンを付加するソース

前ページでご紹介した「属性セレクタ」と「after疑似要素」を使って、実際に「新規ウインドウで開くリンクに限定してアイコンを付加する」ソースを書くと、以下のようになります。
※アイコン画像ファイル名が「newwinicon.gif」の場合

<style type="text/css">
   a[target="_blank"]:after {
      content: url(newwinicon.gif);
      margin: 0px 2px;
   }
</style>

a[target="_blank"]:after
この箇所は前のページで解説した通り、「a要素のうち、target="_blank"が指定されている箇所の直後」に装飾を加えるという指定です。

content: url( newwinicon.gif );
加える内容をcontentプロパティで指定します。ここでは、newwinicon.gifという画像を表示するよう指定しています。

margin: 0px 2px;
そのままではリンク文字とアイコン画像との間隔が詰まりすぎるので、画像の左右に2ピクセルの余白を設けています。
※marginプロパティに値を2つ指定すると、「上下の余白」→「左右の余白」を指定したことになります。

上記のスタイルシートを使って作ったサンプルページはこちら

対象ブラウザ

このように便利な「属性セレクタ」と「after疑似要素」ですが、残念ながら古いブラウザでは解釈されない場合があります。 Internet Explorerの場合は、以下のような対応になっています。
※Firefox、Opera、Safari、Google Chromeではどちらも使えます。

Internet Explorer 8 :「属性セレクタ」と「after疑似要素」共に利用可能
Internet Explorer 7 :「属性セレクタ」のみ利用可能
Internet Explorer 6 :どちらにも非対応

したがって、今回ご紹介した方法は、Internet Explorerの場合は最新のVer.8でないと表示されません。
IE7でも表示できるようにしたい場合は、after疑似要素の代わりにbackground-imageプロパティを使って「背景画像」としてアイコンを表示させるような方法があります。 その方法は、記事「リンク文字の直後にアイコンを加える」でご紹介していますのでご参照下さい。
IE6でも表示できるようにしたい場合は、(属性セレクタが使えないので)対象とするリンクすべてにclass属性を付加するなどの方法を使うしかないでしょう。

おわりに

今回は、「属性セレクタ」と「after疑似要素」を使って、「新規ウインドウで開くリンク」に限定してアイコンを付加する方法をご紹介いたしました。 属性セレクタや疑似要素は、うまく活用するとずいぶん楽に装飾が施せるようになります。 ぜひ、いろいろ試してみて下さい。

【編集部おすすめの購入サイト】
Amazonでホームページ作成の参考書をチェック!楽天市場でホームページ作成関連の書籍をチェック!
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます