css不是课程选择?

7 css

我的相当大的演示中有一个错误,我认为特殊类下的所有div将用于对齐某些东西.现在我意识到我需要在我要对齐的部分之外添加一个额外的div但是在里面.special.

我怎么写.special div [NOT someclass]?或者没有办法做到这一点,我需要重写很多HTML?

Chu*_*uck 8

CSS3包括not()选择器.唯一的问题是(你猜对了)没有IE兼容性.如果您愿意从IE <9用户那里购买Javascript,您可以获得与IE9.js的IE兼容性.


小智 5

以上两个答案都是+1.我将添加我能够逃脱一些事情,但写在css块中以撤消效果

some-type: inherit;
Run Code Online (Sandbox Code Playgroud)


Den*_*s G 1

我会使用 jQuery 或其他一些 Javascript 框架,选择器只是摇滚,而不是类 XY 相当容易实现。正如佩卡指出的那样,我不确定你想要针对哪些兄弟。几乎所有浏览器都实现了 getElementsByClassName()(您知道哪一个不起作用,不是吗?)。

在 devshed 上找到了一个相当漂亮的解决方案,也可以使其在 IE 中工作:

onload=function(){
if (document.getElementsByClassName == undefined) {
    document.getElementsByClassName = function(className)
    {
        var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
        var allElements = document.getElementsByTagName("*");
        var results = [];

        var element;
        for (var i = 0; (element = allElements[i]) != null; i++) {
            var elementClass = element.className;
            if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
                results.push(element);
        }

        return results;
    }
}
}
Run Code Online (Sandbox Code Playgroud)

您现在需要做的就是遍历所有 div 类并否定您不想要的类。