ホームページ > 記事 > ウェブフロントエンド > 【再掲】DIV設計時のIE6、IE7、FFの互換性関連機能 CSS_html/css_WEB-ITnose
転載元: http://hi.baidu.com/zhenghanzheng/blog/item/840e5501d2c71b0a7aec2c81.html
Web サイトをデザインするとき、特に次のようなデザインの場合は、さまざまなブラウザーとの CSS スタイルの互換性の問題に注意を払う必要があります。 DIV CSS を完全に使用してください。ネットワークを使用している場合は、IE6 IE7 FF と CSS スタイルの互換性にもっと注意を払う必要があります。そうしないと、ネットワークが乱雑になり、望ましくない影響が生じる可能性があります。
全ブラウザ共通
高さ: 100px;
IE6 のみ
*高さ: 100px;
IE7 のみ
*+高さ: 100px;ピクセル! important;
1. CSS の互換性
現在、次の 2 つの方法でほとんどすべての互換性の問題を解決できます
1、! important (あまりお勧めできません。次の方法を使用するのが最も安全です)
IE7 の ! important のサポートにより、 ! importantメソッドは IE6 のみに対応しました (書き方に注意してください。事前に位置を宣言することを忘れないでください。)
コード:
2、IE6/IE77 for Firefox ie6 ie7<
*+html および *html は IE 固有のタグです。 *+html も IE7 固有のタグです。
コード:
注:
*+html IE7 との互換性により、 HTML の先頭に次のステートメント:
コード:
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose .dtd">
2. ユニバーサルフロートクロージャー (非常に重要!) これを使用すると、複数の div を整列させるときに不正確な間隔が発生する問題を解決できます。
フロートをクリアする原理については、[構造を使用せずにフロートをクリアする方法] を参照してください。マークアップ]
次のコードをグローバル CSS に追加し、class="clearfix" を追加します。
コード:
3. FF の下の div にパディングを設定すると、 width と height は増加しますが、IE では増加しません (!重要な問題は
2 で解決できます)。 line-height を現在の div と同じ高さに設定し、vetical- を渡します。 align: middle (コンテンツを折り返さないように注意してください。)
2) 水平方向に中央揃えにします (もちろん万能ではありません)
3. a タグのコンテンツにスタイルを追加する必要がある場合。 display: block; を設定する必要があります (ナビゲーションタグで共通)
4. FF と IE の間での BOX の理解の違いにより、float に設定された div は、IE で二重マージンなどの問題を引き起こします。 . ul タグにはデフォルトでリストスタイルとパディングがあり、不要なトラブルを避けるために事前に宣言することをお勧めします (ナビゲーションタグとコンテンツリストでよくあることです)
6. 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 と互換性があり、共通ですto IE7
*height:100px; これで互換性が得られました。次は、スタイル内の各属性の互換性を定義する方法を見てみましょう。
プログラムコード
高さ:100ピクセル;
_高さ:150ピクセル;各ブラウザがこれら 3 つの属性をどのように理解するかを簡単に説明します。
FF では、2 番目と 3 番目の属性は FF によって認識されないため、height:100px と読み取られます。
IE7 では、3 番目の属性は IE7 によって認識されません。最初と 2 番目の属性を読み取り、2 番目の属性が最初の属性をカバーするため、IE7 は最終的に 2 番目の属性 *height:120px を読み取ります。
IE6 では、3 つの属性 IE6 はすべて相互に認識しているため、3 つの属性すべてを読み取ることができます。 3 番目の属性は最初の 2 つの属性を上書きするため、IE6 は最終的に 3 番目の属性を読み取ります。
Firefox ie6 ie7 用の 1 CSS スタイル
現在、ほとんどの CSS スタイルは ! important と互換性があります。ie6 および Firefox のテストでは正常に表示できますが、ie7 は ! important を正しく解釈できるため、ページが必要に応じて表示されません。 ! 「*+html」を使用することで IE7 と互換性のある方法を見つけました。次のように CSS を記述します。
#1 { color: #333; /
* html #1 { カラー: #666; } /* IE6 */
*+html #1 { カラー: #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对象中的内容
カテゴリー: CSS | お気に入りに追加 | ビュー (90) | コメント (0)
前の記事: DIV+CSS Web ページにおける IE と Firefox の互換性の問題...