排除声明性事件处理程序:
<a href='#' onclick=<handler> ... />
属性和CSS选择器之间是否存在任何实质性差异?如果我提供自己的属性:
<a href='#' my-data-node-type='1'/>
“my-data-node-type”是属性,CSS选择器还是两者兼而有之?我想我在这里真正要问的是,术语“属性”和“css选择器”是同义词吗?或者是“css选择器”只有CSS认可的属性才有资格进行样式化?
答案 0 :(得分:2)
CSS选择器不是属性。它们是用于决定在文档中应用样式的元素的模式。
来自w3c:http://www.w3.org/TR/CSS2/selector.html
“在CSS中,模式匹配规则确定哪些样式规则适用于文档树中的元素。这些模式称为选择器,范围可以从简单的元素名称到丰富的上下文模式。如果模式中的所有条件都适用于某个元素,选择器匹配元素。“
在您的情况下,属性名称“my-data-node-type”可以用作CSS选择器的一部分来引用您的链接,但CSS选择器不是属性。属性不是CSS的一部分,它们是您在HTML中的元素标记中找到的数据的名称/值对,以及其他类似的标记语言,例如。
<element my-attribute-name="my-attribute-value" />
这不是标准,但HTML维基百科页面有一个很好的简单语言描述属性:http://en.wikipedia.org/wiki/Html
例如,给定HTML:
<div id="foo">
<a data-node-type="foo" href="bar">Click me!</a>
</div>
“data-node-type”和“href”是<a>
标记的属性,
# while:
div#foo a[data-node-type=foo]
# or:
div a[href]
# or simply:
a
...是CSS选择器,它将定位<a>
,前两个使用其属性。
答案 1 :(得分:1)
css选择器只是css标识要应用样式的元素组的一种方式。属性是元素的属性。
在您的示例中,my-data-node-type ='1'是一个属性。但是,属性可以用作css选择器的一部分。 a [my-data-node-type =“1”]将选择my-data-node-type = 1的所有'a'标签。
答案 2 :(得分:1)
CSS文档中使用了CSS选择器。它是一个字符串,用于按元素名称,id,css或其他任何方式选择要设置样式的元素。
.myDiv, #myDivid
是选择器。
“my-data-node-type”可用于选择元素#myDiv a[my-data-node-type='1']
属性是您用来为元素本身设置样式的方法。
#myDiv a[my-data-node-type='1']
{
color: #000; /*this is an attribute*/
}
希望这有帮助。
答案 3 :(得分:1)
实际上,选择器使用属性(和标记名称)以及类和伪类。
选择器的类型不同,从通用到更具体。
请参阅:http://www.w3.org/TR/CSS2/selector.html
因此,您可以使用属性构建模式(选择器)以将规则应用于它。 (或者,如果使用像JQuery这样的解析库,可以在DOM中找到元素。)
您可以使用哪些选择器取决于CSS引擎实现,有些浏览器不会识别某些伪类。