2447852 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

こんぱすコーチの全方位日記

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

カレンダー

カテゴリ

キーワードサーチ

▼キーワード検索

2009年07月17日
XML
カテゴリ:WEB制作
専門的な話ばかりですみません。昨日の続きです。

さてWebの世界での趨勢は、
「CSSを使ったレイアウト」が主流になってきたのは、
昨日書いたとおりで、僕も今取り組んでいるWebコンテンツは、
すべてCSSでレイアウトを行う流儀で進めてきているのですが、
ここでちょっと困った問題が起こりました。

実は、Webブラウザのバージョンによって、
CSSに書かれてある書式設定値の解釈が異なるんです。

解釈が違うとどうなるか。
それは「レイアウトが違う」という影響につながります。
しかも始末に悪いのが、
同じ「インターネット・エクスプローラ(IE)」なのに、
バージョンによって見え方が違うんです。

<IE7(インターネット・エクスプローラ Ver.7.0)>
IE7で表示

<IE6(インターネット・エクスプローラ Ver.6.0)>
IE6で表示

いかがですか?
IE7で見るとまともなのに、
IE6で見ると、メインコンテンツの部分が
ヘッダーに対して右へビニョーンと突き出していますよね。

これは、IE6がCSSの設定を正しく読み取ってくれない、
いわゆる「バグ」(プログラム不良)だからなのです。

崩れてしまっている部分のCSSをひもとくと…

問題のCSS

上図の「.mMenu」が左段のレイアウト、「.sMenu」が右段のレイアウトを
つかさどっているのですが、
それぞれの中に「margin:」という項目がありますね。
赤色の下線にあるように、
.mMenuは左右のマージンを40ピクセル、
.sMenuは左右のマージンを10ピクセルとすることが設定されています。

ところがIE6は、この数値を倍にしてとらえるんです。つまり、
.mMenuの左右マージンは80ピクセル、
.sMenuの左右マージンは20ピクセルの設定になり、
それで結果的に右側へ伸びてしまう結果になるんですね。

<IE6がCSSを間違って解釈するカラクリ>
下矢印図をクリックすると、拡大表示します。
IE6がCSSを間違って解釈

「数値を倍にとらえるのであれば、それを見越して半分にすれば…?」
という発想が出てくるのですが、
そうすれば今度はIE7で見たときに左へ縮んでしまいます。
いわば「あちらを立てればこちらが立たず」と言う状態になるんです。

「IE6で見た時だけ、元々の設定数値を半分にする」
ことが実現できれば、この不具合を正すことができるわけですが、
そんな都合の良いやり方があるのか?

実はあるんです下矢印

ハックした内容

上図の赤枠内のように、冒頭に「* html」を付けると、
「これはIE6以下のブラウザだけが受け付ける」という意味になります。

IE7だとこの記述は無視し、
IE6だと一度「.mMenu」や「.sMenu」を読んだ上、
「* html .mMenu」や「* html .sMenu」を読み込む、
という流れになり、結果的にIE7とIE6での読み替えが成立して、
どちらのブラウザで見ても同じ結果になるんです。
これを「ハック」というそうです。

<CSSをハックした後にIE6で表示したWebコンテンツ>
ハック後にIE6で表示

CSSでレイアウトするのは、
やればやるほど奥が深いですねぇうっしっし



世界の「最先端」事例に学ぶCSSベスト・プラクティス





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2009年07月18日 11時29分31秒
コメント(4) | コメントを書く
[WEB制作] カテゴリの最新記事


フリーページ

お気に入りブログ

トマト4種類の種蒔き あくびむすめ6417さん

takaakパパのDIY… takaakさん
ねこまた徒然草 nekomata1963さん
コシヒカリコーチN… コシヒカリコーチさん
ゆめびより ゆめこう… ゆめこうぼう 桜餅さん
モンドの親子未来塾… モンド父さん
Twitterでは呟ききれ… アンビンバンコさん
鳥取・島根で田舎暮… 夢家工房さん
モールスキンとめぐ… 日曜日の羊さん
頑張れ!PTママ!… 四葉2014さん

コメント新着

タウンライフアフィリエイト運営事務局@ タウンライフアフィリエイト運営事務局でございます 平素は大変お世話になっております。 タウ…
丘Bar(おかば~る)@ Re:『マッサン』最終回(03/28) 晩酌。という語がずっと頭について離れな…
丘Bar(おかば~る)@ Re:『マッサン』最終回(03/28) 晩酌。という語がずっと頭について離れな…
たかたか@ Re:もし日本の線路が○○だったら…?(02/06) おのれイギリスめが!(笑) 在来線も標準軌…
lr4 @ Re:チョー怖い駅(12/06) 電車でDというゲームでもキャラがホームの…

ニューストピックス


© Rakuten Group, Inc.