在HTML <head>标记内有两个<style>元素是有效的HTML吗?

ben*_*rre 10 html css styles

<style>HTML头标记内有两个标记是否有效?

例如,我正在尝试为没有添加外部样式表的电子邮件客户端编写HTML页面.由于我们的模板系统的工作方式,我们更容易拥有

<head>
 <style>
  .someStyle{}
 </style>
 <style>
  .someOtherStyle{}
 </style>
</head>
Run Code Online (Sandbox Code Playgroud)

而不是这个......

<head>
 <style>
  .someStyle{}
  .someOtherStyle{}
 </style>
</head>
Run Code Online (Sandbox Code Playgroud)

如果选项2是执行此操作的唯一方法,我将这样做,但选项1由于各种原因更适合我们的框架代码.

kni*_*ttl 9

在你<head></head>标签之间有多个样式元素是完全没问题的.您可以拥有任意数量的元素<link><script>元素.


Rod*_*eas 5

是的,这是完全有效的。CSS 代表“层叠样式表”(例如,层叠在彼此之上。)多个<style>标签允许您包含多个样式表或多个样式声明。


Sz.*_*Sz. 5

没有一个答案引用任何来源,因此 OP 无法确定。(请注意,“CSS”的“级联”部分和浏览器容忍许多STYLE元素的事实都不能证明任何事情;例如,它们也容忍(感谢上帝,顺便说一句!)STYLE元素BODY,即使规范认为这是异端邪说,除非使用了scopedattr.,尽管它是有效的,但浏览器基本上不支持它......)

以下是当前的 HTML 规范今天 (2017-02-08) 所说的内容:

可以使用此元素的上下文:

  • 如果 scoped 属性不存在:元数据内容的预期位置。
  • 如果 scoped 属性不存在:在作为 head 元素的子元素的 noscript 元素中。
  • 如果存在 scoped 属性:预期流内容的位置,但在除其他样式元素和元素间空白之外的任何其他流内容之前。

这实际上意味着原始问题的答案确实是:yes。:)

  • 是的,当你生活在网络的特定区域时,网络并没有那么大。我在搜索时也发现了自己过去的帖子。其实,由于我的记忆力很差,所以我经常发布一些对未来的自己的问题和答案,预计我会忘记怎么做某件事。没有什么比因为没有记录解决方案而必须重新跟踪之前已经解决的问题更糟糕的了。:-p (2认同)