★内容挿入によるアイコン表示

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

内容挿入によるアイコン表示

広告



CSSのcontentプロパティを使って、サブメニュー項目の先頭にアイコン画像を挿入しましょう。
各項目の先頭にアイコン画像を挿入することで、それがメニュー項目であることを視覚的に目立たせます。

アイコンには画像ファイルを使用します。
ダウンロードしたサンプルファイルからicon_submenu.pngをコピーしてimagesフォルダの中へあらかじめ入れておきます。

画像ファイル:icon_submenu.png

base.cssに以下の記述を追加してください。

CSSソース(base.css)

@charset "utf-8";

/*============================================
全般的なスタイル
============================================*/
* {
	margin:0; padding:0; 		/*全要素のマージン・パディングをリセット*/
}
body {
	background-color:#cccccc;	/*ページ全体の背景色*/
	background-image:url("images/bg_body.png");	/*ウェブページ全体の背景画像*/
	font-size:95%;			/* フォントサイズを95%にする */
	font-family: "MS ゴシック",sans-serif;	/* フォントの種類をゴシック系にする */
	line-height:1.5;		/* 行の高さを1.5倍にする */
	color:#333333;			/* 文字色を濃い目のグレーにする */
}
div#pagebody {
	width:1000px; margin:0 auto;			/*内容全体をセンタリング*/
	background-color:#ffffff;			/*内容全体の背景色*/
	background-image:url("images/bg_pagebody.png");	/*コンテンツ全体の背景画像*/
	background-repeat:repeat-y;			/*背景画像を縦方向に繰り返す*/
}
img {border:0;} 				/*画像のボーダーを0にする*/

/*============================================
ヘッダ
============================================*/
div#header {
	height:80px;				/*ヘッダ部分の高さ*/
}
div#header h1 {
	padding:10px 0px 5px 20px;		/*見出しの位置調整*/
	font-size:18px;				/*フォントのサイズ*/
	font-family:Arial, Helvetica, sans-serif;	/*フォントの種類*/
}
div#header h1 a {text-decoration:none;} 	/*リンクの下線を無くす*/

/*============================================
メインメニュー
============================================*/
ul#menu {
	width:960px; height:50px; 	/*メインメニュー部分の幅と高さ*/
	margin:0px 20px; 		/*上下マージン0px、左右マージン20px*/
}
#menu li {
	list-style-type:none;		/*リストマーカー無しにする*/
	display:inline;			/*リスト項目をインライン表示にする*/
	float:left;			/*リスト項目を横に並べる*/
}
#menu li a {
	background-color:navy;		/*背景色*/
	color:#ffffff;			/*文字色*/
	display:block;			/*リンク部分をブロック表示にする*/
	width:240px; height:35px;	/*幅と高さ*/
	padding:15px 0px 0px 0px;	/*上パディング*/
	text-align:center;		/*テキストをセンター揃えにする*/
	text-decoration:none;		/*リンク部分を下線無しにする*/
	background-image:url(images/bg_menu1.png);	/*背景画像を指定*/
	background-repeat:no-repeat; 			/*背景画像を繰り返さない*/
}
#menu li a:hover {
	background-color:#000066; 	/*リンクにマウスが乗ったら背景色を変更する*/
	background-image:url(images/bg_menu2.png); 	/*リンクにマウスが乗ったら背景画像を変更する*/
}

/*============================================
ヘッダ画像
============================================*/
#img_index {
	width:960px; height:360px;	/*トップページのヘッダ画像の表示サイズを指定*/
	margin:5px 20px;		/*マージン*/
}

