2

基本的に、このコードが大丈夫かどうか知りたいのですが、

<body id="some_id" <!--[if lt IE 7 ]>class="ie6"<![endif]--> >
</body>
4

4 に答える 4

6

いいえ。HTMLコメントをタグ内に含めることはできません。試す:

<!--[if gte IE 7]>--> <body id="some_id"> <!--<![endif]-->
<!--[if lt IE 7]> <body id="some_id" class="ie6"> <![endif]-->
于 2010-08-20T14:38:45.227 に答える
2

いいえ、必要ありません。常にクラスをbody要素に指定し.ie、IE6を除くすべてのブラウザーでCSS定義を空のままにします。

.ie6 {
<!--[if lt IE 7]-->
    ... ugly ie6 hack ...
<!--[endif]-->
}
</style>
<body class="ie6">
于 2010-08-20T14:41:57.540 に答える
1

いいえ—コメントをタグ内に挿入することはできません。

于 2010-08-20T14:38:58.490 に答える
0

いいえ、できません。そのため、タグとそのすべての属性を繰り返す必要があります。

多くの人が<html>タグにブラウザ識別子クラスを追加します。タグを使用するbodyことも問題ありませんが、属性に含まれる文字数が最も少ないタグを使用します。

ワードプレスの「body」タグは次のようになります

<body class="home page page-id-38 page-template page-template-template-homepage page-template-template-homepage-php woocommerce-demo-store storefront-full-width-content right-sidebar woocommerce-active has-site-logo">

したがって、クラスを<html>タグに入れるので、その長い文字列を繰り返す必要はありません。

<!DOCTYPE html>
<!--[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> <!--<![endif]-->
    <head>
    </head>
    <body class="home page page-id-38 page-template page-template-template-homepage page-template-template-homepage-php woocommerce-demo-store storefront-full-width-content right-sidebar woocommerce-active has-site-logo">

タグは次のhtmlようになります。

<html class="" lang="en" xml:lang="en" dir="ltr" prefix="og: http://ogp.me/ns#" itemscope itemtype="http://schema.org/Webpage">

<body>この場合、クラスをタグに入れることができます。

<!DOCTYPE html>
<html lang="en" xml:lang="en" dir="ltr" prefix="og: http://ogp.me/ns#" itemscope itemtype="http://schema.org/Webpage">
    <head>
    </head>
    <!--[if lt IE 7 ]> <body class="ie6"><![endif]-->
    <!--[if IE 7 ]>    <body class="ie7"><![endif]-->
    <!--[if IE 8 ]>    <body class="ie8"><![endif]-->
    <!--[if IE 9 ]>    <body class="ie9"><![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--> <body> <!--<![endif]-->

このように、オプティオではなく、巨大な文字列を複数回繰り返すようなものがあった場合。

<!DOCTYPE html>
<html class="" lang="en" xml:lang="en" dir="ltr" prefix="og: http://ogp.me/ns#" itemscope itemtype="http://schema.org/Webpage">
<head>
</head>
<body class="home page page-id-38 page-template page-template-template-homepage page-template-template-homepage-php woocommerce-demo-store storefront-full-width-content right-sidebar woocommerce-active has-site-logo">

それなら私はおそらくjavascriptを使うでしょう

<!DOCTYPE html>
<html class="" lang="en" xml:lang="en" dir="ltr" prefix="og: http://ogp.me/ns#" itemscope itemtype="http://schema.org/Webpage">
<head>
<script>
    (function(){
        var d=document,
            h=d.documentElement,
            v = 3,
            p = d.createElement('p'),
            i = p.getElementsByTagName('i'),
            u;
            while (
                p.innerHTML =  '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
                i[0]
            );
            h.className += (v > 4 ? ' ie'+v : '');
    })()
</script>
</head>
<body class="home page page-id-38 page-template page-template-template-homepage page-template-template-homepage-php woocommerce-demo-store storefront-full-width-content right-sidebar woocommerce-active has-site-logo">

このスクリプトは、James Padolseyのhtmlスクリプトの修正バージョンであり、タグにクラスを追加します。

于 2016-04-05T11:11:21.713 に答える