Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有空格的HTML类属性,它是W3C有效类吗?_Html_Css - Fatal编程技术网

带有空格的HTML类属性,它是W3C有效类吗?

带有空格的HTML类属性,它是W3C有效类吗?,html,css,Html,Css,关于HTML类属性,将CSS类(或类?)分配给标记。 空间的使用,比如 <tag class="a b">....</tag> 。。。。 有效吗 这种语法被一些网页设计师使用,并出现在AdobeInDesign的导出HTML(用版本5和6测试)和另一个HTML生成软件中 它(class=“ab”)是一种有效的W3C语法?什么版本的CSS和HTML? (从哪个版本开始生效?) 编辑:一个自然的子问题“W3C说如何解释它?”(这是一个“覆盖”或另一种渲染行为?) 这是两

关于HTML类属性,将CSS类(或类?)分配给标记。 空间的使用,比如

<tag class="a b">....</tag>
。。。。
有效吗

这种语法被一些网页设计师使用,并出现在AdobeInDesign的导出HTML(用版本5和6测试)和另一个HTML生成软件中

它(
class=“ab”
)是一种有效的W3C语法?
什么版本的CSS和HTML? (从哪个版本开始生效?)



编辑:一个自然的子问题“W3C说如何解释它?”(这是一个“覆盖”或另一种渲染行为?)

这是两个不同的类
a
b
,用空格分隔。看

class=cdata列表[CS] 此属性将类名或一组类名分配给 元素。可以为任意数量的元素分配相同的类名或名称 名字。多个类名必须用空格分隔 人物


如果你有两个班

.a { font-weight: bold; }
.b { font-weight: normal; }
并在class=“a b”class=“b a”中赋值,则后一个类将覆盖具有相同属性的前一个类,因此字体重量将正常

如果更改CSS定义顺序

.b { font-weight: normal; }
.a { font-weight: bold; }

现在后一个类是粗体的,因此“覆盖具有相同属性的前一个类”的结果是字体粗体

单个类名不能有空格。一个元素可以有多个类,通过列出由空格分隔的类名来定义,空格在CSS文件或HTML中不起作用<代码>表示div元素具有a类、b类和c类

同时,在样式表方面,
.abc{property:value;}
是无效的,因为它字面上的意思是“元素c的祖先b的祖先具有类a”(并且b和c显然不是有效的HTML元素),而
.a.b.c{property:value;}
的意思是“元素具有类c,而祖先元素具有类b,而祖先元素具有类a”。如果这对您没有意义,请查找CSS专用性规则


使用破折号或下划线代替空格。

这在IE 7及以上版本(包括所有现代的非IE浏览器)中都得到了支持。正如其他评论员所指出的,它实际上是一个类列表,而不是一个带有空格的类

更好的理解方法是为您的示例提供更多选项:

<tag class="a b">....</tag>
<tag class="a">....</tag>
<tag class="b">....</tag>
。。。。
....
....
css中的
.a.b{}
将以第一个标记为目标。
.a{}
将以第一个和第二个标记为目标。
.b{}
将以第一个和第三个标记为目标。

这就是为什么在一个元素上使用多个类非常有用的原因


对于CSS选择器和伪选择器的问题,我喜欢使用这个(稍微过时的)表

它不是一个带空格的类名,而是多个类名。您的示例是将类
a
b
应用于元素。@PeterKrauss“W3C对class=“a b”的正确呈现是怎么说的:粗体还是普通?“-你真的去读一读/尝试一些样本怎么样?回答评论:@shmiddy,谢谢,我更正(编辑)了标题@dystroy,这些问题是互补的,因为这里我问的是W3C标准,在标题更正之后,这里是关于“有效属性类值”,而不是关于名称语法;这是一个真正的问题,也是一个话题。它不应该被当作“不是一个真正的问题”来结束。它可能是重复的,但应该清楚地标识。好的,谢谢(!),它是有效的,因为html401。现在另一个问题,间接发布,但不明确:W3C说如何解释它?这是“覆盖”还是另一种渲染行为?PS:我会编辑问题来添加这个子问题。你可以用css这样解释:@diechobhai ek baar mai samajh aa gaya hai!谢谢你,巴切!是的,好的(谢谢!)。我的问题只是关于
class=“abc”
@diEcho正好展示了W3C第一标准(HTML4.01),该标准允许这种语法。现在另一个问题是“如何解释这个?”,好的,你们说的是“a、b和c”:浏览器必须如何呈现这个?当a和b使用相同的属性时是“重写”吗?我知道这很旧,但是在CSS中针对所有3个类的有效示例是
.a.b.c{property:value;}
注意,在我的CSS示例中.a.b之间没有空格。谢谢!我编辑了问题:关于覆盖交互(浏览器渲染),正确的行为是什么。在这种情况下,您的问题可能会重复到这里:实际上,您的第一个css类只会影响第一个标记,而不是您所说的所有三个标记。在这个类生效之前,这两个类都应该在标记上。示例:噢!你是对的。谢谢@PeterVR
.a、.b{}
将以所有3@PeterKrauss带有空格的CSS类名不是无效的,因为你不会得到任何错误。。但是在类名中留一个空格是没有意义的,因为你看不到你的风格被应用。所以在我的书中你不能留一个空格。除此之外,这是浪费时间。CSS(任何版本)根据空格字符来确定类名。有关CSS基础知识的更多信息:关于术语,对不起,我弄错了,我将问题标题从“CSS类名称带空格…”编辑为“HTML类属性带空格…”。关于CSS去主题化,谢谢,是对引用的内容的补充,这里没有其他人提到。