CSSのハックやブラウザの検出は良いですか?



Answers

3つ目の選択肢があります:

ブラウザの検出とCSSハッキングの必要性を最小化または排除します。

私はあなたのために(ウィジェットなどのための)ブラウザの違いを世話するjQueryプラグインのようなものを使用しようとします。 これはすべてを気にするものではありませんが、多くのことを行い、費やした人に複数のブラウザをサポートする努力を委譲しています。

その後、私はこれらの司祭に従います:

  • 私が最小限のCSSと呼ぶものを使用してください。つまり、広くサポートされている機能のみを使用します。
  • 必要に応じて、複雑なレイアウトのテーブルを使用します。 あなたはこれが好きではないかもしれませんが、並列レイアウトのようなことを率直に行うには、テーブルは10年後のブラウザで動作し、divを絶対配置、浮動小数点などの組み合わせで動作させるよりも、
  • DOCTYPEを追加してIE6を強制的にクォークモードにするのではなく、強制的に強制する 。 私はあなたの人生をいかに簡単にすることがどれくらい簡単かを強調することはできませんが、奇妙なことに多くの人々はまだそれをやっていないようです。
  • 正しいDOCTYPEを使用するか、他のボックスモデルのハックではなくネストされたブロック要素を使用して、 ボックスモデルの問題を最小限に抑えます 。 そして
  • 必要に応じて、関連するブラウザ用の余分なCSSファイルを含めます。 私は生成されたページ(それは、それに直面して、それらのほとんどです)でクライアントではなく、サーバー上でこれを行う傾向があります。 私が取り組んできた多くのプロジェクトにIEfix.cssファイルがあります。

その後、ブラウザを階層に分割します。

ティア1:

  • Firefox 3;
  • IE7。

私のウェブサイトこれらで動作しなければなりません

ティア2:

  • Firefox 2;
  • サファリ;
  • オペラ;
  • クロム。

私のウェブサイトこれらの上動作するはずです。 これは一部の人々を怒らせるかもしれませんが、率直に言って、これらのブラウザの市場占有率は非常に低く、Firefox 3やIE7ほど重要ではありません。

Tier 3:

  • IE6;
  • その他。

たとえば企業の要件でない限り、これらの作業には最小の努力が払われます。 IE6は悪夢だが、12月の市場シェアは20%で急速に低下している。 さらに、 PaypalのようなサイトがIE6 をブロックしGoogleがIE6を落とすようにユーザーに指示するように、IE6の使用を嫌気したり禁止したりするための有効なセキュリティ上の懸念(金融Webサイトなど)があります

Question

一般的に、私はインターネットを見ると、一般的に、すべてのブラウザでウェブサイトを同じように見せるためにCSSハックを使用していることがわかります。 個人的には、これらのハックをすべて見つけてテストするのにかなり時間がかかることがわかった。 それぞれの変更は、4つ以上のブラウザでテストしなければならないことを意味します。

約1年前に、私は他の主要サイト(Yahoo、Google、BBCなど)が使用しているものをインターネットで調べ、そのほとんどが何らかの形式のブラウザ検出(JS、HTML if文、サーバーベース)を行っていることがわかった。 私もこれをやり始めました。 私が最近取り組んだほとんどのサイトでは、jQueryを使用しているので、組み込みのブラウザ検出を使用します。

あなたがこれらのどちらかを使用する、または使用しない理由はありますか?




よくハックするのはブラウザのほうが速いですが、ブラウザの検出により、正しい構造になっていれば、ブラウザでより読みやすくなります。 ブラウザの検出を可能にし、同時にブラウザ間でCSSを共有することができ、別々のCSSまたは別のCSSを持っている場合は、ブラウザ検出を使用します。これは初心者が理解できるものです。あなたがそれらを知らないなら、理解するのは難しいです




ブラウザのサーバー側を検出すると何が問題になりますか? 非常に効果的で絶対的ではないようです(ユーザーエージェント文字列を変更するユーザーは除外します)。 PHPを使用してページのスタイルシートを選択することも、要求ごとに動的に生成することもできます。他の言語でファイルに直接出力させ、ヘッダを手動で設定できるかどうかはわかりませんが、ユーザーエージェントを特定するため、これらのオプションのいずれかはおそらくサーバー側の環境で実行可能です。







どちらも使用しないようにしています。 多くの場合、IEの問題はマークアップの構造をやや単純化することで回避できます。

また、 Eric MeyerのようなまともなCSSリセットを使用すると役立ちます。

私は、IE6とIE7の最新のセキュリティ問題を考えると、IE6のサポートをゆっくりとしているものの、確かにIE6のサポートを中止しています。私たちが偽のブラウザをサポートしていれば、人々のブラウジング習慣やブラウザの好みを変更するつもりはありません。




あなたのコードを聞いてください! ケント・ベックはそれを言います。 そして、ウイングツンでは、彼らは言う:曲がる水のようなもの! か何か。

IE5にhtml5を理解させるためのCSS Hackがあります: http : //blog.whatwg.org/styling-ie-noscript

JSを使って同じことができます: http : //blog.whatwg.org/supporting-new-elements-in-ie

5ページのハック説明と5行のよく分かりやすいコードを比較してください。 だから、JSを使ってください。

ものには利点と欠点があります。 そして、問題の理解と実際のコードの優雅さが方法をリードします。




私は、FirefoxやSafariなどの標準準拠のブラウザ用のスタイルシートを用意し、 条件付きコメントを使用てInternet Explorerを検出し、IE固有の修正や上書きを含む追加のCSSファイルを提供するのが一般的です。




Links