2011-11-10 16 views
1

私はHTML5 Boilerplateを使用していますが、これまではSelectivizrを使用し始めた時点で問題は発生していませんでした。理解できない何らかの理由で、IE8でJavascriptエラーが発生しました。HTML5定型文+条件付きコメント

いくつかのテストの後、私は私はあなたが使用しているブラウザによって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を必ず "使用"するように条件付きコメントを書くように指示しますが、公式のボイラープレートテンプレートにはこのようなコメントは存在しません。 ?

答えて

3

実際には、<body>タグで元々持っていました。

  • IE6
  • 、自分のクラスのために体要素を使用し
  • CMS年代に複数のクラス名のバグ::)

    は、我々は2つの小さな理由のためにそれらを動かしました。

クラスをあまり問題なく<body>に移動できます。また、HTML要素にlang=enのままにしておくこともできます。ここ

もっとdeets:https://github.com/h5bp/html5-boilerplate/issues/44

また
+0

あなたはIE8の問題についてselectivizrでチケットを提出することができれば、あなたがする必要があります。 :) –

+0

それを調べる時間をとってくれてありがとう! 'body'タグを使用します+ selectivizrでチケットを発行し、問題を解決できる場合は変更を元に戻します。 – Andrej