蝸牛の歩み

蝸牛の如く,ゆっくりでも着実に前へ・・・

スタイルシートとhtmlタグ

館のウェブサイトをリニューアルしようとしていて、新しいバージョンではスタイルシートCSS)を使っている。今までテーブルレイアウトを使っていたところを、divを使ってスタイルシートでレイアウトするようにした。

ひとつ困ったのが、CSSの特徴である「継承」というやつ。親要素でセンタリング(text-align: center;)を指定したら、子要素である表のtdまでセンタリングされてしまった(今までは左寄せだった)。そこで、tdタグに対して左寄せ(td {text-align: left;})を指定したところ、今度はhtmlタグのalign属性でセンタリング指定(<td align="center">)しているセルまで左寄せになってしまった。

どうやら、スタイルの優先順位というのがあり、htmlタグでの指定は順位が低いらしい(wikipedia:Cascading_Style_Sheetsの「優先順位」)。

tdタグに対してスタイルシートで位置を指定しなければ、tdタグのalign属性が有効になるようなので、「<td align="left">」と明示的に左寄せを指定した。本来はスタイルシートで解決したいところであるが……。ひょっとしてスタイルシートに「td {text-align:auto;}」と指定すれば、親要素を継承せず、ブラウザ標準の位置(デフォルト左寄せ、align属性があればその値)になる?