ホームページ >ウェブフロントエンド >htmlチュートリアル >IE6、IE7、FFの互換性に関するDIV CSSデザイン機能(再掲)_html/css_WEB-ITnose
Web サイトをデザインするときは、さまざまなブラウザーとの CSS スタイルの互換性の問題に注意を払う必要があります。特に、完全に DIV CSS を使用して設計された Web サイトの場合は、IE6 IE7 FF と CSS スタイルの互換性により注意を払う必要があります。ウェブサイトの混乱により、望ましくない影響が生じる可能性があります。
全ブラウザ共通
height: 100px;
IE6 のみ
_height: 100px;
IE7 のみ
*+height: 100px; :10 0px ! important;
1. CSS の互換性
現在、次の 2 つの方法でほぼすべての互換性の問題を解決できます
1、! important (あまりお勧めできません。次の方法を使用するのが最も安全です)
IE7 の ! important のサポートにより、! important メソッドは現在 IE6 のみと互換性があります (記述に注意してください。宣言位置は事前に指定する必要があることに注意してください)。
コード:
2、Firefox ie6 ie7 の CSS スタイルから
*+html および *html は IE- *+html は IE7 固有のタグです。
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width : 80px;} /* ie6 修正 */
* +html #wrapper { width: 60px;} /* ie7 修正、順序に注意してください*/
注:
*+html IE7 との互換性HTML の先頭に次のステートメントを必ず含める必要があります:
コード: !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
2. ユニバーサル float クロージャー (非常に重要!) これを使用すると、複数の div が整列したときに間隔が正しくなくなる問題を解決できます。
クリアフロートの原理については、[ハウツー] を参照してください。構造マークアップなしでフロートをクリアする]
次のコードをグローバル CSS に追加し、class="clearfix" を追加すると、繰り返し動作します。
/* Clear Fix */
.clearfix:after {
content: ".";
display:block;
height:0;
visibility:hidden;
.clearfix {
display:inline-block;
/* IE Mac から非表示にするclearfix {display:block;}
/* IE Mac からの非表示の終了 */
/ * clearfix の終了 */
3. その他の互換性のヒント (非常に便利)
1. FF では幅と高さが増加しますが、IE では増加しません (!重要)
2、中央揃えの問題
1)。次に vetical-align: middle を渡します (コンテンツを折り返さないように注意してください。)
2) 水平方向に中央揃えにします (もちろん万能ではありません)
3. a タグでは、display: block; を設定する必要があります (ナビゲーション タグで一般的)
4. FF と IE の間での BOX の理解の違いにより、float に設定された div は、IE では二重マージンなどの問題を引き起こします。
5. ul タグにはデフォルトでリストスタイルとパディングが含まれており、不要なトラブルを避けるために事前に宣言することをお勧めします。 div を外部ラッパーとして追加します。
ハンド カーソル: ポインターについては、コードを貼り付けます。最も推奨されるモード。
/* FF */
.submitbutton {
幅: 40px;
高さ: 24px;
/* IE6 */
*html .submitbutton {
margin-top: 21px;
}
/* IE7 */
*+html .submitbutton {
margin-top: 21px;
}
異なるブラウザを使用する場合 (Firefox IE7 IE6)同じ Web サイトやページにアクセスすると、正常に表示されるものもあれば、異常に表示されるものもあるため、この問題は解決しましたが、別のブラウザーで新たな問題が発生しました。ブラウザ。互換性は、CSS 内でさまざまなブラウザをサポートするスタイルを個別に作成できるようにする方法です。今では調和が生まれています。ふふ!
Microsoft が最近リリースした IE7 ブラウザの互換性は、確かに一部の Web ページ開発者にとって大きな負担となっています。IE7 は標準化されましたが、FF とはまだ多くの違いがあるため、IE7 の互換性を使用する必要があります。友人にIE7の互換性はどうなっているのかと聞かれましたが、実は分かりません。 IE7 に特化した互換性はまだ見つかりません。前回の記事に加えて、「CSS Style for Firefox IE6 IE7」の互換性方法も非常に便利です。
少し論理的思考ができる人なら、IE と FF の互換性を一緒に使用できることを知っているでしょう。たとえば、次の 3 つの互換性オプションがあります: (初心者に適しています。笑、専門家はここを通り過ぎます。)
プログラム コード
1 つ目は IE FF と互換性があり、すべてのブラウザに共通です (実際には互換性があるとはみなされません)
height:100px; 2 つ目は IE6 のみと互換性があります
_height:100px; 3 つ目は IE6 と互換性がありますは IE7 と共通です
*height:100px;
これら 3 つの互換性を紹介した後、スタイル内の属性に対して IE6 IE7 FF 固有の互換性を定義する方法を見てみましょう。順序が間違っているはずがありません。
プログラムコード
height:100px;
* height:120px;
_height:150px;
各ブラウザがこれら 3 つの属性をどのように理解するかを簡単に説明します。
FF では 2 番目と 3 番目の属性が認識されないため、高さを読み取ります:100px;
IE7 では、IE7 は 3 番目の属性を認識しないため、最初と 2 番目の属性を読み取り、2 番目の属性が最初の属性を上書きするため、IE7 は最終的に 2 番目の属性 *height:120px を読み取ります。は 3 つの属性をすべて認識するため、3 つの属性すべてを読み取ることができます。また、3 番目の属性は最初の 2 つの属性を上書きするため、IE6 は最終的に 3 番目の属性を読み取ります。
Firefox ie6 ie7 用の 1 CSS スタイル
現在、ほとんどの CSS スタイルは ! important と互換性があります。ie6 および Firefox のテストでは正常に表示できますが、ie7 は ! important を正しく解釈できるため、ページが必要に応じて表示されません。 ! 「*+html」を使用することで IE7 と互換性のある方法を見つけました。次のように CSS を記述します。
#1 { color: #333; /
* html #1 { color: #666; } /* IE6 */
*+html #1 { color: #999; } /* IE*/
那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999。
2 css布局中的居中问题
主要的样式定义如下:
body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
说明:
首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。
但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”
需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
3 盒模型不同解释.
#box{
width:600px;
//for ie6.0- w\idth:500px;
//for ff+ie6.0
}
#box{
width:600px!important
//for ff
width:600px;
//for ff+ie6.0
width /**/:500px;
//for ie6.0-
}
4 浮动ie产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}
这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,…不可控制(内嵌元素);
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果 diplay:table;
5 IE与宽度和高度的问题
IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里 这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。比如要设置背景图片,这个宽度是比较重 要的。要解决这个问题,可以这样:
#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
6 页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个
p对象中的内容