Css 边界不在IE中工作

Css 边界不在IE中工作,css,css-selectors,border,Css,Css Selectors,Border,我想将边框应用于 具有.xforms required类,而不是span元素或 输入元素,这些元素是具有的元素的后代。需要xforms类 所以我想出了 .xforms-required:not(span), .xforms-required input { border: 1px solid gold !important; } 这是你的电话号码 它在Firefox18.0.1中工作正常,在IE中不工作(在IE8中测试)。 不确定CSS选择器或border属性是否有问题 面对IE中

我想将边框应用于

  • 具有
    .xforms required
    类,而不是
    span
    元素或
  • 输入
    元素,这些元素是具有
    的元素的后代。需要xforms
  • 所以我想出了

    .xforms-required:not(span), .xforms-required input {
        border: 1px solid gold !important;
    }  
    
    这是你的电话号码

    它在Firefox18.0.1中工作正常,在IE中不工作(在IE8中测试)。 不确定CSS选择器或
    border
    属性是否有问题

    面对IE中JSFIDLE的一些问题,因此为此编写了一个简短的代码片段

    <html>
        <body>
            <style>
                .xforms-required:not(span), .xforms-required input {
                    border: 1px solid gold !important;
                }
            </style>
            <span class="xforms-required">
                <input>  // This should get border 
            </span>    
            <input class="xforms-required"> // This should get border    
        </body>
    </html>  
    
    
    .xforms required:not(span),.xforms required输入{
    边框:1件纯金!重要;
    }
    //这应该是边界
    //这应该是边界
    
    对不起,这可能是个愚蠢的问题,但不是一个CSS的家伙,所以



    正如所指出的,IE9+中支持
    :not()
    ,在IE7+版本中实现相同功能的任何其他替代方案将注释转换为答案:IE8不支持
    :not()
    。您需要找到其他方法来定义选择器。可能是
    input.xforms-required、.xforms required input

    那么:

    input.xforms-required, .xforms-required input {
        border: 1px solid gold;
    }
    
    可选:

    span.xforms-required {
        border: none;
    }
    

    IE8只支持css 2.1,您的选择器是css 3。您可以使用jQuery来解决它。
    :not()
    在IE 9下不受支持-@ZippyV:我很想使用jQuery,但不能使用它。需要纯CSSsoultion@Adrift:Oops在IE 7+版本中工作的任何其他替代方案