プロが教える店舗&オフィスのセキュリティ対策術

IE6でCSSの一部の記述を読み込まないので、困っています。
上位のIEやモダンブラウザーでは出ない症状です。
解決策の判る方に、お助けをお願いします。

外部CSSに書いた内容で、反映するものと反映しないものがあります。
div#main { } とかはOKで、p.small { } 、td.com { } などの classに書いたものが、効きません。
他にも、h2 { } 等も効きません。

IE6は、CSSのコメントを閉じる前に全角文字があるとエラーになるとか、
HTMLとCSSの文字コードが違うとエラーとか、ありました。
該当はしていません。

classを複数並列記載するとエラーなど、Googleで探したら、
ありましたが、そのようなな複雑なことはやっていません。

他に、IE6がCSSの一部の記述を読み込まないエラーの原因となるものは、あるのでしょうか。

一部の内容です。

CSS==========

@charset "UTF-8";

以下、略

HTML==========

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="base.css" type="text/css" />

以下、略

思い当たる原因として、
<body>の上に、wrapper を以下のように定義して、センター配置しています。

div#wrapper { width:800px;
    height:100%;
    position:absolute;
    top:15px;left: 50%;
    margin-left: -400px;
background-color: transparent;
margin-bottom:0px;
}

この子要素や孫要素に、コンテンツが書かれています。
孫要素は、float している場合もあります。

そのような構造では、本題のエラーが出るものなのでしょうか?
お助け願います。

A 回答 (2件)

IE7以上できちんと適用されるならIEは無視して構わないとは思います。


 マイクロソフト自身が「腐った牛乳」と使用して撲滅キャンペーンを張っているくらいです。
マイクロソフト、IE6 撲滅に向けた一大キャンペーン始める | スラッシュドット・ジャパン IT ( http://it.slashdot.jp/story/11/03/07/2037203/%E3 … )


 まず、スタイルシートの順番を変えると適用されたりされなかったりするのでしたら、それでどの部分以降が読まれていないかチェックできます。
 また、子孫セレクタを解釈しない部分がありますから、間に全称セレクタを入れてみるとかします。
 一意セレクタで記述したスタイルに対して、複数クラス指定しても二つ目以降は利きません。
p.small { } 、td.com { }
は、
p small { } 、td span.com { }
と指定できるようにHTMLを書き換えます。

 これはIE6のバグですが、HTMLをきちんと記述することで回避できるはずです。

>これは、800pxワイドのwrapper をセンター配置させるCSSです。
 まともなブラウザでしたら
 width:800px;margin:0;auto;
 なのですが、IE6でしたら
 body{text-align:center;}
 #wraper{width:800px;}
 #wraper *{text-align:left;}
ですかね。

 私は、この点についてはIE6は無視しています。左に偏って表示されても問題ないですから、それよりも、スマホや幅広ディスプレイに対応させるため
div.article{width:80%;min-width:640px;max-width:800px;margin:0 auto;}
です。

 IE6への対応に使う労力がもったいない。
最近では、数字にも上がってこない
日本のバージョン別ブラウザシェアグラフ (StatCounter Global Statsより) ( http://lhsp.s206.xrea.com/misc/browser-share-ver … )
    • good
    • 0
この回答へのお礼

一般的にはIE6の影響は小さいと思います。
特定の所では、XPと合わせてまだ残っていて、たまたま特定のところのホームページだったので、あせりました。
何とか、まともになりました。
お礼を申し上げます。

お礼日時:2012/08/07 14:05

まずHTMLの文法チェック、ついでCSSの文法チェックをしてください。


The W3C Markup Validation Service ( http://validator.w3.org/#validate_by_input )
Another HTML-lint 5 ( http://www.htmllint.net/html-lint/htmllint.html )
W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )

なお、細かい部分ですが、HTMLの場合
<link rel="stylesheet" href="base.css" type="text/css" />
ではなくて
<link rel="stylesheet" href="base.css" type="text/css">
です。
 left:50%;
 margin-left:-400px;
とはなに??

この回答への補足

HTMLの文法チェックをThe W3C Markup Validation Serviceでしました。
<link rel="stylesheet" href="base.css" type="text/css" />を修正しました。他に、ダイレクトで style=""で書き込んである点がエラーではないですが指摘されました。ほかには、エラーはありませんでした。

CSSも、W3C CSS 検証サービスでチェックしましたが、background-colorと文字色の指摘のみで、エラーはありません。
まだ、IE6/7でエラー状態です。

left:50%;
 margin-left:-400px;

これは、800pxワイドのwrapper をセンター配置させるCSSです。
参考:
http://www.css-lecture.com/log/css/032.html

その他、UTF-8で、htmlとcssとを書いています。

あと、何をチェックすれば、IE6/7のエラーを解決できるでしょうか?

補足日時:2012/08/02 14:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!