1

私はHTML5 ボイラープレートを使用していますが、 Selectivizrを使い始めた今まで問題はありませんでした。私が理解していない何らかの理由で、IE8 は Javascript エラーを生成しました。

htmlいくつかのテストの後、使用しているブラウザーに応じてクラスを追加する条件付きブラウザー コメント (ボイラープレート内) の使用を停止すると、エラーがなくなったことに気付きました。

<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

私が言ったように、上記のコードを削除して<html>すべてを置き換えると、正常に動作します。

条件付きコメントを完全に削除したくないので (ブラウザー固有の CSS を作成するのに役立ちます)、同じことを考えましたが、それを適用する代わりに、次htmlのようにします<body>:

<!--[if lt IE 7]> <body class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <body class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <body class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <body class="no-js" lang="en"> <!--<![endif]-->

すべて問題ないようですが、私は初心者なので、この回避策が問題ないことを確認したいと思いますか? それともマイナス面はありますか?

トピック外のもう 1 つの質問: ユーザーが Firefox または Chrome でサイトにアクセスした場合、何bodyが「使用」されるのでしょうか? bodyクラスなしで「使用」すると思いますか?

私のロジックでは、body他のすべてのブラウザーで確実に「使用」するために、別の条件付きコメントを書くように指示されますが、公式のボイラープレート テンプレートにはそのようなコメントは存在しないため、必要ないと思います...なぜですか?

4

1 に答える 1

3

実際には、最初は<body> タグにありました。:)

2 つの小さな理由で移動しました。

  • IE6 の複数のクラス名のバグ
  • 独自のクラスに body 要素を使用する CMS。

クラスを<body>問題なく移動できます。HTML 要素をそのままlang=enにして、クリーンアップすることもできます。

詳細はこちら: https://github.com/h5bp/html5-boilerplate/issues/44

于 2011-11-10T17:25:57.233 に答える