10

11月2008年

[使えるCSSテクニックVol.2] CSS を使った見栄えの良いページャー

sakai 22:55 PM

  • はてなブックマークに登録
  • livedoorクリップに登録
  • Yahoo!ブックマークに登録
  • deliciousに追加

第 3 回目は「見栄えの良いページャー」です。

シンプルなコーディングで見栄えの良いページャーを実現します。

XHTML のサンプルは以下です。とてもシンプルです。

<ul class="pager">
<li class="prev"><a href="hoge">&laquo; PREV</a></li>
<li><a href="hoge">1</a></li>
<li><em>2</em></li>
<li><a href="hoge">3</a></li>
<li><a href="hoge">4</a></li>
<li><a href="hoge">5</a></li>
<li class="next"><a href="hoge">NEXT &raquo;</a></li>
</ul>

サンプル1: とてもシンプルなページャー

とてもシンプルなページャーのサンプルです。



CSS はこちら

* {
      margin: 0;
      padding: 0;
      font-style: normal;
      list-style: none;
}
body {
      font: 70% Arial, Helvetica, sans-serif;
}
ul.pager {
      margin: 10px;
}
ul.pager li {
      float: left;
      margin-right: 10px;
      padding-right: 10px;
      border-right: 1px #999999 solid;
}
ul.pager li.next {
      border-right: none;
}
ul.pager li a:link,
ul.pager li a:visited {
      color: #3366FF;
      text-decoration: none;
}
ul.pager li a:hover,
ul.pager li a:active {
      color: #FF6633;
      text-decoration: none;
}
ul.pager li em {
      font-weight: bold;
}

サンプル2: 枠付きのページャー

枠をつけて少し目立たせたページャーです。



CSS はこちら

* {
      margin: 0;
      padding: 0;
      font-style: normal;
      list-style: none;
}
body {
      font: 70% Arial, Helvetica, sans-serif;
}
ul.pager {
      margin: 10px;
}
ul.pager li {
      float: left;
      margin-right: 5px;
      border: 1px #3366FF solid;
      font-weight: bold;
}
ul.pager li.prev,
ul.pager li.next {
      border: none;
}
ul.pager li a {
      position: relative;
      display: block;
      padding: 3px 8px;
      color: #3366FF;
}
ul.pager li a:link,
ul.pager li a:visited {
      text-decoration: none;
}
ul.pager li a:hover,
ul.pager li a:active {
      background-color: #AADDFF;
      text-decoration: none;
}
ul.pager li em {
      display: block;
      padding: 3px 8px;
      background: #3366FF;
      color: #FFFFFF;
}

サンプル3: 背景画像を使ったちょっとリッチなページャー

↑こんな感じの画像を背景画像として使用します。



CSS はこちら

* {
      margin: 0;
      padding: 0;
      font-style: normal;
      list-style: none;
}
body {
      font: 70% Arial, Helvetica, sans-serif;
}
ul.pager {
      margin: 10px;
}
ul.pager li {
      float: left;
      margin-right: 5px;
      font-weight: bold;
}
ul.pager li a {
      position: relative;
      display: block;
      padding: 3px 8px;
      background-image: url(hoge.gif);
}
ul.pager li a:link,
ul.pager li a:visited {
      border: 1px #3366FF solid;
      background-position: 0 0;
      color: #0033FF;
      text-decoration: none;
}
ul.pager li a:hover,
ul.pager li a:active {
      border: 1px #FF6633 solid;
      background-position: 100% 0;
      color: #FF3300;
      text-decoration: none;
}
ul.pager li em {
      display: block;
      padding: 3px 8px;
      border: 1px #666666 solid;
      background: #666666;
      color: #FFFFFF;
}

とりあえず簡単に組めるパターンをご紹介しました。上記を応用すれば、もっと凝ったデザインにすることもできます。

次回は「CSS を使った見栄えの良いテーブル パート2」です。

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1705
###はmt-tb.cgiに変更してください。

WEBマーケティング ブログ - 11月11日 今日のWEB担当者向けニュース拾い読み

WEBマーケティング ブログ

11月11日 今日のWEB担当者向けニュース拾い読み
今日は西池袋Tさんからの投稿。 タイトルは「人を並ばせない心理テクニック」 ↑...
トラックバック時刻
2008年11月11日 20:23

日刊ジーク - SMAP中居正広主演「私は貝になりたい」 坊主頭の人は1000円で鑑賞できる

