css - LESS、媒体查询和性能

标签 css performance less media-queries

我最近开始使用 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 准备就绪后,我编译的样式表中有这么多媒体查询会影响加载时间和性能吗?

最佳答案

几乎不可能给你一个完全准确的答案。

当询问性能时,典型的答案是分析它并查看您得到的结果。先修复最慢的部分,然后重复。

您可以在 Chrome 开发者工具中分析 CSS 选择器:

enter image description here

最终,我认为媒体查询对性能的影响远不及稍微复杂的选择器。

您可以在此处查看有关编写高效 CSS 的更多信息:

https://developers.google.com/speed/docs/best-practices/rendering

此外,关于文件大小和重复 CSS,gzip 几乎 完全消除了这一点,因为 gzip 算法最适合处理重复数据。

关于css - LESS、媒体查询和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16464575/

相关文章:

javascript - 在 :visited , 中只有一项更改有效

css - IE 中的扩展库应用程序布局 Placebar 中的对齐问题,但 Firefox 中没有

performance - 使用Hive/Hadoop连接两个排序的文件

css - Bootstrap : rows overlaping & height inconsistency

css - Less.js : error evaluating function `min` : incompatible types

php - 如何在 php/javascript 中打印输出时隐藏可见的超链接

performance - T-SQL 中 SELECT 与 SET 的速度

c - 空循环比 C 中的非空循环慢

ruby - 如何在 Rails 之外使用 less.rb 处理 Bootstrap

css - HTML CSS 中的图像放置