ホームページ ウェブフロントエンド htmlチュートリアル div+css は ie6 ie7 ie8 ie9 および FireFox Chrome と互換性あり method_html/css_WEB-ITnose

div+css は ie6 ie7 ie8 ie9 および FireFox Chrome と互換性あり method_html/css_WEB-ITnose

Jun 24, 2016 pm 12:31 PM

1. div の垂直方向の中央揃えの問題

vertical-align:middle; 行間隔を DIV 全体と同じ高さに増やします line-height:200px; 次にテキストを挿入すると、垂直方向の中央揃えになります。欠点は、コンテンツが折り返されないように制御する必要があることです。

2. マージンが 2 倍になる問題

IE でフローティングに設定された div に設定されたマージンは 2 倍になります。これはie6に存在するバグです。解決策は、この div に display:inline; を追加することです。 例:


対応する CSS は

#imfloat{
margin:left; / *IE では 10px として認識されます*/
display:inline;/*IE では 5px として認識されます*/}

3. float ie によって生成される倍の距離

#box{ float:left width; :100px; margin: 0 0 0 100px; //この場合、IE は 200px の距離を生成します。 display:inline; //float を無視します。

ここで、block と inline の 2 つの要素について詳しく説明します。ブロック要素の特徴は、常に新しい行で開始し、高さ、幅、行の高さ、余白をすべて制御できることです (ブロック要素)。Inline 要素の特徴は、他の要素と同じ行にあることです。要素を制御できません (インライン要素);

#box{ display :block; // インライン要素をブロック要素としてシミュレートできます。 // 同じ行に配置する効果を実現します

4 IE と幅と高さの問題

IE は min- の定義を認識しませんが、実際には通常の幅と高さをあたかも min があるかのように扱います。これは大きな問題です。通常のブラウザでは幅と高さだけを使用すると、幅と高さは変化しません。 IEではすべて設定されています。
たとえば、背景画像を設定したい場合は、この幅がより重要です。この問題を解決するには、次のようにします。

#box{ width: 80px; height: 35px;}html>body #box{ width: auto; min-width: 80px; }

5. ページの最小幅

Min-width は、レイアウトが常に正しいことを保証するために、要素の最小幅が特定の幅未満にならないように指定できる非常に便利な CSS コマンドです。 。しかし、IE はこれを認識せず、実際には幅を最小幅として扱います。このコマンドを IE で機能させるには、

タグの下に
を配置し、その div のクラスを指定して、次のように CSS を設計します:

#container{ min-width: 600px ; width :expression(document.body.clientWidth

最初の min-width は通常ですが、2 行目の幅は IE でのみ認識されます。また、HTML ドキュメントの堅苦しさも軽減されます。実際にはJavaScriptの判断により最小幅を実装しています。

6. DIV フローティング IE テキストは 3 ピクセルのバグを生成します

左側のオブジェクトはフローティングで、右側は外側のパッチの左マージンを使用して配置され、右側のオブジェクトのテキストは左側から 3 ピクセル離れた位置になります。 .

#box{ float: left; width:800px;}

#left{ float:left; width:50%;}

*html #left{ margin-right:- 3px; //この文がキーです }


/div>

7.IE かくれんぼの問題

div アプリケーションが複雑で、各列にいくつかのリンクがある場合、この時点で DIV のかくれんぼ問題が発生しやすくなります。
一部のコンテンツは表示できません。マウスでこの領域を選択すると、コンテンツが実際にページ上にあることがわかります。


解決策: #layout に line-height 属性を使用するか、#layout に固定の高さと幅を使用します。ページ構造はできるだけシンプルにしてください。

8. Float div クロージャー; 適応高さ;

ここの NOTfloatC は翻訳を続行せず、下に移動したいと考えています。 (floatAとfloatBの属性はfloat:leftに設定されています;) このコードはIEでは問題ありませんが、問題はFFにあります。その理由は、NOTfloatC が float ラベルではないため、float ラベルを閉じる必要があるためです。
② div の高さを外部ラッパーとして設定しないでください。高さが自動的に適応されるようにするには、ラッパーに overflow: hidden を追加します。 ; フロートを含むボックスが使用される場合、IE では高さの自動調整が無効になります (邪悪な IE!) 互換性を実現するには、zoom:1; を使用します。 たとえば、ラッパーは次のように定義されます:

.colwrapper{ overflow:hidden;zoom:1; margin:5px auto;}

③植字の場合、最も一般的に使用される CSS 記述は、Create が必要になる場合があります。列 n の float div の背後にある統一された背景:




