2

HTML5ボイラープレートのIEのhtmlタグ条件のこの部分にこの部分がある理由の説明を探していました:

<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

これがどのように機能するかを理解できるようにお願いします。この上の条件は理解できますが、上の条件と異なるのはなぜですか? この条件がそれより上にあるものと比較して何をしているのかわかりません。

私が使用するものを理解するのを手伝ってくれてありがとう。

4

1 に答える 1

2

基本的に、最後の部分はIEバージョン9以降、および他のすべてのブラウザーで使用されます。ただし、HTMLボイラープレートは最適化に深く関わっているため、構文は短く、単純ではありません。

私はそれを説明する記事を見つけました、私はあなたが全部を読むことをお勧めします:

http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-nether/

これが私の提案した解決策です:

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

これは、記事で読むことができる問題のために、実際には後で更新されました。

どうやら奇妙な構文の一部はDreamweaver(!)のバグに関係しているようです。抜粋は次のとおりです。

これが新しい推奨事項であり、HTML5ボイラープレートで使用されているものです。

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->

基本的に、最後の行は「IE9+またはIEでない場合にこれを行う」と言っています。以下の箇条書きのいくつかはあなたの質問に直接関係していませんが、とにかくそれらを含めます。

なんで?

  • これにより、StoyanStefanovとMarkusLeptienによって発見されたファイルブロックの問題が修正されます。
  • 上記の問題も修正する空のコメントを回避します。
  • WordPressやDrupalなどのCMSは、bodyクラスをより頻繁に使用します。
  • これにより、そこへの統合が簡単になります。html4では検証されませんが、html5では問題ありません。それに対処します。
  • マークアップに基づいてページ固有のJavaScriptを開始する手法とうまく連携します。
  • Modernizr(およびDojo)と同じ要素を使用します。いい感じです。
  • おそらくそこにno-jsを入れるか、何か他のものを入れるので、そこに空のクラスを残しました。そうでない場合は、削除します。
  • また、その最後のタグの周りの余分なコメントが奇妙に見える場合は、通常の!IE条件付きコメントをチョークするDreamweaverのせいにします。

この問題の詳細については、https ://github.com/h5bp/html5-boilerplate/issues/425/#をご覧ください。

于 2012-11-15T19:22:15.907 に答える