具有空格的HTML类属性,它是一个W3C有效的类?
关于将HTML 类 (或类?)分配给标记的HTML 类属性。 像使用空格一样
<tag class="ab">....</tag>
已validation?
这种语法被一些网页devise者使用,并出现在Adobe InDesign的导出HTML中(用版本5和版本6testing),以及另外一个HTML生成软件。
它( class="ab"
)是一个有效的W3C语法? 什么版本的CSS和HTML? (从哪个版本开始有效?)
编辑:一个自然的子问题 “W3C说如何解释它? (这是一个“覆盖”或另一种渲染行为?) 张贴在这里 。
这些是由空间分隔的两个不同的类别a
和b
。 请参阅w3c DOCS
class = cdata-list [CS]
这个属性为一个元素分配一个类名或一组类名。 任何数量的元素可以被分配相同的类名称或名称。 多个类名必须用空白字符分隔。
如果你有两个class
.a { font-weight: bold; } .b { font-weight: normal; }
并在class =“ab”或class =“ba”中赋值,则后面的类将覆盖具有相同属性的前一类,所以字体权重将是正常的 。
如果您更改CSS定义顺序,
.b { font-weight: normal; } .a { font-weight: bold; }
现在后面的类是粗体的,所以“覆盖具有相同属性的前一类”结果字体粗体 。
这在IE 7及更高版本中得到支持,包括所有现代的非IE浏览器。 正如其他评论者所指出的那样,它实际上是一个类的列表,而不是一个具有空格的类。
了解这一点的更好的方法是给你的例子更多的select:
<tag class="ab">....</tag> <tag class="a">....</tag> <tag class="b">....</tag>
.ab {}
在您的CSS将目标的第一个标签。
.a {}
将定位第一个和第二个标签。
.b {}
将定位第一个和第三个标签。
这就是为什么在一个元素上使用多个类可能会非常有用的原因。
对于CSSselect器和伪select器的问题,我喜欢使用这个(稍微过时的)表http://kimblim.dk/css-tests/selectors/
一个类名不能有空格。 一个元素可以有多个类,这些类通过列出由空格分隔的类名来定义
这不会在CSS文件或HTML中工作。 <div class="abc"></div>
表示div元素具有类AND类b AND类c。
同时,在样式表的一面, .abc { property: value; }
.abc { property: value; }
是无效的,因为它的字面意思是“元素c的祖先b的祖先有a类”(和b和c显然是无效的HTML元素),而.a .b .c { property: value; }
.a .b .c { property: value; }
意思是“具有祖先元素的类别为c的元素具有具有类别a的祖先元素的类别b”。 如果这对你没有意义,查找CSS特殊性规则。
使用破折号或下划线而不是空格。