たとえば、3 つの列すべての背景色を青に設定します。 . しかし、左中央右が下に伸びても、ページは実際には同じ高さを維持することがわかります。ページがフロート属性ではなく、ページを中央に配置する必要があるため、ページをフロートに設定できないためです。これが解決策です

<div id=”page”>

<div id=”bg” style=”float:left;width:100%”>




”幅は 100% DIV ソリューションです

④Universal float クロージャ (非常に重要!)
float をクリアする原理については、[構造マークアップを使用せずに Float をクリアする方法] を参照して、次のコードをグローバル CSS に追加し、 class= を閉じる必要のある div に追加するだけで十分です。


/* Clear Fix */
.clearfix:after { content:"."; :both; Visibility:hidden; }
.clearfix { display :inline-block; }
/* IE Mac から非表示にする */

.clearfix {display:block;}

/* IE Mac から非表示にするを終了する */
/* end of clearfix */

または、次のように設定します:

.hackbox{ display:table; // オブジェクトをブロック要素レベルのテーブルとして表示}

9.高さの非互換性

高さの非互換性とは、特に内側のオブジェクトがマージンまたはパディングを使用している場合、内側のオブジェクトの高さが変更されると、外側のレイヤーの高さを自動的に調整できないことを意味します。

例:

#box {background-color:#eee; }
#box p {margin-top: 20px;margin-bottom: 20px; }


<p>p オブジェクトのコンテンツ</p> </div>


解決策: P オブジェクトの上下に 2 つの空の div オブジェクトを追加します。 CSS コード: .1{height:0px;overflow:hidden;} DIV に border 属性を追加します。
1. div の垂直方向の中央揃えの問題
vertical-align:middle; 行間を DIV 全体と同じ高さまで増やす line-height:200px; その後、テキストを挿入すると垂直方向の中央揃えになります。欠点は、コンテンツが折り返されないように制御する必要があることです。

2. マージンが 2 倍になる問題

IE でフローティングに設定された div に設定されたマージンは 2 倍になります。これはie6に存在するバグです。解決策は、この div に display:inline; を追加することです。 例:



対応する CSS は


#imfloat{

margin:left; / *IE では 10px として認識されます*/

display:inline;/*IE では 5px として認識されます*/}

3. float ie によって生成される倍の距離
#box{ float:left width; :100px; margin: 0 0 0 100px; //この場合、IE は 200px の距離を生成します。 display:inline; //float を無視します}


ここで、block と inline の 2 つの要素について詳しく説明します。ブロック要素の特徴は、常に新しい行で開始し、高さ、幅、行の高さ、余白をすべて制御できることです (ブロック要素)。Inline 要素の特徴は、他の要素と同じ行にあることです。要素は制御できません (インライン要素)。

#box{ display:block; //インライン要素をブロック要素としてシミュレートできます。 display:inline; //同じ行に配置する効果を実現します

4 IE と幅と高さの問題

IEは min-この定義を認識しませんが、実際には通常の幅と高さを min があるかのように扱います。これは大きな問題です。通常のブラウザでは幅と高さだけを使用すると、幅と高さはまったく設定されません。 IEの下で。
たとえば、背景画像を設定したい場合は、この幅がより重要です。この問題を解決するには、次のようにします。

#box{ width: 80px; height: 35px;}html>body #box{ width: auto; min-width: 80px; }

5. ページの最小幅

Min-width は、レイアウトが常に正しいことを保証するために、要素の最小幅が特定の幅未満にならないように指定できる非常に便利な CSS コマンドです。 。しかし、IE はこれを認識せず、実際には幅を最小幅として扱います。このコマンドを IE で機能させるには、

タグの下に
を配置し、その div のクラスを指定して、次のように CSS を設計します:

#container{ min-width: 600px ; width :expression(document.body.clientWidth

最初の min-width は通常ですが、2 行目の幅は IE でのみ認識されます。また、HTML ドキュメントの堅苦しさも軽減されます。実際にはJavaScriptの判断により最小幅を実装しています。

6. DIV フローティング IE テキストは 3 ピクセルのバグを生成します

左側のオブジェクトはフローティングで、右側は外側のパッチの左マージンを使用して配置され、右側のオブジェクトのテキストは左側から 3 ピクセル離れた位置になります。 .

#box{ float: left; width:800px;}
#left{ float:left; width:50%;}
*html #left{ margin-right:- 3px; //この文がキーです }


/div>

7.IE かくれんぼの問題
div アプリケーションが複雑で、各列にいくつかのリンクがある場合、DIV でかくれんぼの問題が発生しやすくなります。


一部のコンテンツは表示できません。マウスでこの領域を選択すると、コンテンツが実際にページ上にあることがわかります。

