博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]css代码优化的12个技巧
阅读量:5011 次
发布时间:2019-06-12

本文共 2781 字,大约阅读时间需要 9 分钟。

1.ID 规则

2.Class 规则
3.标签规则
4.通用规则
对效率的普遍认识是从Steve Souders在2009年出版的《高性能网站建设进阶指南》开始,虽然该书中罗列的更加详细,但你也可以在这里查看完整的引用列表,也可以在谷歌的《高效CSS选择器的最佳实践》中查看更多的细节。
本文我想分享一些我在编写高性能CSS中用到的简单例子和指南。这些都是受到MDN 编写的高效CSS指南的启发,并遵循类似的格式。

一、避免过度约束

 一条普遍规则,不要添加不必要的约束。

复制代码代码如下:
 // 糟糕
ul#someid {..}
.menu#otherid{..}
// 好的
#someid {..}
#otherid {..}

 

二、后代选择符最烂

不仅性能低下而且代码很脆弱,html代码和css代码严重耦合,html代码结构发生变化时,CSS也得修改,这是多么糟糕,特别是在大公司里,写html和css的往往不是同一个人。

复制代码代码如下:
// 烂透了
html div tr td {..}

 

三、避免链式(交集)选择符

这和过度约束的情况类似,更明智的做法是简单的创建一个新的CSS类选择符。

复制代码代码如下:
// 糟糕
.menu.left.icon {..}
// 好的
.menu-left-icon {..}

 

四、坚持KISS原则

想象我们有如下的DOM:

复制代码代码如下:
<ul id="navigator">
    <li><a href="#" class="twitter">Twitter</a></li>
    <li><a href="#" class="facebook">Facebook</a></li>
    <li><a href="#" class="dribble">Dribbble</a></li>
</ul>

 

下面是对应的规则……

复制代码代码如下:
// 糟糕
#navigator li a {..}
// 好的
#navigator {..}

 

五、使用复合(紧凑)语法

尽可能使用复合语法。

复制代码代码如下:
// 糟糕
.someclass {
 padding-top: 20px;
 padding-bottom: 20px;
 padding-left: 10px;
 padding-right: 10px;
 background: #000;
 background-image: url(../imgs/carrot.png);
 background-position: bottom;
 background-repeat: repeat-x;
}
// 好的
.someclass {
 padding: 20px 10px 20px 10px;
 background: #000 url(../imgs/carrot.png) repeat-x bottom;
}

 

六、避免不必要的命名空间

复制代码代码如下:
// 糟糕
.someclass table tr.otherclass td.somerule {..}
//好的
.someclass .otherclass td.somerule {..}

 

七、避免不必要的重复

尽可能组合重复的规则。

复制代码代码如下:
// 糟糕
.someclass {
 color: red;
 background: blue;
 font-size: 15px;
}
.otherclass {
 color: red;
 background: blue;
 font-size: 15px;
}
// 好的
.someclass, .otherclass {
 color: red;
 background: blue;
 font-size: 15px;
}

八、尽可能精简规则
在上面规则的基础上,你可以进一步合并不同类里的重复的规则。

复制代码代码如下:
// 糟糕
.someclass {
 color: red;
 background: blue;
 height: 150px;
 width: 150px;
 font-size: 16px;
}
.otherclass {
 color: red;
 background: blue;
 height: 150px;
 width: 150px;
 font-size: 8px;
}
// 好的
.someclass, .otherclass {
 color: red;
 background: blue;
 height: 150px;
 width: 150px;
}
.someclass {
 font-size: 16px;
}
.otherclass {
 font-size: 8px;
}

九、避免不明确的命名约定
最好使用表示语义的名字。一个好的CSS类名应描述它是什么而不是它像什么。
十、避免 !importants
其实你应该也可以使用其他优质的选择器。

 

十一、遵循一个标准的声明顺序

虽然有一些排列CSS属性顺序常见的方式,下面是我遵循的一种流行方式。

复制代码代码如下:
.someclass {
 /* Positioning */
 /* Display & Box Model */
 /* Background and typography styles */
 /* Transitions */
 /* Other */
}

十二、组织好的代码格式
代码的易读性和易维护性成正比。下面是我遵循的格式化方法。

复制代码代码如下:
// 糟糕
.someclass-a, .someclass-b, .someclass-c, .someclass-d {
 ...
}
// 好的
.someclass-a, 
.someclass-b, 
.someclass-c, 
.someclass-d {
 ...
}
// 好的做法
.someclass {
    background-image:
        linear-gradient(#000, #ccc),
        linear-gradient(#ccc, #ddd);
    box-shadow:
        2px 2px 2px #000,
        1px 4px 1px 1px #ddd inset;
}

 

显然,这里只讲述了少数的规则,是我在我自己的CSS中,本着更高效和更易维护性而尝试遵循的规则。如果你想阅读更多的知识,我建议阅读MDN上的编写高效的CSS和谷歌的优化浏览器渲染指南。

 

转自http://www.jb51.net/article/47576.htm

转载于:https://www.cnblogs.com/AaronBear/p/5675786.html

你可能感兴趣的文章
C# 线程手册 第五章 扩展多线程应用程序 - 什么是线程池
查看>>
笔记1126ASP.NET面试题(转)
查看>>
考研路茫茫--单词情结 - HDU 2243(AC自动机+矩阵乘法)
查看>>
HTTP运行期与页面执行模型
查看>>
tableView优化方案
查看>>
近期思考(2019.07.20)
查看>>
Apache2.4使用require指令进行访问控制
查看>>
冗余关系_并查集
查看>>
做最好的自己(Be Your Personal Best)
查看>>
如何搭建github+hexo博客-转
查看>>
HW2.2
查看>>
将Windows Server 2016 打造成工作站(20161030更新)
查看>>
5大主浏览器css3和html5兼容性大比拼
查看>>
hdu-5894 hannnnah_j’s Biological Test(组合数学)
查看>>
scss常规用法
查看>>
css定位position属性深究
查看>>
android中不同版本兼容包的区别
查看>>
Static 与 new 的问题【待解决】
查看>>
xml
查看>>
在 mvc4 WebApi 中 json 的 跨域访问
查看>>