CSS选择器:否<;img>;小时候

CSS选择器:否<;img>;小时候,css,css-selectors,Css,Css Selectors,我正在尝试选择所有链接到没有子图像标记的外部站点的锚定标记。如果我有一个图像作为链接,它也会在这些图像旁边添加一个小小的外部链接图标,但我不希望这样 这就是我到目前为止所做的: a[href^="http://"]{ background:transparent url(..icon/external.png) center right no-repeat; display:inline-block; padding-right:18px; } 作为一个额外的好处,我如何使它与“h

我正在尝试选择所有链接到没有子图像标记的外部站点的锚定标记。如果我有一个图像作为链接,它也会在这些图像旁边添加一个小小的外部链接图标,但我不希望这样

这就是我到目前为止所做的:

a[href^="http://"]{
  background:transparent url(..icon/external.png) center right no-repeat;
  display:inline-block;
  padding-right:18px;
}

作为一个额外的好处,我如何使它与“https://”链接一起工作?

这在普通CSS中是不可能的。但是,您可以使用一些jQuery向导:

jQuery:

$("a[href^='http://']:not(:has(img))").addClass("external");
CSS:

请参见演示:


请参阅演示(包括HTTPS):

这是当前CSS无法完成的。我等不及CSS 4规范成为标准了。。。看起来这里有很多很酷的功能。填充为链接右侧的图标提供了空间,然后背景添加了图像本身,并与右侧对齐。内联块使包括图像在内的整个链接可单击。我不认为你可以放心地认为他安装了jQuery。@kojiro我同意,但我可以放心地说OP想要的是不可能的,我已经提供了一个简洁的替代方案。修复得不错!我更喜欢非JS解决方案,但这是可行的。我有jQuery,所以这很好。
$([href^='http://']:not(:has(img)),a[href^='https://']:not(:has(img)))
$([href^='http://'],a[href^='https://'])not(:has(img)
@MaxGhost我不确定,所以我发布了一个问题:)
a.external {
  background:transparent url(..icon/external.png) center right no-repeat;
  display:inline-block;
  padding-right:18px;
}