我有以下css:
else element {node-name($node)}
{
$node/@*[normalize-space(.)],
local:remove-empty-elements($node/node())
}
我想选择页面中的所有元素,除了元素及其子类:not(.myid_templates_editor_element ){
margin: 0;
padding: 0;
list-style-type: none;
font: 11px/16px 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #444;
}
。我上面的代码不起作用。我怎么用css做到这一点?
答案 0 :(得分:3)
我需要HTML来解决这个问题。我可以考虑一个可能的案例:
你正在使用一些CSS框架,你自己的样式文件是之前的框架css文件。
在这种情况下,你应该修复它或尝试
:not(.myid_templates_editor_element){
margin: 0 !important;
padding: 0 !important;
list-style-type: none !important;
font: 11px/16px 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
color: #444 !important;
}
无论如何,你想要做的是一个非常糟糕的做法。
答案 1 :(得分:2)
根据我的理解,您希望将规则应用于DOM树中除.myid_templates_editor_element
及其子项(.myid_templates_editor_element *
)之外的每个元素。
然而,CSS :not
does not support combination selectors,因此:not(.myid_templates_editor_element):not(.myid_templates_editor_element *)
之类的内容是不可能的。
您需要找到一种解决方法,即将规则设置为所有元素,然后重置某些元素:
* {
margin: 0;
padding: 0;
list-style-type: none;
font: 11px/16px 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #444;
}
.myid_templates_editor_element,
.myid_templates_editor_element * {
margin: auto;
padding: auto;
...
}
Here's an example in JSFiddle使用border-color。
答案 2 :(得分:1)
*{
color:red
}
:not(.myid_templates_editor_element){
margin: 0;
padding: 0;
list-style-type: none;
font: 11px/16px 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: green;
}
<div>
first apply
</div>
<span>
first apply
</span>
<ul>
<li>first apply</li>
</ul>
<div class="myid_templates_editor_element">
not to apply on me
</div>