当前位置: 首页 > Web前端 > CSS

Web性能优化:21种优化CSS,提速的方法

时间:2023-03-31 00:40:17 CSS

阿里云最近在做活动,低至20折,有兴趣的可以去看看:https://promotion.aliyun。com/...为保证提高可读性,本文采用意译而非直译。这是Web性能优化的第4部分。点击查看上一篇:Web性能优化:使用Webpack分离数据的正确方式Web性能优化:图片优化减少网站体积62%Web性能优化:缓存React事件以提高性能CSS必须经过相对复杂的pipeline,就像HTML和JavaScript一样,浏览器必须从服务器下载文件,解析它,并将其应用到DOM。由于优化程度高,这个过程通常非常快——对于不基于框架的小型Web项目,CSS通常只占总资源消耗的一小部分。框架打破了这种平衡。包括一个JavaScriptGUI堆栈,例如jQueryUI,以观察CSS、JS和HTML的大小增长。通常,开发人员是最后感受到压力的,当他们在强大的8核工作站后面使用T3互联网时,没有人关心速度,这会随着延迟或cpu受限的设备而改变。优化CSS需要多维方法。虽然可以使用各种技术简化手写代码,但手动检查框架代码效率低下。在这些情况下,使用自动简化会产生更好的结果。以下步骤将带我们进入CSS优化的世界。并非所有这些都可以直接应用于您的项目,但记住它们很重要。01.使用缩写使用缩写语句,如下所示的边距语句,可以从根本上减小CSS文件的大小。谷歌搜索CSSShorthand可以找到许多其他速记形式。p{顶部边距:1px;右边距:2px;底部边距:3px;左边距:4px;}p{边距:1px2px3px4px;}02。FindandremoveunusedCSSremoveunnecessaryPartialCSS,j会明显加快网页的加载速度。Google的Chrome浏览器具有开箱即用的此功能。只需转到View>Developer>DeveloperTools,在最近的构建中打开Sources选项卡,然后打开命令菜单。然后,选择ShowCoverage,在Coverage分析窗口中高亮显示当前页面未使用的代码,会让你大开眼界。打开Goog??leChrome开发工具,选择Conlse旁边的Coverage,可以看到未使用的CSS,点击对应项,高亮显示当前页面未使用的代码,睁眼一看:03。更方便的做法是不在逐行分析中导航必然方便。在谷歌浏览器中使用Audits可以快速帮我们分析、使用方法,打开开发者工具,点击Audits栏目,点击Runaudits。开始分析结果。04.注意这些问题请记住,CSS的自动分析总是会导致错误。用压缩后的CSS文件替换未压缩的CSS文件后,彻底测试整个站点——没有人知道优化器会犯什么错误。05.内联关键CSS加载外部样式表所花费的时间是由于延迟——因此,将最关键的代码放在头部。但是,请确保不要过度,并记住执行维护任务的人员也必须阅读代码。你好,世界!

