IE问:有多少CSS包括它可以处理?(IE Question: How many CSS inclu

2019-07-29 16:01发布

我碰到一个奇怪的现象,而来到Drupal的主题化。 我原来是加5到10的链接标签页面中的几个模块。 虽然这些新样式表添加到级联在Firefox,IE8中,通过将这些浏览器从层次结构丢弃先前添加CSS文件。 事实上,第一个文件是第一次去,这完全搞砸了的页面的造型和让我抓我的头一会儿。 最后,我发现新添加的模块造成了IE通过一些内部阈值它不能增加新的包含了。

有没有人见过这种行为? 我不知道,如果是用浏览器或我的设置的问题。

Answer 1:

Internet Explorer有32个CSS文件链接的最大限制。 这绝对是一个浏览器的问题。 你需要考虑整合你的CSS请求。

一般来说,你可以通过连接他们,如果他们是静态文件做到这一点,但如果你编程生成它们,你可能看一个解决方案之前,它被传递到浏览器处理响应。

我们必须解决这个问题,我们的企业ASP.Net项目,结束了写“的CSS多路复用器”,审查了反应,发现所请求的CSS链接,生成一个大的CSS文件的Web资源,并输出一个链接,代替。



Answer 2:

我遇到我们的网站这个问题。

IE8只允许每个文件32个CSS进口。 该文件可能是一个HTML文件或CSS文件。 (*)然而,进口限制不限制你32 CSS文件总数。 您可以链接到你的HTML两个CSS文件,每个文件的@imports 32个CSS文件。 有了这样的把戏玩应该让你尽可能多的,因为你需要。

我们使用的具体解决方法是我们需要的CSS文件分成两组,并有两个“进口”的CSS文件。 HTML页面导入第一个导入CSS文件,其中进口第一组和第二导入CSS文件,其中进口第二组。

这工作得很好,但在大量的HTTP请求的结果,所以我们只使用此解决方案的开发系统。 对于我们生活的网站,我们有一个生成步骤,编译所有的CSS成一个文件。

什么约翰内斯提到-让Drupal的聚集你的CSS -听起来就像是最好的选择。

(*)有一些小字,如:32个进口包括已经在链条进口从你的HTML页面的CSS文件。 所以,如果你的HTML导入一个CSS文件,那么这个CSS文件只能导入31等二线CSS文件,每个二线CSS文件只可以导入其他30个三级CSS文件。 你必须要知道什么离奇的算法,使得这一限制...



Answer 3:

该限制是31 -不是32!

虽然有些人会说“谁在乎,足够接近,对不对?” ---与已有数百家开发商较大的应用程序就可以很容易的页面超过限额,所以你应该真正了解可以包含在网页CSS样式表的确切数目。

有几种方法来缓解这个问题:

  1. 通过整合成更大的文件减少CSS文件的数量 - 可能是手动,还是有些运行时间分组机制,也可以使用自动CSS编译器相结合,最大限度地减少您的所有CSS文件
  2. 使用@import url(...)语句,而不是<link href="">但请记住,你只能有31 @import (再次,不是32 ...)语句在一个样式表

使用#2以上谨慎,因为:

  1. 你只是增加了限制(以961个css文件)不删除它
  2. 该浏览器将被迫下载系列,而不是在中并行的CSS文件。 正常情况下,浏览器可以下载在同一时间超过1个css文件(计取决于如果文件是在同一个域中,你所使用的浏览器) - 这可以对性能有显著的影响。
  3. 每个CSS文件需要往返于服务器增加额外的时间。


文章来源: IE Question: How many CSS includes can it handle?