4

私はかなり大きな会社で働き始めたばかりで、私のグループはすべての公開 Web サイトを管理しています。私は今日初めてスタイル シートを開き、IE のバグを修正するために voice-family ハックを使用しているデザイナーの例を 20 以上見てきました。(グラフィック デザイナーがあらゆる種類のマークアップを作成することを許可する理由がわかりません)

voice-family ハッキングの一般的な世論は何ですか。カスタム スタイル シートを含めるために IE の条件付きコメントを使用することをお勧めする時間はありますか?

4

4 に答える 4

6

「音声ファミリ」ハックは、Tantek Celik Box Model Hackとしてよく知られていますが、これらのブラウザーでのCSS標準の実装が正しくないため、Windows上のIE4/5から特定のCSSルールを非表示にするために使用されます。これは、ブラウザのスニッフィングや複数のスタイルシートに頼ることなく、すべてのブラウザに最も正確な単一のスタイルシートを提供する試みです。

皮肉なことに、このハッキングは、古いブラウザ、新しいブラウザ、および将来のブラウザで機能する標準準拠のスタイルシートを開発するための多くの工数(数か月?)の実験とテストの結果です。これは、CSS標準へのブラウザー準拠の恐ろしい状態を補うために作成されたいくつかの回避策の1つです。

標準を(可能な限り)順守することが価値のある目標である理由と、ブラウザーのスニッフィングと複数のスタイルシートを使用すると開発者にとって頭痛の種になる理由の詳細については、JeffreyZeldmanの「Web標準を使用した設計」を参照してください。

http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/

一例は、ブラウザとオペレーティングシステムの組み合わせに追いつくための軍拡競争であり、携帯電話やその他のブラウジング機能を備えた将来のデバイスは言うまでもありません。検出コードは、新しい組み合わせごとに変更する必要があります。多くのブラウザがNetscape Navigatorになりすますため、検出はフルタイムの仕事になる可能性があります。

もう1つの優れたリファレンスは、Web Standards Projectです。このプロジェクトには、このテーマに関する多くの優れた情報とチュートリアルがあります。

http://www.webstandards.org/

コーディングスタイルを標準準拠に移行する場合、通常、将来のブラウザーのリリースについてそれほど心配する必要はありません。はい、それでもそれらに対してテストする必要がありますが、それぞれのカスタムスタイルシートを作成してテストする必要はありません。

于 2008-10-01T16:45:31.020 に答える
4

あらゆる種類のハッキングは、将来のブラウザーで意図しない影響を与える傾向があるため危険です (多くは IE7 で壊れました)。CSS を安全にフィルタリングする方法は次のとおりです。

  • (IE のみ) 条件付きコメントの使用。これらは常に Microsoft ブラウザーで機能し、コメント内にあるため、他のすべてのブラウザーでは常に無視されます。
  • 機能のターゲティング - 最新のブラウザーでのみサポートされている CSS セレクターを使用して、古いブラウザーがルールを解釈しようとするのを阻止します。ただし、ブラウザが構文を認識しても、正しく処理できるとは限りません。ここで保証するのは、古いブラウザがこれらのルールをレンダリングしようとしないことであり、最新のブラウザが正しく実行することではありません

可能な限り、すべての主要なブラウザーで正しくサポートされている CSS のサブセットを使用してください。これは、古いバグの多いブラウザーがユーザーの無視できる割合にまで低下するにつれて、時間の経過とともに改善されています.

于 2008-10-01T17:40:47.830 に答える
1

このようなハッキングに対する私の感覚は、できれば避けるべきだということです。そのような悪ふざけに頼ることなく、ブラウザー間で正しいレンダリングを取得できる場合は、正しい方法で行う必要があります。ただし、ブラウザーの CSS 実装にバグがある場合があり、このようなハックを使用する必要があります。

于 2008-10-01T14:56:32.967 に答える
1

条件付きインクルードを使用しないでください。代わりに CSS セレクターを使用してください。よりエレガントです。個々のブラウザー (および/またはバージョン) でクラスをターゲットにすることができます。

。私のクラス { ... }

.ie6 .myClass { ... }

于 2008-10-01T15:52:37.887 に答える