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

どのリンクが選択中なのかを際立たせる装飾(2ページ目)

リンクの上にマウスを乗せると装飾が変化するデザインはよく使われていますね。では、リンクの上にマウスを乗せたときに、リンクの横や下に矢印を表示させる装飾はいかがでしょうか。選択中の場所が際立つ装飾です。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

リンクを装飾するための構造

リンクの右側に矢印を表示するためには、リンクを次のように作成します。

(リンクの右側に余白を設ける)
▲リンクの右側にあらかじめ余白を設けておく

リンク文字の右側に、矢印を表示できるだけの余白を設定します。 この余白をあらかじめ設けておくことで、後から(マウスポインタが載った際に)矢印をそこに表示できるようになります。

(設けた余白に矢印が表示される)
▲設けた余白部分に矢印画像が表示できる

この余白量を調節することで、リンクと矢印との間隔を調節できます。 矢印の横幅よりも大きな余白を設定すれば、文字と矢印との間隔は開きます。 逆に、矢印の横幅よりも小さな余白を設定すれば、矢印は文字に重なって表示されます。

(余白が多ければ遠くなり、小さければ重なる)
(矢印画像の横幅は18px)

実現に使うスタイルシートの概要

■余白

リンクに設ける余白は、paddingプロパティを使います。 paddingプロパティは、内側の余白量を指定するプロパティです。 同じ余白でも、外側の余白を指定するmarginプロパティは使えません。(理由は後述)

矢印をリンクの右側に表示させたい場合は、右側にのみ余白を設ければ良いので、padding-rightプロパティを使います。 表示させる矢印の横幅が18ピクセルなら、padding-rightプロパティの値に18pxを指定すれば、リンクの右端ぴったりに矢印が表示されます。 21pxを指定すれば、3ピクセルの間隔を開けて表示されることになります。

padding-right: 21px;

■画像

矢印画像の表示には、background-imageプロパティを使います。 background-imageプロパティは背景画像を指定するプロパティです。 前ページでリンクの横や上に画像を表示させたサンプルは、すべて「背景画像」として画像を表示させていました。 背景画像なら、スタイルシートで簡単に加えられるため、スクリプトを使わずに(hover疑似クラスで)表示・非表示を切り替えられます。

background-image: url("red_allow.gif");

paddingプロパティで余白を設ける必要があったのは、背景画像を表示するスペースを確保する必要があったからです。 また、marginプロパティで余白を設けてはいけない理由は、marginで設けた余白部分には背景画像が表示されないためです。

(背景が表示されるのはpaddinまで)
背景画像が表示されるのはpadding(内側の余白)まで

普通に背景画像を表示させるだけでは、下図のように、文字のある部分も含めて全体に矢印が繰り返し表示されてしまいます。

(矢印がたくさん表示されてしまう)

これを防ぎ、右端に1つだけ矢印を表示させるために、 background-repeatプロパティと、background-positionプロパティを活用します。
background-repeatプロパティは背景画像の繰り返し方法を指定するプロパティで、 background-positionプロパティは、背景画像の表示位置を指定するプロパティです。

background-repeat: no-repeat;
background-position: center right;

background-repeatプロパティに「no-repeat」を指定すると、背景画像の繰り返しがなくなります。つまり、画像が1つだけ表示されます。
background-positionプロパティに「center right」を指定すると、背景画像の表示位置が「(上下方向の)中央・(左右方向の)右端」になります。
これらの指定によって、矢印画像が右端に1つだけ表示されるようになります。

それでは、実際に記述するソース全体をご紹介いたしましょう。

HTMLとスタイルシートのソースへ >>>

  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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