【发布时间】:2015-10-07 11:27:33
【问题描述】:
有没有办法用 CSS 选择所有自定义元素?我想让所有自定义元素默认成为块元素(大多数浏览器默认将它们内联),然后根据需要覆盖它。
我的规则可能如下所示:
*::custom {
display: block;
}
所有自定义元素在标准中都有破折号,所以我可以利用它创建一个规则,但在许多/大多数当前浏览器上会比较慢,因为它需要使用正则表达式。如果有内置的选择器,这可能会更快。
【问题讨论】:
-
那么您的项目中有多少自定义元素? 5、10、20?手动编写规则就更简单了:
x-one, x-two, ..., x-xxx {display: block;}. -
AFAIK,没有这样的伪选择器,CSS 也不支持选择器中的部分通配符名称(尽管这是一个明显的增强)。
-
“大多数浏览器默认内联”:这是因为
display的初始值是inline。 -
不能加
class或data-属性吗? -
@divinecomedian,正如 Angular 文档所说(这与指令有关,但也可以应用于元素/属性,因为指令就是这样):“在创建组件时使用元素控制模板。这种情况的常见情况是您为模板的某些部分创建域特定语言。当您用新功能装饰现有元素时使用属性。"
标签: html css css-selectors custom-element