【问题标题】:Why does Internet Explorer simply stop parsing in the middle of my CSS?为什么 Internet Explorer 在我的 CSS 中间停止解析?
【发布时间】:2011-04-24 12:24:51
【问题描述】:

我帮助管理本地 ACM 学生分会的网站,http://acm.cs.uakron.edu/

出于某种原因,Internet Explorer 只是拒绝解析大部分 CSS。我知道的所有其他浏览器都可以很好地处理它,但是为什么 IE7+ 会停止?

【问题讨论】:

  • 定义“拒绝解析”并包含 CSS(或指向它的便捷链接)以获得(更好的)答案。
  • 你说的是哪个 CSS 文件?您链接到的页面上大约有三打样式表。
  • 该页面上似乎包含 35 个单独的 CSS 文件(顺便说一句,这相当可怕 - 考虑一个将它们组合在一起的编译阶段)。你有问题吗?您确定文件中没有语法错误吗?

标签: html css


【解决方案1】:

cmets 说您有 35 个 CSS 文件。这本身就足以成为 IE 的一大亮点。

根据Microsoft Knowledge Base Article 262161

前 31 个样式标签之后的所有样式标签都不会应用。

这个applies to 到目前为止的所有 IE 版本,包括 IE9 beta。哎哟。是时候将这些样式表合并到一个文件中了。

在处理这样的大型复杂 CSS 项目时,我通常建议使用 CSS 预处理器,例如 Sass,并将这些较小的样式表转换为包含拉入到馈送到浏览器的较大样式表中的内容。不过,对于这个特定问题,几乎每个人都有不同的解决方案。

【讨论】:

  • 令人惊奇的是 IE 可以在最不知情的地方施加如此任意的限制。
  • 老实说,如果您必须为一个页面的 CSS 发出 35 个不同的 HTTP 请求,那么您做错了。
  • @badp:是的,对于一个网站来说,这并不是一件好事,但对于浏览器来说,简单地拒绝处理某些事情甚至没有出错也很奇怪。
【解决方案2】:

Internet Explorer 最多只能解析 31 个 CSS 文件,无论是否嵌入。即使您使用@import css 语法,IE 也会忽略 31 个文件之后的所有内容! 这有多垃圾?

试试http://sourceforge.net/projects/cssmerge/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2019-06-06
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多