WebページのレイアウトではIE6の互換性の問題を考慮する必要があります

WebページのレイアウトではIE6の互換性の問題を考慮する必要があります

下の図は、当社のウェブサイト統計システムの訪問者詳細におけるブラウザ閲覧率を示しており、IE6 が 40% 以上を占めています。ブラウザには多くの種類がありますが、IEだけでもIE5.5、IE6、IE7、IE8など複数のバージョンがあります。これらの多くの上位バージョンの中で、IE6は依然としてほとんどのユーザーに人気があるため、組版時にIE6の互換性を考慮する必要があります。そうしないと、多くの訪問者を失うことになります。

IE6 で注意しなければならない 10 個の問題は次のとおりです。

1. DOCTYPEを使用する
HTML ページの先頭に DOCTYPE タイプを追加する必要があります。もちろん、厳密なバージョンが推奨されます。例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
「http://www.w3.org/TR/html4/strict.dtd」


または、XHTML ページの場合は、!DOCTYPE:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

最も望ましくないことは、IE6 が奇妙な動作モードに入ることです。しかし、IE6 にはすでに十分な奇妙な動作があります。

2. 位置の設定: 相対
position:relative を設定すると、特に配置を設定する必要がある場合に、複数の問題が解決されます。明らかに、理解しておく必要があるのは、絶対的な位置付けは相対的であるということです。おそらく、設定していないので、すべてがどこに行ったのかわからないのでしょう。たとえば、各記事の前に写真をデザインしたのに、最終的にページ上に写真が 1 つしかなく、写真が重なり合っていることが判明したとします。

3. フローティング要素に display:inline 値を設定する<br />これは、有名な IE6 の二重マージンのバグによるものです。たとえば、フローティング DIV を設計し、margin-left:5px; を設定した場合、IE6 では margin-left:10px になる可能性があります。ここで、フローティング要素に display:inline; を設定すると、問題を解決できます。

4. 要素にhasLayoutを設定する
IE6 (または IE7) の問題の多くは、hasLayout 値を設定することで解決できます。 (hasLayout が何であるかわからない場合は、ここを参照してください)

要素の hasLayout 値を設定する最も簡単な方法は、CSS の高さまたは幅を追加することです (もちろん、ズームも使用できますが、これは CSS の一部ではありません)。特定の値を設定することが推奨されますが、必ずしも高さがわからない場合もあります。ここでは、height:1% を使用します。親要素に高さが設定されていない場合、要素の物理的な高さは変更されませんが、hasLayout プロパティが既に存在します。

5. 文字の重複の問題を解決する<br />レイアウトが複雑な場合、一部のフローティング要素のテキストが、クリアされたフローティング位置の下に表示されることがあります。これは奇妙な問題ですが、解決方法は次のとおりです。

• フロート要素に display:inline が設定されていることを確認します。
•フローティング要素では margin-right:-3px を使用します。
• フロートの最後の要素の後に IE コメントを追加します。例: <!--[if !IE]>ここにコメントを入力してください... <![endif]-->
• 最後の要素に DIV を追加します (幅を 90% などに設定できます)
更新: 最も簡単な方法は、すべてのコメントを削除することです。 (ヒントを提供してくれたTian Weierに感謝します。私自身はこの問題に遭遇していませんが、Googleで検索したところ、この方法でも問題を解決できることがわかり、お勧めする価値のある方法です。)

詳細については、positioniseeverything.net をご覧ください。

6. ホバーは <a> タグ内でのみ使用します。IE6 はホバー スタイルを表示するために <a> タグのみをサポートしています。もちろん、JS を使用してこの問題を解決することもできます。しかし、これによってアクセシビリティの問題が生じます。 JS を使用して実装されたホバーには重要なコンテンツを設定しないことをお勧めします。

7. !important または advanced セレクターを使用して IE ブラウザを区別します。たとえば、min-height を使用すると、CSS を使用せずに IE との互換性を実現できます。

#要素 {
最小高さ: 20em;
高さ: 自動 !重要;
height: 20em; /* IE6 でこの高さを表示させます */
}

IE6 は min-height を正しく認識できないため、IE6 が 20em として解釈できるように固定の高さを設定できます。それでも、コンテンツのサイズが大きくなるにつれて高さは変化します。別のアプローチとしては、高度なセレクターを使用することです。

#要素 {
最小高さ: 20em;
高さ: 20em;
}
/* IE6 を無視 */
#要素[id] {
高さ: 自動;
}

8. 比例サイズを避ける<br />親要素に正確な高さを追加しない限り、比例サイズは IE6 を混乱させます。それ以外の場合は、他の項目に !important を追加します。例:

体{
マージン: 2% 0 !重要;
margin: 20px 0; /* IE6 で読み取り可能 */
}

9. 早めにテストし、頻繁にテストする<br />レベルが完了していない限り、早めにテストし、頻繁にテストすることを忘れないでください。そうしないと、IE6 の問題のトラブルシューティングにさらに時間がかかる可能性があります。一般的に言えば、Web サイトが IE6 と Firefox で適切に動作する場合、他のブラウザーでも大きな問題は発生しないと考えられます。

10. コードをリファクタリングする<br />多くの場合、問題の解決にはコードのリファクタリングよりも時間がかかります。

<<:  CSS で左上の三角形を作成するいくつかの方法の詳細な説明

>>:  Dockerイメージが消える問題を解決する

推薦する

Linux サーバーに Python3 をインストールする 2 つの方法

最初の方法Alibaba Cloud および Baidu Cloud サーバーが利用可能です。 ! ...

Tomcat の 404 エラーの解決方法の詳細な説明

Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...

MySQL Binlog ログの読み取り時によくある 3 つのエラー

1. mysqlbinlog: [エラー] 不明な変数 'default-character...

数字当てゲームを実装するための純粋なJavaScript

100 以内の自然数をランダムに選択し、プレイヤーに 10 ラウンド以内にその数を推測させる数字推...

Docker データ管理 (データ ボリュームとデータ ボリューム コンテナー) の詳細な説明

実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共有す...

数千万のMySQLデータ量を素早くページ分割する方法

序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...

Vue での this.$set の使用に関する詳細な説明

目次Vue での this.$set の使用使用なぜレスポンシブなのか?分析する要約するVue での...

Vue.js ドロップダウン コンポーネント付きテキストボックス

ドロップダウン付きのテキストボックスを使用すると、ユーザーはドロップダウン リストから入力を選択した...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...

英語: リンクタグはIEでhrefを自動的に補完します

英語: IE では、リンク タグによって href が自動的に補完されます。 Ajax Link T...

MySQL 8.0.13 手動インストールチュートリアル

この記事では、MySQL 8.0.13の手動インストールチュートリアルを参考までに紹介します。具体的...

泡の小さな鋭角効果を実現するCSS

効果画像(境界線の色が薄すぎるので、{} で囲みます): { }参考リンク Pure CSS バブル...

HTMLのフォントがline-heightを指定しても垂直方向に中央揃えできない問題の解決方法を詳しく説明します

による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...

Mysqlのインポートとエクスポート時に発生する問題の解決

背景すべての業務を Docker の運用管理に移行してから、一連の落とし穴に遭遇しましたが、今回は ...