11時46分50秒 [Web関連]
HTMLで表組みを作ったとき、列単位(縦方向単位)でセル内の文字列の表示位置を調整したいことがあります。例えば、名称を書く列をセンタリングしたいとか、面積や料金など数値を書く列を右寄せしたいとか。
文字列の表示位置は、text-alignプロパティで設定できるわけですが、表組みの列(縦方向)のすべてのセルに対して一括してセンタリングしたり右寄せしたりするには、ちょっと工夫が必要ですよね。colgroup要素やcol要素を使えば良いような気もしますが、どうもそれらの要素にtext-alignプロパティを指定しても無効になる(無視される)ようで、文字位置は調整されません。背景色とかなら、その方法で付加できるんですが。(CSS2 - 17 Tables - 17.3 Columns)
CSSの「隣接セレクタ」を使って以下のような感じで記述すれば、列(縦方向)単位ですべてのセルの装飾を施せます。(横方向のセル数が多い表だと、何が何だか分からなくなりそうですが。^^;)
以下のようなCSS+HTMLソースで、列(縦方向)のすべてのセルに対して、一括してセンタリングや右寄せなどの文字表示位置の調整ができます。
■CSSソース:
■HTMLソース:
上記のソースを表示させると、以下のように見えます。
順位 | 市名 | 人口 | 面積 |
---|---|---|---|
1位 | 神戸市 | 154万人 | 552km² |
2位 | 姫路市 | 54万人 | 534km² |
3位 | 西宮市 | 48万人 | 100km² |
4位 | 尼崎市 | 45万人 | 50km² |
5位 | 明石市 | 29万人 | 49km² |
上記のHTMLソースでは、4列×6行の表を作っています。
CSSソースでは、隣接セレクタを使って「何番目の列なのか」を特定しています。
その結果、各列は、
のように表示されます。(IE6以下は「隣接セレクタ」に対応していないので、上記の指定ようには見えませんが。^^;;;)
※CSSでセレクタに「+」記号を使って「A + B」のように記述すると、「AとBが隣り合っている場合のBに対してのみ適用する」という意味になります。詳しくは、「隣接セレクタ」でリファレンスを調べてみて下さい。(^_^;)
1列目には特に隣接セレクタは使っていませんけども。(^_^;)
この日記へのコメントはお気軽に! コメント数:0件
コメント数: 0件