可能重复:
Why write <script type=“text/javascript”> when the mime type is set by the server?
前一段时间我读了Dive into HTML5,最近再次阅读了它的语义章节。我注意到它建议不在type="..."
和script
上使用style
属性,因为:
但是,我认为在type
和language
标记中包含script
属性(或恐怖,style
)仍然是常见做法。假设服务器已正确配置为发送正确的MIME类型,是否有理由使用这些而非显式?
编辑:这明确是关于HTML5,而不是XHTML。
答案 0 :(得分:22)
大多数人都习惯使用HTML 4 / XHTML,之前需要type
属性才能使用这些元素。
关于HTML 5,这些确实是可选的,并且规范提供了默认值,具体取决于元素。
对于script
代码,默认为text/javascript
:
如果语言不是“text / javascript”所描述的语言,那么type属性必须存在
对于style
代码,默认为text/css
:
如果属性不存在,则使用type属性的默认值为“text / css”。
所以,不需要,如你所说。但是,不能总是依赖浏览器支持和服务器设置 - 明确是一个好主意,因为它避免了这样的问题。
当然,并非所有浏览器都支持HTML 5 - 那些不支持HTML 5的那些将使用需要该属性的早期版本,并且您的javascript / css可能无法在此类浏览器中解析,这意味着您最终没有旧版浏览器上的CSS或javascript,当向后兼容性的简单解决方案是添加属性时。
答案 1 :(得分:4)
HTML5可能不需要type属性,但HTML 4.01 Strict等其他HTML Doc Types需要它。我还要说,任何能让开发人员更清楚代码/文档的事情都是一件好事。
如果这意味着要明确使用的脚本类型或样式类型,我会使用它。
答案 2 :(得分:1)
那不好。在XHTML中,严格要求type
属性。虽然浏览器可能很宽松,但没有理由违反惯例。
答案 3 :(得分:1)
HTML5确实不需要type
属性,但包括它不会破坏验证,因此您可以从HTML 4或XHTML 1转换为HTML5,并且仍然拥有<script>
和<style>
标签验证。
<link>
标记也不需要type
属性(强调添加):
type属性提供MIME类型 链接资源。 纯粹 咨询。该值必须是有效的 MIME类型。
对于外部资源链接,类型 属性用作用户的提示 代理商,以便他们可以避免取货 他们不支持的资源。如果 属性存在,然后是用户 代理必须假定资源是 给定类型(即使不是 有效的MIME类型,例如空的 串)。 如果省略该属性, 但外部资源链接类型 有一个默认类型定义,然后 用户代理必须假设 资源属于那种类型。如果是UA 不支持给定的MIME类型 对于给定的链接关系,那么 UA不应该获得资源; 如果UA确实支持给定的MIME 给定链接关系的类型, 那么UA应该获得资源 在指定的适当时间 对于外部资源链接 特殊类型。如果属性是 省略,和外部资源 链接类型没有默认类型 已定义,但用户代理会 如果类型是,则获取资源 已知并受支持,然后是用户 代理商应该获得资源 假设它会 支撑。
用户代理不得考虑该类型 属性权威 - 在 获取资源,用户代理 不得使用type属性 确定它的实际类型。只有 实际类型(如下所述) 段)用于确定 是否应用资源,而不是 上述假设类型。
答案 4 :(得分:0)
如果您不使用该类型,则无法验证
答案 5 :(得分:0)
根据w3,这是required。
即使新浏览器可以在不指定标签的情况下进行管理(使用默认设置),最好将其保留以便与旧浏览器向后兼容。