【发布时间】:2013-05-04 02:15:40
【问题描述】:
我最近开始使用 LessCSS,并且在我的 CSS 变得多么干净和可读方面取得了相当大的成功。但是,我认为我没有充分利用 Less。
我现在正在使用 Less 编写我的第一个完全响应式网站,我关心的是性能和速度。 需要注意的一点是我不坚持“断点”方法——我会放大和缩小东西直到它们中断,然后我编写 CSS 来修复它们;这通常会导致 20 到 100 个媒体查询。
我想开始使用 Less 将媒体查询嵌套在我的元素中,例如下面的示例:
.class-one {
//styles here
@media (max-width: 768px) {
//styles for this width
}
}
.class-two {
//styles here
@media (max-width: 768px) {
//styles for this width
}
}
通过我的初始测试,我发现在查看编译后的 CSS 输出时 - 这种方法会导致多个(许多!)@media (max-width: ___px) 实例。我搜索了互联网,但没有找到任何明确解释嵌套/冒泡媒体查询的性能影响的内容。
更新 1: 我意识到更多的 CSS 信息会导致下载更大的 CSS 文件 - 但我并不担心网站加载时间作为唯一指标。我对 DOM 准备好后浏览器对内存和性能的处理更感兴趣。
更新 2 和半解决方案:我找到了 this article which discusses the four main categories of CSS selectors and their efficiencies。我强烈推荐阅读这本书,它帮助我理清如何最好地处理我的过度媒体查询的 CSS。
所以我的问题是:在 DOM 准备好之后,在我编译的样式表中有这么多媒体查询会影响加载时间和性能吗?
【问题讨论】:
-
大量媒体查询绝对会增加您的文件大小(怎么可能?),这反过来又会影响下载所需的时间。
-
感谢@cimmanon 的快速回复,文件大小的含义并不是我真正想要的。更具体地说,我在 DOM 准备好后获取有关网站性能、响应能力和浏览器资源使用情况的信息。
-
那么做一个性能测试让我们知道吗?
-
我无法直接回答您的性能问题,但我倾向于建议更改为“'断点'方法”以避免一起出现问题。还有一些方法可以清理代码,using either the question or the answer from this SO question
-
感谢@ScottS - 但是“断点”方法对我根本不起作用。我工作的网站是非常定制的,我的客户不会接受任何低于完全定制的网站的东西。我们以创建有别于“模板”和“一体式网站”的网站而自豪。
标签: css performance less media-queries