像这样:
<html>
<head>
<style> some style </style>
</head>
<body> some text </body>
<style> some more style </style>
<body> some more text </body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想这样做是因为:我的cgi使用自己的风格来源其他文件.
cgi文件包含:
#!/bin/bash
echo "content-type: text/html"
echo ""
echo "<html><head><style>"
echo "h1 {color: red;}"
echo "</style>"
echo "<body>"
echo "<h1> some text here </h1>"
echo "</body>"
source ./data.sh
echo "</html>"
Run Code Online (Sandbox Code Playgroud)
源文件包含:
echo "<style>"
echo "h2 {color: blue;}"
echo "</style>"
echo "<body>"
echo "<h2> and some other text here </h2>"
echo "</body>"
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常.但这是对的吗?
在w3schools,它说:每个HTML文档可以包含多个<style>标签.
但是这样做了吗?
小智 8
样式应该只包含在文档的头部.
除了验证点之外,在身体上使用样式时可能会感兴趣的一个警告是没有样式内容的闪光.浏览器将获得在显示后将被设置样式的元素,使它们在大小/形状/字体和/或闪烁上移位.这通常是工艺糟糕的表现.一般来说,你可以随心所欲地放置风格,但尽可能避免使用它.
HTML 5引入了一个scoped属性,允许样式标记包含在正文的任何位置,但随后又将其删除.
根据W3规范,<link>标签只应该在以下<head>部分:
参考
对于HTML 4.01:http://www.w3.org/TR/html401/struct/links.html#edef-LINK
对于HTML5:http://www.w3.org/TR/html5/document-metadata.html#the-link-element
验证问题
如果将标记放在HTML文档的正文中,则不会使用validate.w3.org进行验证