CSSでブロックレベル要素をセンタリングする
インライン要素をセンタリングする場合は、その要素のCSSで
text-align: center;
という text-align プロパティを与えれば良いのですが、div や table 等のブロックレベル要素をセンタリングする場合、例えば下記のようにマークアップされた ブロックレベル要素、
<div id="test">[ブロックレベル要素]</div>
をセンタリングする場合は、CSSに下記のような設定を行います。
#test {
margin-left: auto;
margin-right: auto;
width: [ブロックレベル要素の幅];
}
ブロックレベル要素のセンタリングは上記が正しい方法で、Firefox や Opera、また IE6 の「標準準拠モード」や最近リリースされた IE7 では上記の設定で正常に表示されますが、IE6 の「後方互換モード」ではブラウザにバグがあるため、センタリングされません。*1
したがって、IE6 の「後方互換モード」でも同じようにセンタリングさせるためには、前述の div 要素をさらに div 要素でラップし、
<div id="wrap">
<div id="test">[ブロックレベル要素]</div>
</div>
追加した div 要素のスタイルに text-align プロパティを追加します。これは IE6 のバグを利用した手法です。*2
#wrap {
text-align: center;
}
#test {
margin-left: auto;
margin-right: auto;
width: [ブロックレベル要素の幅];
}
これでいずれのブラウザでもセンタリングされるようになります。
なお #wrap に設定した text-align プロパティは #test に対しても有効になるため、例えば内部のインライン要素を左寄せにする場合は、#test あるいはインライン要素に対して text-align: left を追加してください。
逆に、IE6 の後方互換モードでしかHTMLの表示確認をしていない場合、誤って
#test {
text-align: center;
}
というマークアップをしていると、Firefox 等ではセンタリングされませんのでご注意ください。
*1:「標準準拠モード」と「後方互換モード」の詳細については「標準準拠モードと後方互換モード・DOCTYPE宣言について - IEでドロップシャドウ画像に枠を表示する」が参考になれば幸いです。
*2:参考 - Web標準普及プロジェクト:ブロックレベル要素をセンタリングする方法
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ ブロック要素のセンタリング(CSS編集) from yozoの気が向いたと記2.0
はじめに 画像や表などを記事の真ん中に配置する(センタリングする)とき、以前では、<center>や<div align="center... [続きを読む]
≫ CSSで中央配置(センターリング)する方法 from CSS Lecture
CSSで中央配置の仕方をちゃんと理解していない人って案外いるみたいなので、詳しく... [続きを読む]
≫ CSSでブロックレベル要素をセンタリングする from ホームページ制作のためのリンク集
引用: インライン要素をセンタリングする場合は、その要素のCSSで「text-a... [続きを読む]
いつもお世話になっております。オリジナルテンプレートの件で聞きたくコメントしました。ほんとは、テンプレートのところでコメントしようと思っていたのですが最近そちらのBlogが重くてページが開きにくいのでこちらにコメントしました。そこで、検索などでエラーが発生した時のダイナミックページエラーのテンプレートの配布はないのでしょうか? 一度検索で自己的にエラーをおこしてみたら表示が崩れてしまっています。恐れ入りますがサポート宜しくお願いします。
>panserさん
こんばんは。
ご質問の件につきまして、「崩れている」というのが、どの程度のものか分かりませんが、入力した文字列にヒットするページがみつからなかった場合の検索結果ページは配布中の「検索結果テンプレート」に含まれています。
panserさんの「検索」という言葉を「Movable Type の検索機能」を指していると解釈しましたが、認識が誤ってましたら具体的な状況・手順等をお知らせください。
それではよろしくお願い致します。
yujiroさん、おはよーございまっす♪
IE6.0だけで編集していて、text-align:center;でtableをセンタリングしてました。(yozoのブログの右サイドにあるCLEVER BBSです。)これってIEのバグだったのですね。Firefoxで見るとセンタリングされていませんでしたよ。┐( -"-)┌ヤレヤレ...
早速記事を参考にさせていただいて、修正し、バッチリセンタリングできました。いつも勉強させてもらってます。ありがとーございまっす♪m(_ _)m
>yozoさん
こんばんは。
コメントありがとうございます。
お役に立てたようで良かったです。
ではでは!