CSSで外部リンクにだけアイコンを表示する方法
CSSとたった1行のjQueryで自動的に外部リンクを判断してアイコン画像をつけられたら
とても便利だと思いませんか?
今回はその方法をご紹介します!
1、CSSで外部リンクを判断する
1−1、HTMLを記述する
まずはHTMLを記述します。
外部リンクになっている画像にアイコンをつけない設定もしますので、
画像のリンクも表示させます。
【HTML】
1 2 3 4 |
これはサンプルテキストです。CHANGEUP!の運営会社は株式会社ユナイテッドウィルです |
外部リンク表示したいリンクのaタグにtarget=”_blank”をつけて記述します。
1-2、アイコン画像を選定する
外部リンクを示すアイコン画像を用意します。
Photoshopなどで自作しても良いですが、
商用フリーで配布されている素材もたくさんありますので、そちらを使用しても良いでしょう。
CHANGEUP!では以下のサイトからアイコンを使用させていただきました。
デザインもカラーも豊富なので、サイトに合ったものが見つけやすいです。
100 External Link Icons (PNG, PSD)
CSSを記述する
次にCSSを記述します。
【CSS】
1 2 3 4 5 |
.sample a[target="_blank"] { display: inline-block; padding-right: 16px; background: url(./img/link_icon.png) no-repeat right center; } |
セレクタに属性と値を指定することで、
“sampleというクラスの中にあるaタグの、taeget=”_blank”がついているセレクタ”を指定することができます。
paddingはリンクの文字からアイコンをどのくらい離して表示するかなので、
数値はご自由に設定していただいて大丈夫です。
1-4、画像の外部リンクにアイコンを表示させないようにする
テキストの外部リンクとは別に、
サイトのサムネ画像に外部リンクをつけたりする場合もありますよね。
この場合、画像の横に外部リンクのアイコンがついてしまいます。
これを解決するには、jQueryでimgタグのついたセレクタに新しくCSSを付与して、
付与したCSSにアイコンをつけない設定をすれば解決します。
【jQuery】
1 2 3 |
$(function() { $('.sample').find('img').parent('a').addClass('no_icon'); }) |
一つずつ説明すると…
【 $(‘.sample’) 】sampleというクラスの中の
【 find(‘img’) 】imgタグを探してください。
【 parent(‘a’) 】親要素はaです。
【 addClass(‘no_icon’) 】対象のセレクタが見つかったら、aタグにno_iconというcssを付与してください。
ということになります。
あとは”no_icon”にアイコンを表示しないスタイルを記述すれば完了です。
【CSS】
1 2 3 |
.no_icon{ background-image: none!important; } |
【結果】
これはサンプルテキストです。CHANGEUP!の運営会社は株式会社ユナイテッドウィルです
簡単なCSSとjQueryで、リンクが外部リンクか内部リンクかを判断して
アイコンをつけられるようになりました。
もしこの方法で記事以外のメニュー部分などにアイコンがついてしまった場合は、
記事部分のセレクタを詳細に指定してあげたりして、対処してください。
執筆者
DTPデザイナー、雑貨屋さんのスタッフ、一般事務… 散々やりたいことをやり散らかして、WEBデザイナーに落ち着きました。ものを作っている時間が好き。
うさぎと音楽が好きすぎて、うさぎと音楽を無理やりこじつけたお洋服を作ったり、イベント企画をしたりもしています。
この記事を読んだ人はこんな記事も読んでいます
CHANGEUP!では、エンジニアの転職、
フリーランスの案件紹介を行なっています。
将来の働き方で迷っている方、転職をお考えの方、あなたのエンジニアとしての力を最大限発揮できる場所を提案させていただきます。