sakai 22:55 PM
第 3 回目は「見栄えの良いページャー」です。
シンプルなコーディングで見栄えの良いページャーを実現します。
XHTML のサンプルは以下です。とてもシンプルです。
<ul class="pager">
<li class="prev"><a href="hoge">« 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 »</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」です。










コメント
参考になるソース有難うございます。
私は選択範囲の広いblock要素を用いた2,3番の方が好きです。
少し気になることなのですが、ページャーにulタグを使うのって構造的にいかがなものなのでしょうか?
CSSをオフにした際、このULタグをページャーと認識するのは難があるように思えるのですが・・・。
気になったのでコメントさせていただきました。
どうもです | 2008年11月11日 12:49
コメントありがとうございます。
今回は比較的広く使われている ul でマークアップしたサンプルとなっていますが、ご指摘のとおり構造として他に妥当なマークアップ方法がないかを検討する必要はありそうですね。
>CSSをオフにした際、このULタグをページャーと認識...
アンカーの内容が「1」とか「2」とか数字だけなのがそもそもアクセシブルではないのでしょうね。
ページャーのアクセシビリティについての意見等はあまり見たことがないので、またじっくり考えてみたいと思います。
sakai | 2008年11月11日 21:31
2・3のリンクのヒットエリアが文字のみになってますが、
四角の枠内全体がヒットエリアになってると、さらに良いと思います。
通りすがり | 2008年11月12日 12:35
>通りすがりさん
コメントありがとうございます。
ご指摘の件、IE6 ですよね?
実は、サンプルコード上では対策をしてあります。
「ul.pager li a」 に指定してある「position: relative;」がそれで、サンプルコードをコピペすると IE6(の標準モード)でもヒットエリアが枠内に広がっているはずです。
上記の記事内に貼り付けたパーツで IE6 対策が上手く効いていないのは CSS の継承の問題だとは思うのですが、時間がなくて検証できていません… すみません。
sakai | 2008年11月12日 12:48
いつも参考にさせていただいております。
質問なんですが、
サンプル2とサンプル3でIE6のみ、
高さが違うのは、Hackするしかないのでしょうか?
正方形に近いページャーにしたい場合に私自信も
悩んでいたので、質問してみました。
お時間のあるときにでも回答いただければうれしいです。
宜しくお願いします。
SARI | 2008年11月13日 09:45
>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 以外のブラウザではボックスから数字がはみ出してしまうという欠点があります。
ご参考ください。
sakai | 2008年11月13日 22:25
早々にご回答いただき、ありがとうございました。
確かに、環境に左右されているところがあるかもしれませんね。IE6の確認にブラウザを共存させて確認してましたので、
微妙にずれているのかもしれません。
上記ソース参考になりました。
IEのバグ対策でハックをしたりしても、
微妙なズレが出てしまうので、試行錯誤していたのですが、
line-heightにemを利用して
中央寄せする方法は思いつきませんでした。
半年ほど悩んでいた悩みが解決できそうです。
大変参考になりました。
これからもブログチェックしてますので、
是非続けてください。応援しています。
このたびはありがとうございました!
SARI | 2008年11月17日 10:48