/*============================================
サブメニュー(左カラム)
============================================*/
h2 {
	width:160px; height:43px;		/*幅と高さ*/
	padding:17px 0px 0px 100px;		/*パディング*/
	font-size:16px;			/*フォントサイズ*/
	background-image:url(images/bg_h2.png);	/*背景画像*/
	background-repeat:no-repeat;		/*背景画像を繰り返さない*/
	background-color:#000033;		/*背景色*/
	color:#ffffff;			/*文字色*/
}
div#submenu {
	width:260px;			/*幅の指定*/
	margin:10px 10px 10px 25px;	/*位置調整*/
	float:left;			/*カラムを左寄せにする*/
}
div#submenu ul li {
	list-style-type:none;			/*リストマーカー無しにする*/
}
div#submenu ul li a {
	display:block;			/*リンク部分をブロック表示にする*/
	height:45px;			/*高さを45pxにする*/
	padding:15px 0px 0px 30px;	/*パディング*/
	text-decoration:none;		/*リンクの下線を無くす*/
	border-bottom:1px dotted gray;	/*リンク領域の下部にボーダーを付ける*/
	background-image:url(images/bg_submenu.png);	/*リンク領域に背景画像を付ける*/
	background-repeat:no-repeat;	/*背景画像を繰り返さない*/
	color:#333333;			/*文字色*/
}
div#submenu ul li:first-child a {
	border-top:1px dotted gray;		/*一番上のリンクに上線を表示*/
}
div#submenu ul li a:hover	{
	text-decoration:underline;	/*リンクにマウスが乗ったら下線を表示*/
}
div#submenu ul li a:before {
	content: url("images/icon_submenu.png");	/*アイコン画像を挿入*/
	margin:0px 10px 0px 0px;		/*マージン*/
	vertical-align:text-top;			/*縦方向の表示位置*/
}

/*============================================
インフォメーション(右カラム)
============================================*/
div#info {
	width:660px;			/*幅の指定*/
	float:left;			/*カラムを左寄せにする*/
}
h3 {
	font-size:14px;			/*文字サイズ*/
	width:660px;			/*横幅*/
	padding:10px 0px 10px 20px;		/*パディング*/
	background-color:#003399;		/*背景色*/
	color:#ffffff;			/*文字色*/
	border-radius:3px;			/*角丸にする*/
}
.infoimg_index {
	width:200px; height:150px;	/*画像の表示サイズを指定*/
	margin:0px 0px 20px 20px;	/*マージン*/
	float:right;			/*画像を右寄せにする*/
}
hr {
	clear:both;			/*フロート配置をクリアする*/
}

/*============================================
フッタ
============================================*/
div#footer {
	clear:both;			/*回り込みを解除する*/
}

保存をしたらブラウザで表示してみましょう。
サブメニュー部分のリンクテキストの前にアイコン画像が表示されれば成功です。

今回追加したCSSソースを確認

contentプロパティで内容挿入を指定

内容挿入にはcontentプロパティを使用します。
上記のCSSソース中の content: url(“images/icon_submenu.png”); の部分が、アイコン画像の挿入を指定しているCSSソースです。
挿入しているのは、アイコン風に作成した画像ファイルです。

:before疑似要素

:before疑似要素は、「要素の直前」を表します。
疑似要素をセレクタに使うと、要素や属性などの文書構造だけでは特定できない箇所に対して、スタイルを適用することができます。
例えば、a:beforeは「a要素の直前」という意味です。

挿入位置はセレクタで指定

アイコン画像の挿入位置は、div#submenu ul li a:before { ~ } というセレクタで特定しています。

div#submenuとulとliとa:before を半角スペース区切りで順番に並べていますが、
これは、「div#submenuの下にある、ul要素の下にある、li要素の下にある、a要素の直前の部分」を指定していることになります。
要素名を半角スペースで区切ると、「~の子要素」という意味になります。

アイコン画像の表示位置を調整

margin:0px 10px 0px 0px; と vertical-align:text-top; は、アイコン画像の表示位置を調整しています。

vertical-alignプロパティは縦方向の表示位置を指定する際に使用します。
値には、テキストの上端に表示位置を揃えるtext-topというキーワードを指定しています。

まとめ
  1. 内容を自動挿入するには、contentプロパティを使用する
  2. :before疑似要素は、「要素の直前」を表す。
  3. 擬似要素とは、文書構造だけでは特定できない「要素の一部」を対象にするセレクタ
<前へ 目次へ 次へ>

広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
65 users signed up
もっと表示する