在我的课堂上,我四处游荡,发现CSS可以使用虚构的元素。
示例:
null
imsocool {
color:blue;
}
html prettyprint-override"><imsocool>HELLO</imsocool>
null
当我的教授第一次看到我使用这个的时候,他有点惊讶于合成元素的工作,并建议我简单地将所有合成元素改为带有ID的段落。
为什么我的教授不希望我使用虚构的元素?它们有效地工作。
还有,为什么他不知道虚构元素的存在,并与CSS一起工作。他们不常见吗?
雅达(又一个(不同的)答案)
编辑:请看下面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->呈现。实际上,它要复杂得多,但对于初学者来说,这已经足够好了。
这个答案已经太长了,所以我就到此为止。
DR
冗长的回答
有一些参数表明,带有自定义标记的代码更可用。
但是,这会导致无效的HTML。这对您的站点不利。
有效CSS/HTML StackOverflow的点
为什么要验证W3C
为什么CSS可以使用假元素?
(大多数)浏览器被设计成(在某种程度上)向前兼容HTML的未来添加。无法识别的元素被解析到DOM中,但没有语义或与它们相关的特殊默认呈现。
当一个新元素被添加到规范中时,有时可以使用CSS、JavaScript和ARIA来在旧浏览器中提供相同的功能(这些元素必须出现在DOM中,以便这些语言能够操作它们来添加该功能)。
(虽然应该注意到定义使用自定义元素扩展HTML的方法的工作正在进行中,但目前这项工作还处于开发的早期阶段,因此在成熟之前应该避免。)
为什么我的教授不希望我使用虚构的元素?
也;为什么他不知道虚构元素的存在并与CSS一起工作。他们不常见吗?
是的。人们不使用它们是因为它们有上述问题。
问题内容: 在课堂上,我在玩耍,发现CSS可以与虚构元素一起使用。 例: 当我的教授第一次看到我使用此功能时,他对组合元素起作用感到惊讶,并建议我将所有组合元素更改为带有ID的段落。 为什么我的教授不希望我使用虚构元素?他们有效地工作。 另外,他为什么不知道组成元素存在并且可以与CSS一起使用。他们不常见吗? 问题答案: 为什么CSS可以处理假元素? (大多数)浏览器被设计为(在某种程度上)与将来
本文向大家介绍为什么要使用css sprites?相关面试题,主要包含被问及为什么要使用css sprites?时的应答技巧和注意事项,需要的朋友参考一下 css sprites指的是将该页面请求的图片资源都拼接到一个图片文件上,通过css从拼接好的图片上获取需要的部分。 优点: 一个是减少了HTTP请求的发送次数 一个是合并后的图片一般小于合并前的图片大小总和 缺点: 如果发生改动需要重新做拼接
问题内容: 如果一个元组是不可变的,那么为什么它可以包含可变项呢? 似乎矛盾的是,当可变项(例如列表)确实被修改时,它所属的元组保持不变。 问题答案: 这是一个很好的问题。 关键的见解是,元组无法知道其中的对象是否可变。使对象可变的唯一方法是拥有一种更改其数据的方法。通常,无法检测到此情况。 另一个见解是Python的容器实际上不包含任何东西。相反,它们保留对其他对象的引用。同样,Python的变
问题内容: 例如,Meyer重置包含一长串元素1,我相信可以将其替换为?。 我已经看到了一些用法: 但是,更多的“高级”重置似乎与明确说明标签有关。 我没有看到覆盖在标签列表中唯一的元素 被 覆盖(我相信)用的,和-the埃里克迈耶复位,其实并没有出现真正处理所有这些元素。如果要避免重置这些元素,那就是问题……您为什么不呢?浏览器显然 并不 都显示相同的表单元素。 1 如果您好奇。 问题答案: 您
<代码>文档。all是DOM中的一个非原始对象,它是falsy。 例如,此代码不做任何事情: 有人能解释一下这是为什么吗?
null [编辑] 带有的模型视图