Jquery 我可以阻止CSS应用于特定元素吗?

Jquery 我可以阻止CSS应用于特定元素吗?,jquery,css,Jquery,Css,我想这是一个奇怪的问题。。。我甚至不知道这是不是个好主意。我是否可以创建一个元素并说,“我不在乎之前的任何样式表都说了什么,这里是我想要的样式?” 举个例子,假设我有一个样式表,上面写着: button { /* whole bunch of stuff here, not even sure what all */ } .someClass button { /* and some other crap here*/ } .anotherClass button { /*

我想这是一个奇怪的问题。。。我甚至不知道这是不是个好主意。我是否可以创建一个元素并说,“我不在乎之前的任何样式表都说了什么,这里是我想要的样式?”

举个例子,假设我有一个样式表,上面写着:

button {
   /* whole bunch of stuff here, not even sure what all */
}

.someClass button {
   /* and some other crap here*/
}

.anotherClass button {
  /* and more here */
}
然后我想编写一些Javascript,它将执行以下操作:

function insertConstantButton(elemId) {
    var unchangeableButton = $('<button/>');
    unchangeableButton.css('whatIReallyWant', 'etc');
    $("#" + elemId).append(unchangeableButton);
    andNowIMagicallyStopCSSFromApplyingTo(unchangeableButton);
}
函数insertConstantButton(elemId){
var unchangablebutton=$('');
css('whatIReallyWant','etc');
$(“#”+elemId).append(不可更改按钮);
而现在,从应用到(不可更改的按钮)开始,以逻辑方式显示TopCs;
}
就像我说的,也许这是个坏主意。。。只是想知道。。。我有一些代码创建了这个按钮,它看起来很棒,但是突然我让它出现在一个不同的容器类下,而不是它通常出现的,而且(令人惊讶的是)它看起来完全不同。这是我不想要的。呵呵

更新:是的,有点知道这是个坏主意,只是想知道这是否可能。我并不感到惊讶,因为它会有点,呃,破坏CSS:)

对于那些想要解决一般问题而不是假设解决方案的人来说:我有一些代码,可以按照UI团队希望的方式添加外观一致的滚动按钮。我现在正试着把它们放在一个模态对话框中,模态对话框在样式表中有一堆东西,比如“.ourcompanypoup按钮{stuffidontwanntonmycrollbars;}”覆盖每一个按钮将是一个PITA

我可能会将样式表更改为“.ourcompanypoup按钮:not(.myPreciousScrollButtons)”。。。这会让er完成,但可能会像其他任何事情一样成为可维护性的噩梦。嗯…

简单地说:不

无论如何,CSS都将被应用。您可以执行以下操作:

  • 覆盖不需要的CSS
  • 将不需要的css设置为不包含按钮的特定css
我建议:

jQuery

function insertConstantButton(elemId) {
        var unchangeableButton = $('<button class="dontchange" />');
        unchangeableButton.css('whatIReallyWant', 'etc');
        $("#" + elemId).append(unchangeableButton);
    }
function insertConstantButton(elemId) {
        var unchangeableButton = $('<button id="dontchange" />');
        $("#" + elemId).append(unchangeableButton);
    }
如果这不够优雅,给按钮一个ID并在样式表中设置样式。 jQuery

function insertConstantButton(elemId) {
        var unchangeableButton = $('<button class="dontchange" />');
        unchangeableButton.css('whatIReallyWant', 'etc');
        $("#" + elemId).append(unchangeableButton);
    }
function insertConstantButton(elemId) {
        var unchangeableButton = $('<button id="dontchange" />');
        $("#" + elemId).append(unchangeableButton);
    }
简单地说:不

无论如何,CSS都将被应用。您可以执行以下操作:

  • 覆盖不需要的CSS
  • 将不需要的css设置为不包含按钮的特定css
我建议:

jQuery

function insertConstantButton(elemId) {
        var unchangeableButton = $('<button class="dontchange" />');
        unchangeableButton.css('whatIReallyWant', 'etc');
        $("#" + elemId).append(unchangeableButton);
    }
function insertConstantButton(elemId) {
        var unchangeableButton = $('<button id="dontchange" />');
        $("#" + elemId).append(unchangeableButton);
    }
