为什么在外部CSS中使用元标记Content-Style-Type?

时间:2010-01-08 05:51:27

标签: html

浏览微软样本StockTrader应用程序的源代码,我在所有aspx文件中找到了这个代码段:

<meta http-equiv="Content-Style-Type" content="text/css"/>
<title>.NET StockTrader Portfolio</title>
<link rel="stylesheet" href="StockTrader.css" type="text/css" />

为什么链接标记说明了所有内容的元标记?我错过了什么吗?

6 个答案:

答案 0 :(得分:17)

您理论上需要Content-Style-Type设置的原因是内联样式属性:

<div style="color: red;">

那是什么造型语言?与<style><link rel="stylesheet">标记不同,没有type属性机制来告诉浏览器它是什么语言:因此文档全局内容样式类型。

这同样适用于Content-Script-Type和内联事件处理程序属性:

<div onclick='alert("hello")'>

那是什么语言?它在JavaScript和VBScript中实际上同样有效;在IE中它也可能是。从理论上讲,你应该给浏览器一个Content-Script-Type标题/元来告诉它。即使使用普通的旧JavaScript,您也可以通过设置类型参数(例如text/javascript;version=1.6e4x=1来更改方言(如果您想使用E4X XML文字,那么您不需要,因为它们是恶意)。

在实践中,这一切都没有任何用处,因为默认的CSS是唯一可以实际使用的样式语言,许多浏览器无论如何都不会关注Content-Style-Type,也没有任何浏览器支付任何费用注意Content-Script-Type

(好吧,谁还需要内联样式和事件处理程序属性?)

答案 1 :(得分:14)

“Content-Style-Type”元标记用于设置文档的默认样式类型。在实践中,这似乎没有用,因为大多数人在使用时都会明确指定样式类型,例如问题中的<link>标记。这个特殊声明似乎也是多余的。 According to the W3

  

用户代理应确定   a的默认样式表语言   文件根据以下内容   步骤(从最高到最低优先级):

     
      
  1. 如果任何META声明指定“Content-Style-Type”,则为最后一个   在字符流中确定   默认样式表语言。
  2.   
  3. 否则,如果任何HTTP标头指定“Content-Style-Type”,则   字符流中的最后一个   确定默认样式表   语言。
  4.   
  5. 否则,默认样式表语言为“text / css”。
  6.   

所以从理论上讲,使用“Content-Style-Type”将默认值设置为“text / css”只是覆盖了浏览器所假设的内容,尽管它可能是针对可能试图设置某些内容的流氓Web服务器的保险在HTTP标头中。

这可能是出于对标准兼容的热烈尝试而产生的。

快速编辑备注:我链接到的W3文档实际声称具有使用样式属性但没有定义默认样式表语言的元素的文档是不正确的文献。然而,我从未在验证器中看到过这个问题。

答案 2 :(得分:3)

浪费带宽。实际上没有人对它做任何事情。 (它是如此无用,甚至不包含在HTML5中。)

答案 3 :(得分:0)

Content-Style-Type元标记表示默认样式表语言。见http://www.w3.org/TR/REC-html40/present/styles.html#default-style

如果在每个链接标记上指定type属性,则不需要元标记。

答案 4 :(得分:0)

从技术上讲,它没有什么区别,因为假设CSS被所有主流浏览器使用。

答案 5 :(得分:0)

正如其他人所说,这为内联样式和链接设置了默认值。这属于可能不需要但应包括在内的事物类别。它在http://www.w3.org/TR/REC-html40/present/styles.html#default-style中定义,其他海报已经注意到主流浏览器都假定它。但它仍应添加,因为浏览器不是HTML文件的唯一使用者。它们可以导入到其他程序中或由其他程序处理,这些程序可能比浏览器更仔细地遵循规范。

相关问题