Css 带括号的选择器与什么匹配非(a)[路由链接]

Css 带括号的选择器与什么匹配非(a)[路由链接],css,angular,css-selectors,Css,Angular,Css Selectors,这是一个选择器,用于匹配routerLink指令 我知道:not(a)匹配任何不是a元素的元素,但是[routerLink]部分的意思是什么?在代码中--:not(a)[routerLink]--您的意思是:选择所有包含routerLink属性的元素,除了锚之外 括号([])表示属性选择器 <div class="somevalue"> 它使用类属性匹配所有元素 有关更多详细信息,请查看此表: 感谢@BoltClock区分两个看起来相似但不同的选择器: :not(a)[rou

这是一个选择器,用于匹配
routerLink
指令

我知道
:not(a)
匹配任何不是
a
元素的元素,但是
[routerLink]
部分的意思是什么?

在代码中--
:not(a)[routerLink]
--您的意思是:选择所有包含
routerLink
属性的元素,除了锚之外

括号(
[]
)表示属性选择器

<div class="somevalue">
它使用
属性匹配所有元素

有关更多详细信息,请查看此表:


感谢@BoltClock区分两个看起来相似但不同的选择器:

  • :not(a)[routerLink])
    永远不会匹配
    a
    元素

  • :not(一个[routerLink])
    将匹配不具有该属性的
    a
    元素。(请注意,
    :not()
    伪类中的复合选择器在选择器4中可用。)


您想做什么?“到目前为止你都做了些什么?”安舒曼:他在试图理解选择器的意思。你在开场白中没有回答自己吗?@BoltClock,我想我已经把自己扭成一个结了。这些是否相同:
:not(a)[routerLink]
vs
:not(a[routerLink])
?@Michael\u B:No.
:not(a)[routerLink])
将永远不会匹配
a
元素,
:not(a[routerLink])
将匹配(在选择器-4配置文件中)没有该属性的
a
元素。如果询问者声明
:not(a)[routerLink]
与特定的
a
元素匹配,那么就有问题了。因此,在我的示例中,
:not(a)[routerLink]
与存在
routerElement
的任何元素匹配(元素除外)。这是有道理的,但是为什么当我把
routerLink
指令放在
上时,一个
元素指令仍然有效(意味着角度与之匹配)
:而不是(a)[routerLink]
是一个实际的选择器,用于感谢你,好先生!我想这与Angular在内部的工作方式有关。如果像
[routerLink]=“/somePath”
那样插入routerLink值,当属性包装在
[]
中时,如何选择属性?似乎不起作用。我想你需要使用
ng reflect router link
而不是routerLink,这样看起来:
:不是(a)[ng reflect router link]
[class] { background-color: red; }