我正在使用ASP.NET MVC来开发一个站点。 CSS文件已增长到88KB,并且有5,000多行。我最近注意到最后添加的样式在浏览器中不存在。 CSS文件或行数是否有任何大小限制?
修改: 对不起,我忘了提到在FireFox和IE8中Windows 7中都出现了这个问题。
答案 0 :(得分:16)
Internet Explorer 据说每个文件的限制为4096个CSS 规则。 addRule
函数的限制似乎也适用于通过样式表应用的规则:Reference
此外,它可以嵌入单个文档中的样式表数量限制。我认为是20岁。
答案 1 :(得分:13)
我认为如果您的css文件大小有问题,那么现在是重新考虑您的样式策略的时候了。 CSS中的C代表级联。很常见的情况是,当CSS文件变得太大时,由于样式在适当的时候没有被重复使用,并且由于使用了级联行为。
我不是轻描淡写地说。我曾经在一些大型复杂的零售网站上工作,目前在非常复杂的金融交易应用程序上。每当我遇到超过几百种风格的网站时,我们通过降低css复杂性,在设计方面取得了很大的进步,降低了复杂性并提高了可维护性。
一个地方就是在 css reset 上进行Google搜索。有多种不同的实现,但它们通常遵循以下主题:覆盖每个浏览器的布局差异,并删除任意边框,边距和填充等。如果您愿意,请从干净的平板开始。然后你可以继续从那里建立你的风格,小心地充分利用级联和 css链
Chaining是元素上有多个类的地方。例如:
<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 :(得分:9)
CSS validator对您的CSS规则有什么看法?
剪切并粘贴样式表的最后一个“无效”规则:它们中的一些现在有效吗?
使用PSPad,Notepad ++,Scite等良好的文本编辑器可以看到明显的拼写错误:" ; /* */
等等。它们的范围非常有限,例如;
,或者很容易被看作是未关闭的评论。我遇到的不太明显的是没有关闭括号:
background: green url(img/dummy_gradient.png left top no-repeat;
没有什么工作到我的CSS规则中的下一个)
以下50行!
答案 3 :(得分:8)
你的问题是:
CSS文件或行数是否有任何大小限制?
对于IE9及更低版本,答案是是,具体取决于“行”和“大小限制”的含义。
答案 4 :(得分:6)
没有限制。可能是文件被缓存,这是你没有看到修改的原因。尝试清除浏览器缓存或 Ctrl + F5 。
答案 5 :(得分:3)
大多数普通浏览器没有限制(大多数答案都指出)。另一个非常重要的考虑如果你压缩你的响应,在Apache我会使用gzip或deflate,文件大小会大大减少。由于CSS非常重复,例如,在你的5000行中,你使用“color”一词800次,压缩只会向浏览器发送一个单词“color”,对压缩字典中的单词有799个引用。所以你的文件在磁盘上可能是88K,但在线上可能是9K。
FireFoxes Firebug等工具可用于查看压缩文件大小。我确信IE有一个http标头查看工具。
所以说实话,88K是磁盘上的文件大小,而如果使用压缩,则需要考虑响应中的文件大小。
答案 6 :(得分:1)
如果您没有看到反映的文件底部的添加内容,请查看是否可以找到它中断的位置并查找愚蠢的错误和错误。 CSS将会非常默默地失败,但仍然可以很愉快地工作直到它。
这可能是你担心的原因。
答案 7 :(得分:0)
在某些浏览器中可能存在(我没有听说过,但它有可能),但对于CSS文件来说88 KB绝对没问题。
答案 8 :(得分:0)
理论上,没有限制。
实际上,大多数普通浏览器(FF,Chrome,Opera,Safari)都可以处理你扔的任何东西。然而,一些较旧的和/或移动浏览器(Access NetFront,一个 - 与许多移动电话捆绑在一起)遇到大页面(大约100KB及以上)的问题并抛出各种错误。
TL; DR:不,除非你试图支持各种奇怪的浏览器。
答案 9 :(得分:0)
浏览器可以处理当然有限制,但它肯定超过88千字节或5000行。一个有根据的猜测就像一个兆字节或65535行...你可能会在达到极限之前遇到性能问题。
您看不到更改的原因可能是缓存。您可以使用 Ctrl + F5 在您自己的浏览器中清除页面的缓存(如Darin所述。)
我们在发布新版本时重命名CSS文件,以确保所有访问者都获得最新版本。
答案 10 :(得分:0)
你验证了你的CSS吗?有些浏览器会包含样式,直到语法错误(或某些语法错误)为止,然后有效地截断文件,导致这种行为。
我也投票支持重构你的CSS,你可能会少一些。 。