日刊ジーク

SMAP中居正広主演「私は貝になりたい」 坊主頭の人は1000円で鑑賞できる"BOUZ割引"を発表 11月12日(水)ヘッドラインニュース
SMAP中居正広主演「私は貝になりたい」 坊主頭の人は1000円で鑑賞できる"...
トラックバック時刻
2008年11月12日 14:40

コメント

参考になるソース有難うございます。
私は選択範囲の広いblock要素を用いた2,3番の方が好きです。

少し気になることなのですが、ページャーにulタグを使うのって構造的にいかがなものなのでしょうか?

CSSをオフにした際、このULタグをページャーと認識するのは難があるように思えるのですが・・・。
気になったのでコメントさせていただきました。

どうもです | 2008年11月11日 12:49

コメントありがとうございます。

今回は比較的広く使われている ul でマークアップしたサンプルとなっていますが、ご指摘のとおり構造として他に妥当なマークアップ方法がないかを検討する必要はありそうですね。

>CSSをオフにした際、このULタグをページャーと認識...
アンカーの内容が「1」とか「2」とか数字だけなのがそもそもアクセシブルではないのでしょうね。
ページャーのアクセシビリティについての意見等はあまり見たことがないので、またじっくり考えてみたいと思います。

2・3のリンクのヒットエリアが文字のみになってますが、
四角の枠内全体がヒットエリアになってると、さらに良いと思います。

通りすがり | 2008年11月12日 12:35

>通りすがりさん
コメントありがとうございます。
ご指摘の件、IE6 ですよね?
実は、サンプルコード上では対策をしてあります。
「ul.pager li a」 に指定してある「position: relative;」がそれで、サンプルコードをコピペすると IE6(の標準モード)でもヒットエリアが枠内に広がっているはずです。
上記の記事内に貼り付けたパーツで IE6 対策が上手く効いていないのは CSS の継承の問題だとは思うのですが、時間がなくて検証できていません… すみません。

いつも参考にさせていただいております。
質問なんですが、
サンプル2とサンプル3でIE6のみ、
高さが違うのは、Hackするしかないのでしょうか?
正方形に近いページャーにしたい場合に私自信も
悩んでいたので、質問してみました。
お時間のあるときにでも回答いただければうれしいです。
宜しくお願いします。

>SARI さん
コメントありがとうございます。
IE6 のみ高さが違うとのことですが、こちらの環境で見る限りでは正方形に近い形で比較的そろっています。ムムム。環境による違いがあるのかもしれませんね…

数字の部分を完全に正方形にしたい場合は、以下のような記述をすることで実現可能だと思います。

ul.pager li a {
display: block;
width: 2em;
height: 2em;
line-height: 2em;
text-align: center;
}

width と height を明記することで正方形のボックスになり、line-height と text-align で上下左右を中央ぞろえにします。
ただし、数字の桁数が多くなってくると IE 以外のブラウザではボックスから数字がはみ出してしまうという欠点があります。

ご参考ください。

早々にご回答いただき、ありがとうございました。
確かに、環境に左右されているところがあるかもしれませんね。IE6の確認にブラウザを共存させて確認してましたので、
微妙にずれているのかもしれません。

上記ソース参考になりました。
IEのバグ対策でハックをしたりしても、
微妙なズレが出てしまうので、試行錯誤していたのですが、
line-heightにemを利用して
中央寄せする方法は思いつきませんでした。

半年ほど悩んでいた悩みが解決できそうです。
大変参考になりました。
これからもブログチェックしてますので、
是非続けてください。応援しています。

このたびはありがとうございました!

コメントを投稿

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

RECENT COMMENTS

sakai on 2009年振り返り&2010年展望
川本真琴情報局さん、コメントありがとうございます。 NEWア
川本真琴情報局 on 2009年振り返り&2010年展望
こんにちは。 川本真琴さんの新アルバム、発売されますね!超楽
nakamura on タダって最高!フリーのグループウェア色々
>ちゃお。さん コメントありがとうございます。サイボウズにも
ちゃお。 on タダって最高!フリーのグループウェア色々
おろ、サイボウズLiveが入ってないっすね。
ichikawa on [EC-CUBE カスタマイズ日誌] 第 8 回 商品名・検索ワード以外の項目でも検索可能にする
> MJさん コメントありがとうございます。 返信が遅くな