06。允许反并行解析@import可以很容易地在代码中添加CSS样式。不幸的是,这些好处不是没有代价的:由于@import可以嵌套,它们不能被并行解析。一种更并行的方法是使用一系列浏览器可以立即获取的标记。@importurl("a.css");@importurl("b.css");@importurl("c.css");07。用CSS替换图片几年前,一组半透明的png在网站上创建半透明效果是家常便饭。CSS过滤器现在提供了一种资源高效的替代方案。例如,以下代码片段可确保所讨论的图像显示为自身的灰度版本。img{-webkit-filter:灰度(100%);/*oldsafari*/filter:grayscale(100%);}08.使用颜色快捷键常识告诉我们,六位数的颜色描述符是表达颜色最有效的方式。情况并非如此——在某些情况下,速记描述或颜色名称可能会更短。目标{背景颜色:#ffffff;}target{背景:#fff;}09.删除不必要的零和单位CSS支持多种单位和数字格式。它们是一个值得感谢的优化目标-可以删除尾随零,如下面的代码片段所示。另外,请记住,零始终是零,添加维度不会为包含的信息增加价值。填充:0.2em;边距:20.0em;值:0px;填充:.2em;边距:20em;值:0;10。消除过多的分号这种优化需要谨慎,因为它会影响代码更改。CSS规范允许省略属性组中的最后一个分号。由于这种优化方法节省的成本很小,我们主要为开发自动优化的程序员说明这一点。p{。..font-size:1.33em}11.由于协议开销,使用纹理图集,加载多个小图像的效率很低。CSS精灵将一系列小图像组合成一个大的PNG文件,然后按CSS规则对其进行分解。TexturePacker等程序大大简化了创建过程。.download{宽度:80px;高度:31px;背景位置:-160px-160px}.download:hover{width:80px;高度:32px;background-position:-80px-160px}12.省略px以提高性能的简单方法是使用CSS标准的一项功能。0的值默认为px-删除px可为每个数字节省两个字节。h2{填充:0px;保证金:0px;}h2{填充:0;margin:0}13.避免需要性能要求的属性分析表明,一些标签比其他标签更昂贵。以下解析可能会影响性能-如果不需要,请尽量不要使用它们。border-radiusbox-shadowtransformfilter:nth-childposition:固定;14.删除空格空格——考虑到制表符、回车和空格——使代码更易于阅读,但从解析器的角度来看,它的用处不大。在发布之前删除它们,最好将此任务委托给shell脚本或类似脚本。15.删除注释注释对编译器也没有影响。创建自定义解析器以在发布前删除它们。这不仅可以节省带宽,还可以确保攻击者和克隆者更难理解手头代码背后的思想。16.使用自动压缩Yahoo 的UX团队创建了一个应用程序来处理许多压缩任务。它作为 JAR 文件分发,可在此处获取,并且可以与所选的JVM一起运行。java-jaryuicompressor-x.y.z.jar用法:java-jaryuicompressor-x.y.z.jar[选项][输入文件]全局选项-h,--help显示此信息--type指定输入文件的类型17。在NPM中运行它如果您想将该产品集成到Node.JS中,请访问npmjs.com/package/yuicompressor。维护不善的存储库包含一组包装器文件和一个JavaScriptAPI。varcompressor=require('yuicompressor');compressor.compress('/path/to/fileorStringofJS',{//CompressorOptions:charset:'utf8',type:'js',18.KeepSassCheckthatwhileCSSselectorsperformanceisnotas尽管它在几年前很重要(请参阅参考资料),但像Sass这样的框架有时会产生非常复杂的代码,时不时地查看输出文件,并考虑优化结果的方法。19.设置缓存有一句老话最快的文件永远不会通过网络发送。让浏览器有效地缓存请求来实现这一点。不幸的是,缓存标头的设置必须在服务器上完成。上面两个提供快速方法的Chrome工具20.BreakingCaches设计师通常不喜欢缓存,因为他们担心浏览器会缓存最后的样式表。解决这个问题的一个简单方法是包含一个带名称的文件。不幸的是,因为一些代理拒绝缓存文件使用“动态”路径,t中概述的场景此步骤附带的代码并非在任何地方都有效。21.不要忘记基础优化CSS只是游戏的一部分。如果您的服务器不使用HTTP/2和gzip压缩,那么在数据传输过程中会浪费很多时间.幸运的是,这两个问题通常都很简单。我们的示例展示了对通用Apache服务器的一些调整。如果您发现自己在不同的系统上,只需参阅服务器文档即可。pico/etc/httpd/conf/httpd.confAddOutputFilterByTypeDEFLATEtext/htmlAddOutputFilterByTypeDEFLATEtext/css无法实时获知代码部署后可能出现的bug。之后为了解决这些bug,花费了大量的时间在日志调试上。在这里,顺便推荐一个好用的BUG监控工具Fundebug。你的点赞是我继续分享好东西的动力,欢迎点赞!干货交流系列文章总结如下。我觉得点个Star就好了。欢迎加群,互相学习。https://github.com/qq44924588...我是小智,公众号《大招天下》的作者,前端技术爱好者。我会经常分享自己学习看到的干货,在进步的路上互相鼓励!关注公众号,后台回复福利,就能看到福利,你懂的。