解決策: #layout に line-height 属性を使用するか、#layout に固定の高さと幅を使用します。ページ構造はできるだけシンプルにしてください。

8. Float div クロージャー; フロートのクリア; 適応高さ;



ここの NOTfloatC はパンを続けたくありませんが、下に移動したいと考えています。 (floatAとfloatBの属性はfloat:leftに設定されています;) このコードはIEでは問題ありませんが、問題はFFにあります。その理由は、NOTfloatC が float ラベルではないため、float ラベルを閉じる必要があるためです。

② div の高さを外部ラッパーとして設定しないでください。高さが自動的に適応されるようにするには、ラッパーに overflow: hidden を追加します。 ; フロートを含むボックスが使用される場合、IE では高さの自動調整が無効になります (邪悪な IE!) 互換性を実現するには、zoom:1; を使用します。 たとえば、ラッパーは次のように定義されます:

.colwrapper{ overflow:hidden;zoom:1; margin:5px auto;}


③植字の場合、最も一般的に使用される CSS 記述は、Create が必要になる場合があります。列 n の float div の背後にある統一された背景:

<div id="right"></div>

</div>

たとえば、3 つのページの背景色を青色に設定したいとします。列は青色です。これは色の目的ですが、左中右が下に伸びるにつれて、ページは実際には同じ高さを維持していることがわかります。この問題は、ページがフロート属性ではなく、ページをフロートに設定できないために発生します。中央に置く必要があるので、次のように解決する必要があります



=”center”>




次に、幅は DIV の 100% になります。解決策

④ユニバーサルフロートクロージャ(非常に重要!)

クリアフロートの原理については、「構造マークアップを使用せずにフロートをクリアする方法」を参照してください。次のコードをグローバルCSSに追加し、class="clearfix"を追加します。閉じる必要がある div はこれで完了です。

/* Clear Fix */

.clearfix:after { content:"."; }

.clearfix { display:inline-block; }
/* IE Mac から非表示にする */
.clearfix {display:block;}
/* IE Mac から非表示にするのを終了 */
/* clearfix の終了 */

または、次のように設定します:

.hackbox{ display:table; // オブジェクトをブロック要素レベルのテーブルとして表示}

9.高さの非互換性

高さの非互換性とは、特に内側のオブジェクトがマージンまたはパディングを使用している場合、内側のオブジェクトの高さが変更されると、外側のレイヤーの高さを自動的に調整できないことを意味します。
例:

#box {background-color:#eee; }

#box p {margin-top: 20px;margin-bottom: 20px; }


<p>p オブジェクトの内容</p>
</div>

解決策: P オブジェクトの上下に 2 つの空の div オブジェクトを追加します: .1{height:0px;overflow:hidden;} またはDIV にボーダー属性を追加します。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

公式アカウントのキャッシュの更新の難しさ:バージョンの更新後のユーザーエクスペリエンスに影響を与える古いキャッシュを回避する方法は? 公式アカウントのキャッシュの更新の難しさ:バージョンの更新後のユーザーエクスペリエンスに影響を与える古いキャッシュを回避する方法は? Mar 04, 2025 pm 12:32 PM

公式アカウントのWebページはキャッシュを更新します。これはシンプルでシンプルで、ポットを飲むのに十分な複雑です。あなたは公式のアカウントの記事を更新するために一生懸命働きましたが、ユーザーはまだ古いバージョンを開くことができますか?この記事では、この背後にあるtwist余曲折と、この問題を優雅に解決する方法を見てみましょう。それを読んだ後、さまざまなキャッシュの問題に簡単に対処でき、ユーザーが常に新鮮なコンテンツを体験できるようになります。最初に基本について話しましょう。それを率直に言うと、アクセス速度を向上させるために、ブラウザまたはサーバーはいくつかの静的リソース(写真、CSS、JSなど)やページコンテンツを保存します。次回アクセスするときは、もう一度ダウンロードすることなく、キャッシュから直接検索できます。自然に高速です。しかし、このことは両刃の剣でもあります。新しいバージョンはオンラインです、

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

WebページのPNG画像にストローク効果を効率的に追加する方法は? WebページのPNG画像にストローク効果を効率的に追加する方法は? Mar 04, 2025 pm 02:39 PM

この記事では、CSSを使用したWebページへの効率的なPNG境界追加を示しています。 CSSはJavaScriptやライブラリと比較して優れたパフォーマンスを提供し、微妙または顕著な効果のために境界幅、スタイル、色を調整する方法を詳述していると主張しています

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

< Progress>の目的は何ですか 要素? < Progress>の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5< time>について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

See all articles