有没有CSSselect器<a>元素缺乏href属性?

我明白,CSS规则可以指定由属性值指定的元素,例如:

input[type="text"] {} 

我可以制定一个规则,针对那些省略某个属性的元素吗? 例如,我可以定位缺乏href的元素或不指定types的元素吗?

你可以遵循这个模式:

 a:not([href]) input:not([type]) 

属性select器用于select具有指定属性的元素。

:not支持所有的现代浏览器和IE9 +,如果你需要IE8或更低的支持,你运气不好。

对于链接,你可以简单地使用:

 a { color: red; } a:link { color: green; } 

小提琴: http : //jsfiddle.net/ZHTXS/不需要JavaScript。

对于表单属性,使用上面提到的NOT属性模式input:not([type]) ,如果你需要支持旧版本的IE,我可能会添加一个类,并使用与条件注释链接的IE特定的样式表。

您可以随时将不同的样式设置为a和href

检查这个: http : //jsfiddle.net/uy2sj/

这个简单的答案。

没有。

如果你想要我提供这个解决scheme,你可以通过JavaScript来做到这一点?

但CSS的黑客

(但是,我只是想到CSS的“哈克”方式)。

采取这种情况…你想要任何没有href的<a>标签被涂成红色。

例如,你可以假设你将会拥有的唯一属性是:

  • ALT
  • 标题
  • HREF
  • 目标等

可以做的是为锚标签创build一个全局规则。 例如

 a { color: red; } 

然后,您只需创build一个规则,该规则将在声明之后覆盖此全局规则,以满足您所期望的每个属性。

所以你会有

 a[href] { color: blue; } 

现在你会知道任何缺lesshref的标签都是红色的。

原来的问题问,

我可以制定一个规则,针对那些省略某个属性的元素吗?

不,你不能! 没有跨浏览器,使用CSS来省略属性的目标 /select元素的方式。 因此,为什么我觉得我提出的解决scheme是一种黑客行为,因为它违背了问题所提出的问题。