WebEtc > HtmlAndCss

HTML / CSS

テーブルやdiv要素などにCSSのtext-alignは使用できない。

  • テーブルやdiv要素などはブロックレベル要素といわれるが、text-alignプロパティはインライン要素の位置揃えを指定するためのもの。
  • CSSのtext-alignでセンタリングなどの位置揃えはできないのだが、Windows版IEではバグで位置揃えができてしまう。
    • ただし、IE6の標準準拠モードではこのバグは修正されている

ブロックレベル要素に対するCSSによる正しいセンタリング方法

  • センタリングしたい要素の左右のマージンをautoにし、ブロックレベル要素に幅を指定する。以下は記述例。(Web標準普及プロジェクトから抜粋)
<div>
    <div style="margin-left:auto;margin-right:auto;width:10em;">
        ブロックレベル要素
    </div>
</div>
  • 上記のように正しいCSSによるセンタリングを行った場合、Windows版IEでは(バグにより)逆にセンタリングされない。これを回避するかつIE以外でのブラウザでも正しくセンタリングさせるために、「text-align:center;」も同時に指定してやる。
<div style="text-align:center;">
    <div style="margin-left:auto;margin-right:auto;width:10em;">
        ブロックレベル要素
    </div>
</div>
  • ・・・しかし、上記2パターンの結果をFirefox(5.0.1)で試したところ、「ブロックレベル要素」という表示が若干横にずれる。原因不明。

参考サイト

最終更新:2011年11月09日 01:02