关于一些小细节

  1. 在提交代码之前,把代码中的打印输出之类删除,比如:console.log()

一、目录结构

  1. 这个主要是看框架,根据原本框架怎么命名就怎么规范命名

    二、HTML

  2. HTML属性应该按照特定的顺序出现以保证易读性

    1. id class name data-xxx src, for, type, href title, alt aria-xxx, role value style
  3. 若是空元素标签,就使用自闭和的方式编写,代码

    二、CSS

  4. 一行代码结束,在末尾添加上分号 ```css / bad / div { color: red }

/ good / div { color: red; }

  1. 2. 流。尽量不要改变元素默认行为。保持默认的文本流。比如,
  2. ```css
  3. /* 移出一个图片下面的一个白块,不影响原本的显示:*/
  4. /* bad */
  5. img {
  6. display: block;
  7. }
  8. /* good */
  9. img {
  10. vertical-align: middle;
  11. }
  12. /* 类似的,尽量不要改变浮动方式。 */
  13. /* bad */
  14. div {
  15. width: 100px;
  16. position: absolute;
  17. right: 0;
  18. }
  19. /* good */
  20. div {
  21. width: 100px;
  22. margin-left: auto;
  23. }
  1. 选择器 ```css / 紧密耦合DOM选择器,三个层级以上建议加class: / / bad / div:first-of-type :last-child > p ~ *

/ good / div:first-of-type .info

/ 紧密耦合DOM选择器,三个层级以上建议加class: / / bad / img[src$=svg], ul > li:first-child { opacity: 0; }

/ good / [src$=svg], ul > :first-child { opacity: 0; }

  1. 4. 指明
  2. ```css
  3. /* 不要让代码难于重写,让选择器更精确,减少ID、避免使用!important */
  4. /* bad */
  5. .bar {
  6. color: green !important;
  7. }
  8. .foo {
  9. color: red;
  10. }
  11. /* good */
  12. .foo.bar {
  13. color: green;
  14. }
  15. .foo {
  16. color: red;
  17. }
  1. 覆盖 ```css / 覆盖样式会使维护和调试更困难,所以要尽量避免。 / / bad / li { visibility: hidden; } li:first-child { visibility: visible; }

/ good / li + li { visibility: hidden; }

  1. 6. 继承
  2. ```css
  3. /* 不要把可继承的样式重复声明: */
  4. /* bad */
  5. div h1, div p {
  6. text-shadow: 0 1px 0 #fff;
  7. }
  8. /* good */
  9. div {
  10. text-shadow: 0 1px 0 #fff;
  11. }
  1. 简洁性 ```css / 保持代码的简洁。使用属性缩写。不必要的值不用写。 / / bad / div { transition: all 1s; top: 50%; margin-top: -10px; padding-top: 5px; padding-right: 10px; padding-bottom: 20px; padding-left: 10px; }

/ good / div { transition: 1s; top: calc(50% - 10px); padding: 5px 10px 20px; }

  1. 8. 语言
  2. ```css
  3. /* 能用英文的时候不用数字。 */
  4. /* bad */
  5. :nth-child(2n + 1) {
  6. transform: rotate(360deg);
  7. }
  8. /* good */
  9. :nth-child(odd) {
  10. transform: rotate(1turn);
  11. }
  1. 动画 ```css / 除了变形和改变透明度用animation,其他尽量使用transition。 / / bad / div:hover { animation: move 1s forwards; } @keyframes move { 100% { margin-left: 100px; } }

/ good / div:hover { transition: 1s; transform: translateX(100px); }

  1. 10. 单位。这个先占个位
  2. ```css
  3. /* 可以不用单位时就不用。建议用rem。时间单位用s比ms好。 */
  1. 颜色 ```css / 需要做透明效果是用rgba,否则都用16进制表示: / / bad / div { color: hsl(103, 54%, 43%); }

/ good / div { color: #5a3; } ```


  1. 三、JavaScript