HTML、CSS、JavaScriptなどWebに悩む人のネタ帳です。

これまで、リストを装飾するために「li」タグにクラスを指定していました。
リストのマークを画像にする、下線をつける、一つ置きに背景を変えるなど、リストはデザインバリエーションの高い要素です。
これら細かい要望を実現するために、これまではクラスを指定して実装していました。

しかし、繰り返し要素に条件に応じてクラスを指定するという事は、CMSなど動的に組み込むために一手間必要という点で、めんどくささがありました。
そこで、今回はクラスを指定せずにCSS3のみで実装してみます。
ちなみにIEなどCSS3に対応していないブラウザでは利用できません。

以下はベースとなるサンプルリストのソースです。装飾のために、特別なクラスは指定しません。

<ul>
<li>サンプル1</li>
<li>サンプル2</li>
<li>サンプル3</li>
<li>サンプル4</li>
<li>サンプル5</li>
</ul>
  • サンプル1
  • サンプル2
  • サンプル3
  • サンプル4
  • サンプル5

最初の要素または最後の要素を装飾する

一番上、または、一番下の要素を装飾する場合は「:first-child」と「:last-child」を使用します。
例えば、以下のようにスタイルに記述すると、最初の要素のみフォントを大きくして、最後の要素のみに背景色を指定することができます。

ul li:first-child{
	font-weight: bold;
}
ul li:last-child{
	background-color: #ffaaaa;
}
  • サンプル1
  • サンプル2
  • サンプル3
  • サンプル4
  • サンプル5

liタグを下線処理した時に、最後の要素だけ下線なし、といった場面に多く出会いますが、そのときに重宝しそうですね。

偶数・奇数行目の要素を装飾する

偶数行目、または、奇数行目の背景色を変えてゼブラ調にし、リストを見やすくする手法がよく使われますが、セレクタ「:nth-child」を使うことで簡単に実現できます。
例えば、1番目、3番目、5番目というように奇数行目の背景色のみ変えたい場合には、以下のようにします。

ul li:nth-child(even){
	background-color: #aaaaaa;
}
  • サンプル1
  • サンプル2
  • サンプル3
  • サンプル4
  • サンプル5

CSS3をうまく活用すれば、HTMLタグに無駄にclassを指定する必要がなくなるので、ソースがすっきりします。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search