代码之家  ›  专栏  ›  技术社区  ›  dotcoder

css文件大小有限制吗?

  •  11
  • dotcoder  · 技术社区  · 14 年前

    我正在用ASP.NETMVC开发一个网站。CSS文件已经增长到88KB,并且有5000多行。我最近注意到,添加在末尾的样式不在浏览器中。CSS文件的大小或行数有限制吗?

    编辑 :

    11 回复  |  直到 14 年前
        1
  •  14
  •   Daniel Dyson    14 年前

    我认为如果你在css文件的大小上有问题,那么是时候 重新考虑你的造型策略 . CSS中的C代表级联。通常当CSS文件变得太大时,这是由于样式没有在适当的地方被重用,以及层叠行为的不当使用。

    我不轻率地说。我曾在一些大型、复杂的零售网站上工作,目前正在开发非常复杂的金融交易应用程序。每当我访问超过几百种风格的网站时,我们都通过降低css的复杂性,在设计、复杂性和可维护性方面取得了很大的改进。

    css重置 . 有多种不同的实现,但它们通常遵循的主题是覆盖每个浏览器在布局上的差异,删除任意的边框、边距和填充等。如果你愿意的话,从一个干净的开始。然后,你可以继续建立你的风格从那里,小心地充分利用 级联

    链接是指在一个元素上有多个类。如:

    <div class="box right small"></div>  
    

    box 可能有一些您可能希望应用于许多块元素的常规样式,例如div、h1…h6、p、ul、li、table、blockquote、pre、form。 small 是不言自明的 right 可能只是向右对齐,但右填充为4px。无论什么。关键是,每个元素可以有多个类,并从可重用的构建块(单个样式设置的分组)构建样式。也被称为类。

    在一个非常简单的层面上,寻找组合风格的机会:

    h1 {font-family: tahoma, color:#333333; font-size:1.4em;}  
    h2 {font-family: tahoma, color:#333333; font-size:1.2em;}  
    h3 {font-family: tahoma, color:#333333; font-size:1.0em;}  
    

    变成

    h1, h2, h3 {font-family: tahoma, color: #333}  
    h1 {font-size:1.4em;}  
    h2 {font-size:1.2em;}  
    h3 {font-size:1.0em;}  
    

    只是,稍微小一点,但做这种事很多次,你可以有所作为。

    也, Validate your css

        2
  •  16
  •   Unicron    14 年前

    Internet Explorer 据说有4096个CSS的限制 规则 addRule 似乎也适用于通过样式表应用的规则的函数: Reference

        3
  •  9
  •   FelipeAls    14 年前

    这是什么意思 CSS validator 说说你的CSS规则?

    使用PSPad、Notepad++、Scite等优秀的文本编辑器可以看到明显的打字错误: " ; /* */ ; 或者很容易被人看到,就像一个没有结束的评论。我遇到的一个不太明显的问题是没有关闭括号:

    background: green url(img/dummy_gradient.png left top no-repeat;
    

    没有什么 一直工作到第二天 ) 在我的CSS规则下面50行!

        4
  •  8
  •   Will Lanni    10 年前

    你的问题是:

    CSS文件的大小或行数有限制吗?

    ,这取决于“线”和“大小限制”的含义。

    1. 大小:IE9及以下版本将读取的最大大小样式表为288kb。之后的任何样式都不会被读取。 Read this article by Joshua Perina for a little more info on this .
    2. 如果“行”是指每个文件可以添加多少行@import链接样式表,则最多可以导入31个样式表。每个样式表最多可以有31个导入的样式表(参见下面的链接文章)

    This article on MSDN talks a little more about the max selector and linked style sheets, and how they came to those numbers when developing IE.

        5
  •  6
  •   Darin Dimitrov    14 年前

    不,没有限制。可能文件正在被缓存,这就是您没有看到修改的原因。尝试清除浏览器缓存或 Ctrl+F5键 .

        6
  •  3
  •   Christopher Altman    14 年前

    大多数普通浏览器没有限制(正如大多数答案中指出的那样)。另一个非常重要的考虑。如果压缩您的响应,在Apache中,我将使用gzip或deflate,文件大小将显著减小。因为CSS是非常重复的,例如,在你的5000行中,你使用了800次单词“color”,压缩只会将单词“color”的一个实例发送到浏览器,其中799个引用了压缩字典中的单词。所以你的文件在磁盘上可能是88K,但在网络上是9K。

    像FireFoxes Firebug这样的工具对于查看压缩文件的大小非常有用。我确信IE有一个http头查看工具。

    所以我想说的是,88K是磁盘上的文件大小,而如果使用压缩,则需要考虑响应中的文件大小。

        7
  •  1
  •   Malabar Front    14 年前

    如果您没有看到文件底部的添加内容被反映出来,请查看是否可以发现文件在哪里中断,并查找愚蠢的错误和错误。CSS会悄无声息地失败,但在它失败之前,它仍然会愉快地工作。

        8
  •  0
  •   Paul D. Waite    14 年前

    在某些浏览器中可能会有(我没有听说过,但它是可能的),但是对于CSS文件来说,88kb是绝对合适的。

        9
  •  0
  •   Piskvor left the building Rohit Kumar    14 年前

    理论上,没有限制。

    热释光;不,除非你想支持各种奇怪的浏览器。

        10
  •  0
  •   Guffa    14 年前

    当然,浏览器可以处理的内容是有限制的,但肯定要比88KB或5000行多得多。一个有根据的猜测可能是一兆字节或65535行。。。在达到极限之前,您很可能会遇到性能问题。

    没有看到更改出现的原因可能是缓存。你可以用 Ctrl键 +

    我们在发布新版本的CSS文件时重命名它,以确保所有访问者都获得最新版本。

        11
  •  0
  •   Wyatt Barnett    14 年前

    我也赞成重构你的CSS,你可以少一点。