ホームページ > 記事 > ウェブフロントエンド > div+css は、ie6、ie7、ie8、ie9、FireFox Chrome、およびその他のブラウザーと互換性があります。method_html/css_WEB-ITnose
div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法
1.DOCTYPE 影响 CSS 处理
2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行
3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中
4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式
6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。
9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反,据阿捷的说法! important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx! important;
11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 ul{margin:0;padding:0;}就能解决大部分问题
注意事项:
1、float的div一定要闭合。
例如:(其中floatA、floatB的属性已经设置为float:left;)
这里的NOTfloatC并不希望继续平移,而是希望往下排。
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。
在
之间加上
这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear这种样式定义为为如下即可:
.clear{
clear:both;
}
此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;
当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE)用zoom:1;可以做到,这样就达到了兼容。
例如某一个wrapper如下定义:
.colwrapper{
overflow:hidden;
zoom:1;
margin:5px auto;}
2、margin加倍的问题
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:inline;
例如:
対応する CSS は
float:left;/*IE は 10px として認識します*/
display:inline;/* IE では、5px*/} として理解されます
3. コンテナの包含関係について
4. 高さに関する質問
コンテンツが動的に追加される場合は、高さを定義しないことが最善です。ブラウザは自動的に拡大縮小できますが、静的コンテンツの場合は高さを設定するのが最善です。 (時々自動的に開かないようです。何が起こっているのかわかりません。)
5. 最も無慈悲な方法 - !重要
いくつかの詳細な問題を解決する方法が本当にない場合は、次の方法があります。このメソッドを使用します。「!重要」の FF は最初に自動的に解析されますが、IE はそれを無視します。次のようになります。 gif) no-repeat 0px 0px ! important ; /*FF のスタイル*/
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* IE のスタイル */}
注意すべき点は、文 xxxx !重要な文を別の文の上に配置することについては、上で説明したとおりです
IE7.0 の CSS サポートには新たな問題があります。ブラウザの数が増え、Web ページの互換性も悪くなっています。IE7.0 の互換性の問題を解決するために、次の記事を見つけました。今はそれを使用しています。ほとんど! important はハッキングするため、ie6 と Firefox のテストでは正常に表示されますが、ie7 では ! important を正しく解釈できるため、ページが必要に応じて表示されなくなります。検索した結果、「*+html」を使用するという IE7 用の良いハックを見つけました。これで IE7 で閲覧できるようになりました。問題はありません。
これで次のような CSS を書くことができます:
#example { color: #333; } /* Moz */
* html #example { color: #666; } /* IE6 * /
*+html #example { color: #999; } /* IE7 */
すると、フォントの色は、Firefox では #333、IE6 では #666、IE7 では #999 と表示されます。
CSS のさまざまなブラウザとの互換性については、インターネット上にチュートリアルが存在します。以下の内容は、あまり目新しいものではなく、純粋に個人的なまとめです。初心者向けのヘルプがあります
1. CSS HACK
1、! important
IE7 の ! important メソッドのサポートにより、次の 2 つの方法で解決できます。現在は IE6 HACK のみです (記述に注意してください。宣言位置は事前に指定する必要があることに注意してください)。 * IE7+FF */
width: 80px; /* IE6 */
}
2、IE6/IE77 対 Firefox
*+htmlと *html は IE タグに固有であり、Firefox はまだサポートしていません。また、*+html は IE7 に固有のタグです。 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 修正 */
*+html #wrapper { width: 60px;} /* ie7 修正、順序に注意 * /
注: IE7 の
*+html HACK では、HTML の先頭に次のステートメントが必ず含まれるようにする必要があります。
2.
フロートをクリアする原理については、[構造マークアップを使用せずにフロートをクリアする方法]を参照してください。グローバルCSSに次のコードを追加し、閉じる必要があるdivにclass="clearfix"を追加します。
これは毎回機能します。