1

我有一个包含大量样式表的通用 CSS。我想用 jQuery 告诉一个表我必须忽略“all.css”规则,只做自己的事情。我怎样才能做到这一点?

4

4 回答 4

2

我建议使用id覆盖一般 css 选择器并填写所有默认样式的。

#table {
    //default styles
}
于 2013-07-02T21:56:11.127 回答
1

您可以使用 :not 选择器,它现在是 CSS3 标准。

https://developer.mozilla.org/en-US/docs/Web/CSS/:not

像这样使用它:

table:not(.old-style) {
    width: 666%;
    color: blue;
    background-color: red;
}

当然,不要使用这些值:P

于 2013-07-02T21:18:48.303 回答
0

当 CSS/jQuery 可以简单地做到这一点时,为什么要重写或覆盖规则。

    table:not([id="excludeThisTable"]) 
{
   /* style for any table exept #excludeThisTable */
}

我相信 jQuery 管理这个选择器。http://api.jquery.com/not-selector/http://api.jquery.com/not/

我的选择是 CSS + polyfill :( 时间比 jQuery 更短)在 CSS 中更新选择器,为旧浏览器添加 polyfill 并继续其余的

于 2013-07-02T21:08:10.523 回答
0

我会通过告诉样式不适用于您的表格(:not 运算符)或强制样式仅适用于您想要的元素(不是所有表格,但可能适用于具有类的表格)来纠正您的 CSS。

这有效,但很讨厌:

(function($){
    $.fn.getStyleObject = function(){
        var dom = this.get(0);
        var style;
        var returns = {};
        if(window.getComputedStyle){
            var camelize = function(a,b){
                return b.toUpperCase();
            }
            style = window.getComputedStyle(dom, null);
            for(var i=0;i<style.length;i++){
                var prop = style[i];
                var camel = prop.replace(/\-([a-z])/g, camelize);
                var val = style.getPropertyValue(prop);
                returns[camel] = val;
            }
            return returns;
        }
        if(dom.currentStyle){
            style = dom.currentStyle;
            for(var prop in style){
                returns[prop] = style[prop];
            }
            return returns;
        }
        return this.css();
    }
})(jQuery);

$(document).ready(function(){
    // Disable stylesheets
    $('link[rel="stylesheet"]').prop('disabled', true);
    // Get current styles
    var style=$('#mytable').getStyleObject();
    // Enable stylesheets
    $('link[rel="stylesheet"]').prop('disabled',false);
    // Apply saved styles
    $('#mytable').css(style);
});

这是一个 jsfiddle:http: //jsfiddle.net/nMcyT/

它将引导 css 附加到小提琴上。该代码基本上禁用页面上的所有样式表,获取表格的当前样式,重新启用样式表,然后将所有保存的样式作为内联样式应用于表格。

于 2013-07-02T21:35:03.730 回答