使用<! - [if IE 7]>语句替换HTML元素的正确语法是什么? - >

时间:2010-06-29 12:44:14

标签: html internet-explorer

我需要在IE7中使用与其他元素略有不同的HTML元素,这是我到目前为止所拥有的:

<p>
        <label>&nbsp;</label>

        <!--[if IE 7]>
        <span class="progressIndicator" style="display: none;"></span>
        <button type="submit" class="submit" value="" id="qsubmit">SEND</button>
            <![endif]--> 

            <span class="progressIndicator" style="display: none;"></span>
        <button type="submit" class="submit" value="" id="qsubmit">&nbsp;</button>

    </p>

但这只会显示两次按钮,一次显示正确的值,另一种按预期不起作用。

仅为IE7替换此HTML元素的正确方法是什么?

我不想浏览器嗅探。

谢谢:)

2 个答案:

答案 0 :(得分:2)

像这样:

    <!--[if IE 7]>
    <span class="progressIndicator" style="display: none;"></span>
    <button type="submit" class="submit" value="" id="qsubmit">SEND</button>
    <![endif]--> 



    <!--[if !(IE 7)]><!-->
    <span class="progressIndicator" style="display: none;"></span>
    <button type="submit" class="submit" value="" id="qsubmit">&nbsp;</button>

    <!--<![endif]--> 

答案 1 :(得分:1)

将非IE7内容放在downlevel-revealed conditional comment中(但请注意,该文章中MS使用的语法是不必要的无效HTML)。从问题中看似冗余的标记中简化出来:

<p>
    <label>&nbsp;</label>
    <span class="progressIndicator" style="display: none;"></span>
    <button type="submit" class="submit" value="" id="qsubmit">
        <!--[if lt IE 8]>
            SEND
        <![endif]--> 
        <!--[if gte IE 8]><!-->
            &nbsp;
        <!--<![endif]-->
    </button>
</p>