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標準普及プロジェクト:ブロックレベル要素をセンタリングする方法
- サブカテゴリーリストを定義型リストでマークアップする
- CSS でブログ本文の画像だけをセンタリングする
- CSS の画像置換で画像にリンクを設定する
- XREA のバナー広告を固定レイアウトのヘッダに表示する
- Web標準XHTML+CSSデザイン クリエイターが身につけておくべき新・100の法則。
- グローバルナビゲーション(その1:基本スタイル)
- RSS フィードにスタイルシート(CSS)を適用する
- 「追記文章の折りたたみ 2.0」でIE7の不具合を解消する
- サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
- 公開テンプレートにフッタを追加する(2カラム版)
- CSS の after 擬似要素で回り込みを解除する
- テンプレートカスタマイズ支援ツール Column Resizer
- サイドバーのタイトル背景をカラム幅にあわせて表示する
- 公開テンプレートのサイドバーのカラム幅を変更する
- JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ
- CSSでブログに影をつける - ドロップシャドウ画像ファイルの作り方
- CSSでブログに影をつける(ドロップシャドウ)
- IE7 の CSS ハック
- 3カラムレイアウトをナビゲーションバー部分に適用する
≫ ブロック要素のセンタリング(CSS編集) from yozoの気が向いたと記2.0
はじめに 画像や表などを記事の真ん中に配置する(センタリングする)とき、以前では、<center>や<div align="center... [続きを読む]
いつもお世話になっております。オリジナルテンプレートの件で聞きたくコメントしました。ほんとは、テンプレートのところでコメントしようと思っていたのですが最近そちらのBlogが重くてページが開きにくいのでこちらにコメントしました。そこで、検索などでエラーが発生した時のダイナミックページエラーのテンプレートの配布はないのでしょうか? 一度検索で自己的にエラーをおこしてみたら表示が崩れてしまっています。恐れ入りますがサポート宜しくお願いします。
>panserさん
こんばんは。
ご質問の件につきまして、「崩れている」というのが、どの程度のものか分かりませんが、入力した文字列にヒットするページがみつからなかった場合の検索結果ページは配布中の「検索結果テンプレート」に含まれています。
panserさんの「検索」という言葉を「Movable Type の検索機能」を指していると解釈しましたが、認識が誤ってましたら具体的な状況・手順等をお知らせください。
それではよろしくお願い致します。
yujiroさん、おはよーございまっす♪
IE6.0だけで編集していて、text-align:center;でtableをセンタリングしてました。(yozoのブログの右サイドにあるCLEVER BBSです。)これってIEのバグだったのですね。Firefoxで見るとセンタリングされていませんでしたよ。┐( -"-)┌ヤレヤレ...
早速記事を参考にさせていただいて、修正し、バッチリセンタリングできました。いつも勉強させてもらってます。ありがとーございまっす♪m(_ _)m
>yozoさん
こんばんは。
コメントありがとうございます。
お役に立てたようで良かったです。
ではでは!

