固定3カラムのIE6・後方互換モード対処方法
公開中の固定3カラムテンプレートをXHTMLに適用させる場合、1行目にXML宣言、
<?xml version="1.0" encoding="utf-8"?>
をテンプレートに記述する場合がありますが、この時IE6では強制的に表示モードが「後方互換モード」、つまり古いブラウザへの互換性を保とうとするモードになります。
「後方互換モード」は「標準モード」と解釈の違いがあり、その中のひとつに width プロパティに padding / border プロパティのサイズを含む・含まないの解釈の違いがあります。後方互換モードでは width に padding / border のサイズを含むため、含まないサイズ指定を行っている公開テンプレートでXML宣言を行うと左右のカラム幅が画像のように崩れてしまうという問題がありました(というかそもそも私の解釈誤り)。
1行目にXML宣言を記述しなければこのような問題は発生しないのですが、ウェブスタンダードに準拠して運用される場合の制約となってしまいます。
ということで、3カラム固定の公開テンプレートについて、いずれの表示モードにも依存せずに表示させる修正方法を提示します。具体的には、両者のプロパティを同時にひとつのブロックに記述しなければ回避できる問題ですので、新しいブロックを追加します。
なお、text-align:プロパティを追加しないとセンタリングされないという問題もありますのでそれも併せて記述します。
本記事の参照元は下記です。ありがとうございました。
1.スタイルシート修正
styles-site.css の左右カラム指定のIDセレクタについて、下記リストのように赤字部分を削除し、青字のIDセレクタを新たに追加します。
#links-right-box {
float: left;
width : 185px ;
}
#links-right{
float: left;
width : 155px ;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
color: #ffffff;
}
#links-left-box {
float: left;
width : 185px ;
}
#links-right{
float: left;
width : 155px ;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
color: #ffffff;
}
また3カラム全体をセンタリングさせる場合は、body 要素に青色の text-align プロパティ を追加してください。
body {
margin: 0px 0px 20px 0px;
background:#8FABBE; /* 背景色 */
text-align:center;
}
2.テンプレート修正
3カラム化しているテンプレート全てについて、下記リストのように links-left、links-right のタグの外側を括る形で青字のタグを追加します。
:
<!-- 左サイドバー開始 -->
<div id="links-left-box">
<div id="links-left">
:
</div>
</div>
<!-- 左サイドバー終了 -->
<!-- 中央コンテンツ開始 -->
:
<!-- 中央コンテンツ終了 -->
<!-- 右サイドバー開始 -->
<div id="links-right-box">
<div id="links-right">
:
</div>
</div>
<!-- 右サイドバー終了 -->
:
3.もう少しきれいに
実は左右のセレクタの内容は全く同じ内容ですので、
.links-box {
float: left;
width : 185px ;
}
.links{
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
color: #ffffff;
}
というまとめた指定も可能です(妥当かどうかは別として)。テンプレートのid 属性は class 属性に変更してください。
公開中の固定3カラムのテンプレートは修正済みです。 |
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- Movable Type でコメント用 RSS フィードを出力する
- 小粋空間テンプレートセットのカラムレイアウト変更方法
- Movable Type 4.1 テンプレートセット
- FC2ブログの個別記事ページで前後記事のリンクを表示する
- Movable Type 4.1 の「ブログのテンプレートを初期化」について
- テンプレートのタグを探す方法
- Movable Type 4 配布テンプレート不具合のお知らせ
- livedoor テンプレート不具合のお知らせ(前後ページへのリンク追加)
- 配布テンプレートのサイドバーにリストを追加する
- サイドバーに Google Adsense を貼り付ける
- テンプレート不具合のお知らせ(カレンダーリンクの改善) for livedoor ブログ
- アメーバブログ スキン設定方法
- アメーバブログ スキン
- Movable Type 4 公開テンプレート設定方法
- Movable Type 4 テンプレート不具合と修正のお知らせ
- Movable Type 4 テンプレート配布再開
- XHTML 1.0 Strict 版テンプレートをカスタマイズする場合の注意事項
- Movable Type 4 テンプレート
- 3カラムレイアウトで中央カラムを(X)HTMLの最初に記述する
≫ 配置がずれる from Mistgrass Weblog
実験室のほうで、小粋空間さんのテンプレートの3カラム固定にチャレンジしてみまし... [続きを読む]
≫ 今日のXHTML+CSS:IE6の後方互換モード対策 from 世界中の1%の人々へ
「XHMLはXMLなんだからXML宣言をいれるべき」という文章を1ヶ月前に目にしてから、寝ても覚めても、この言葉が頭から離れなかった。 ところが、XML... [続きを読む]
こんばんはー^^
お役に立てて幸いでした。
うちと同じ構成になってるよ!とちょっと感動&びっくりです。
>もそさん
こんにちは。
仕組みがわかると非常に便利な構造ですね。
あの記事がなかったらずっと崩れたままだったと思います。(笑)
日々精進ですね。
改めましてありがとうございました。

