为什么CSS使用假元素?
在我的课堂上,我四处游玩,发现CSS使用了构成元素。
例:
imsocool {
color:blue;
}
<imsocool>HELLO</imsocool>
为什么CSS使用假元素?
(大多数)浏览器被设计为(在某种程度上)与将来添加到HTML的前向兼容。 无法识别的元素被分析到DOM中,但没有与它们相关的语义或专门的默认渲染。
在规范中添加新元素时,有时可以使用CSS,JavaScript和ARIA在旧版浏览器中提供相同的功能(并且元素必须出现在DOM中,以便这些语言能够操作它们以添加该功能)。
(虽然应该指出,目前正在开发定义一种用自定义元素扩展HTML的方法,但是这项工作目前处于开发的早期阶段,所以应该在它成熟之前避免它。)
为什么我的教授不想让我使用化妆元素?
也; 为什么他不知道构成元素存在并与CSS一起工作。 他们不常见?
是。 人们不会使用它们,因为它们有上述问题。
TL; DR
长答案
有一些参数使用自定义标签的代码更加实用。
但是,它导致无效的HTML。 这对您的网站不利。
有效的CSS / HTML |点 堆栈溢出
为什么要验证| W3C
YADA(又一个(不同的)答案)
编辑:请参阅BoltClock关于类型vs标记vs元素的评论。 我通常不担心语义,但他的评论是非常合适和信息丰富的。
虽然已经有一堆好的回复,但你表示你的教授促使你发布这个问题,看起来你(正式)在学校。 我想我会深入阐述一下,不仅是CSS,还有Web浏览器的机制。 根据维基百科,“CSS是用于描述...写的标记语言文档的样式表语言。” (我强调了“a”)注意,它没有说“用HTML编写”,更不用说特定版本的HTML。 CSS可用于HTML,XHTML,XML,SGML,XAML等。当然,您需要的东西将呈现每种这些文档类型,这些文档也将应用样式。 根据定义,CSS不知道/理解/关心特定的标记语言标记。 因此,就HTML而言,标签可能是“无效的”,但CSS中没有“有效”标签/元素/类型的概念。
现代的视觉浏览器不是单一的程序。 它们是具有特定工作要做的不同“发动机”的混合物。 至少我可以考虑3个引擎,渲染引擎,CSS引擎和JavaScript引擎/ VM。 不确定解析器是否是渲染引擎的一部分(反之亦然),或者它是否是单独的引擎,但您明白了。
无论视觉浏览器(其他人是否已经解决了屏幕阅读器可能遇到处理无效标签的其他挑战)这一事实,格式化取决于解析器是否在文档中留下“无效”标签,然后渲染引擎是否应用样式到那个标签。 由于它会使开发/维护变得更加困难,CSS引擎不会被理解为“这是一个HTML文档,所以这里是有效的标签/元素/类型列表”。 CSS引擎只需找到标签/元素/类型,然后告诉渲染引擎,“这是您应该应用的样式。” 渲染引擎是否决定实际应用这些样式已经过去了。
这是一个简单的方法来思考从引擎到引擎的基本流程:解析器 - > CSS - >渲染。 事实上它更复杂,但对于初学者来说这已经足够了。
这个答案已经太长了,所以我会在那里结束。
链接地址: http://www.djcxy.com/p/71219.html