这对你来说可能是一个愚蠢的问题,但我真的很好奇如果使用jquery在我的css中获取*
会怎样?例如:
的CSS:
* {
background: #fff;
}
jquery的:
$(document).ready(function(){
$("*").css("color","#999999");
});
我已经测试了它,它在jsfiddle中不起作用。 xD在我的项目中它有点工作。我的所有元素都有style="..."
。
那边有工作吗?我应该为它设置另一个课吗?改变这种情况的最佳方法是什么?请不要告诉我更改我的css文件。我尽可能不想更改我最初没有做的文件。任何建议都非常感谢。非常感谢你!
答案 0 :(得分:1)
因为你没有导入jQuery库,它在你的小提琴中不起作用, 并且您设置了字体颜色而不是背景颜色。
但它运作正常。
<强> All selector doc 强>
示例强>
$(document).ready(function(){
$("*").css("background-color","blue");
});
*{
background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
答案 1 :(得分:1)
请不要使用
* {
background: #fff;
}
所有将在您感谢之后使用代码的开发人员。 CSS主要基于继承和行为级联。如果您希望所有内容都具有白色背景,则只需将其设置为最上层元素,然后为后代设置异常。例如
body {
background-color: #fff;
}
如果要选择页面上的每个元素,例如可以
$('body').find("*").css("color", "#000");
然而,这可以以类似的方式处理,而不需要使用jQuery遍历DOM:
body {
background-color: #fff;
color: #000;
}
然后再次,如果你想让一些后代以不同的方式行事,那么另外设置它们,低于你在CSS中的这个设置。
答案 2 :(得分:1)
如果您不想更改原始文件,您也可以只使用覆盖加载原始文件下方的其他CSS文件。你可能也是如此。
_bad()
使用jQuery或JavaScript覆盖有一个巨大的缺点,即所有元素都将内联附加的样式,这是不必要的。
除了定位/** overrides.css **/
* {
background: red
}
之外,您还可以将与语言代码匹配的特定类添加到*
,例如通过JS添加body
。那么你的CSS就可以是:
body.lang-de
在JS中,您可以使用class manipulation methods:
body.lang-de * {
background: red;
}