(由于我们位于SE.SX,因此更具战略性的方法可能是对常规技术考虑因素的宝贵补充。)
[序言] HTML5规范是一个不断发展的目标,并且他们有一项政策可以跟进已建立的惯例。他们过去已经过时和复活了功能,改变了其他功能的含义,转移了有条不紊的建议的重点等。这并非永远写成人类拥有所有智慧的永恒。规范不是真理的神圣来源。有时候浏览器正确是很自然的。[/前言]
OP的情况极为普遍和有效。
您有一个CMS,其主题已经设计并安装好了,所有的CSS都可以从HEAD正确加载,然后,页面编辑器就剩下一个时髦的WYSIWYG框,您可以(感谢上帝!)切换到“源代码模式”,并且在HTML标记中输入(粘贴)(以前是在其他地方制作的,使用了更合适的工具)。幸运的是,您甚至可以包含STYLE
标签(可能是由于标签过滤器中的偶然遗漏)...大量重复的破坏灵魂的重复工作为我们节省了一天。但是,无论如何,您仍然无法通过页面编辑方案来干扰系统的HEAD元素。
是否应该仅仅因为规范说明,就使您无法直接将CSS与HTML片段一起使用CSS?
或者,您有一个单页AJAX应用程序。
它运行很长时间,无需重载,并且有来自各种随机来源的联合内容,这些内容都是任意和独立样式的。要求将它们首先转换为仅使用内联STYLE
属性,而不是仅与嵌入式STYLE
元素一起使用将是荒谬的。
而且:您可以a)BODY
通过STYLE
属性已经将任何CSS嵌入到中的任何位置,因此CSS从理论上讲在那儿是合法的;b)无论何时,只要您想从Javascript(或更多)中使用Java,就可以使用几乎任何样式进行所需的操作,因此CSS也已经可以以病态的不良方式被滥用。而且我们谁也不会反对这些功能。W3C也没有。
那么,STYLE
元素中到底有什么邪恶BODY
呢?这些额外的不利影响会给我们广泛的滥用HTML构造带来什么样的负面影响?更差的表现?大概。有时。
这是废除这种令人难以置信的有用做法的正当理由,并且每个浏览器都支持其原因吗?不在百万英里之内!
我们不是白痴。好吧,不是全部,或者不是总是...;)可能会记录性能不佳的技术,而不仅仅是禁止使用。在网络的早期,我们曾经有Java applet,但后来得以幸存。汽车可能会被滥用,造成痛苦,甚至食物也可能以令人不安的低效方式使用,而且可以吃饭的驾驶员平均而言比普通的网页设计师还要愚蠢。此外,亲爱的W3C,不必担心:愤怒的HTML修补匠群的腿被静止的STYLE
元素击中,BODY
无法追赶W3C并报仇。他们不知道地址。而且他们没有腿。
因此,请:不要让您的声音STYLE
成为合法BODY
!轻描淡写地引用案文,但未能提供比当前情况更好的可行替代方案没有任何帮助。这实际上是对这种最后解决方法的威胁。
请记住:HTML5规范被称为推荐。