如果这不够优雅,给按钮一个ID并在样式表中设置样式。 jQuery

function insertConstantButton(elemId) {
        var unchangeableButton = $('<button class="dontchange" />');
        unchangeableButton.css('whatIReallyWant', 'etc');
        $("#" + elemId).append(unchangeableButton);
    }
function insertConstantButton(elemId) {
        var unchangeableButton = $('<button id="dontchange" />');
        $("#" + elemId).append(unchangeableButton);
    }

您可以使用
!重要的
修改器,但您需要将不希望被覆盖的每个样式标记为
!重要信息

button {
  background-color: red;
}

.what-i-really-want {
  background-color: blue !important;
}

function insertConstantButton(elemId) {
  var unchangeableButton = $('<button/>');
  unchangeableButton.addClass('what-i-really-want');
  $("#" + elemId).append(unchangeableButton);
  andNowIMagicallyStopCSSFromApplyingTo(unchangeableButton);
}
按钮{
背景色:红色;
}
.我真正想要的是什么{
背景色:蓝色!重要;
}
函数insertConstantButton(elemId){
var unchangablebutton=$('');
addClass('what-i-real-want');
$(“#”+elemId).append(不可更改按钮);
而现在,从应用到(不可更改的按钮)开始,以逻辑方式显示TopCs;
}

您可以使用
!重要的
修改器,但您需要将不希望被覆盖的每个样式标记为
!重要信息

button {
  background-color: red;
}

.what-i-really-want {
  background-color: blue !important;
}

function insertConstantButton(elemId) {
  var unchangeableButton = $('<button/>');
  unchangeableButton.addClass('what-i-really-want');
  $("#" + elemId).append(unchangeableButton);
  andNowIMagicallyStopCSSFromApplyingTo(unchangeableButton);
}
按钮{
背景色:红色;
}
.我真正想要的是什么{
背景色:蓝色!重要;
}
函数insertConstantButton(elemId){
var unchangablebutton=$('');
addClass('what-i-real-want');
$(“#”+elemId).append(不可更改按钮);
而现在,从应用到(不可更改的按钮)开始,以逻辑方式显示TopCs;
}

使用一个ID。一个ID将覆盖1500万个类。

使用一个ID。一个ID将覆盖1500万个类。

不,css将应用于它,除非你覆盖css所做的每一件事。我确信在这方面存在的问题不止这些,但它们可能很难找到(难以选择关键字)。无论如何,答案是“不”,你应该提出一个描述原始问题的问题,而不是假设的解决方案,这是一个死胡同。使用
创建一个覆盖所有CSS的类!重要信息
,请不要使用
!重要信息
,适用于每个项目。我是那个必须维护代码的人,我会非常生气的。简单地说,你处理问题的方法是错误的。换一种方式。哦,如果它能让内森晚上睡得更好。。。我不用!重要,永远:)不,css将应用于它,除非你覆盖css所做的每一件事。我相信在这方面有比现有问题更多的问题,但它们可能很难找到(难以选择关键字)。无论如何,答案是“不”,你应该提出一个描述原始问题的问题,而不是假设的解决方案,这是一个死胡同。使用
创建一个覆盖所有CSS的类!重要信息
,请不要使用
!重要信息
,适用于每个项目。我是那个必须维护代码的人,我会非常生气的。简单地说,你处理问题的方法是错误的。换一种方式。哦,如果它能让内森晚上睡得更好。。。我不用!重要,曾经:)正如我在更新中提到的,这可能是做我想做的事情的最快方法。。。我只是在争论这是否会是一场噩梦。不管怎么说,我可能会这么做,但考虑到最后期限和所有(哎呀,我是不是大声说了?)进一步思考后,我认为这实际上是可以的。这意味着弹出式样式现在必须知道它可能有滚动按钮。但是样式表现在读起来非常自然:“弹出窗口中的任何按钮都可以获得这种样式,除了滚动按钮”。正如我在更新中提到的,这可能是我想做的最快的方式。。。我只是在争论这是否会是一场噩梦。不管怎么说,我可能会这么做,但考虑到最后期限和所有(哎呀,我是不是大声说了?)进一步思考后,我认为这实际上是可以的。这意味着弹出式样式现在必须意识到它可能