CSS多重:不使用混合选择器类型

CSS多重:不使用混合选择器类型,css,Css,我想用一个特殊的图标标记一个站点的外部链接。但不是针对特定的类或id a[href^="http://"]:not([href*="sitename.com"]):not(classname or id):before, a[href^="https://"]:not([href*="sitename.com"]):not(classname or id):before { content: '\f08e'; font-family: "fontawesome"; color:

我想用一个特殊的图标标记一个站点的外部链接。但不是针对特定的类或id

a[href^="http://"]:not([href*="sitename.com"]):not(classname or id):before,
a[href^="https://"]:not([href*="sitename.com"]):not(classname or id):before
{
   content: '\f08e';
   font-family: "fontawesome";
   color: #019fe0;
   padding-right: 4px;
}

但是它会标记所有的链接,即使是那些带有类名的链接。

如果你想标记一个站点的外部链接,而不是sitename.com(例如),使用一个特殊的按钮,该按钮的id名为someId(例如),这就是方法

a[href^="http://"]:not([href*="sitename.com"]):not(#someId),
a[href^="https://"]:not([href*="sitename.com"]):not(#someId) {
    /* CSS properties */
}
a[href^="http://"][href*="sitename.com"]#idName,
a[href^="https://"][href*="sitename.com"]#idName {
    /* CSS properties */
}

如果要标记指向sitename的外部链接,请使用id名为idName(例如)的特殊按钮(例如),这是一种方法

a[href^="http://"]:not([href*="sitename.com"]):not(#someId),
a[href^="https://"]:not([href*="sitename.com"]):not(#someId) {
    /* CSS properties */
}
a[href^="http://"][href*="sitename.com"]#idName,
a[href^="https://"][href*="sitename.com"]#idName {
    /* CSS properties */
}
我做了一把小提琴来演示这个答案:


如果您的意思是将classname或id作为某种选择器:

a[href^="http://"]:not([href*="sitename.com"]):not(#someId):not(.some-class),
a[href^="https://"]:not([href*="sitename.com"]):not(#someId):not(.some-class) {
    /* CSS properties */
}

感谢您的帮助,但我认为我的问题是代码无法工作,因为id或类位于父容器中。所以我认为,没有办法抓住,对吗-(如果您的元素在该容器中,您可以说
#id a[href…
,如果
中有一个您想要设置样式的元素,您可以说
a[href^=“http:/”][href*=“sitename.com”]#idName
(注意空格)。总有办法!让我知道这是否有帮助,或者用更详细的信息更新你的问题!@Regnalf我还编辑了我的答案。也许这就是你的意思?谢谢你的提示,但这正是我现在作为解决方法所做的。抓住所有“a”元素放在容器中我想要的地方。如果我想把它放在那里,我必须为那个特定的元素设置一个额外的css行。但是,再次感谢你的好提琴。很高兴我能帮上忙!祝你好运