【css】高效地写样式

日常工作中,多人合作模式下如果能统一规范风格,很有利于提高代码可读性与可维护性;记录一下用过的📝

命名

结合 中划线 和 双下划线, -表示特定意义模块,__表示下面的子模块

/* 新闻版块 */
.news-borad {
    .board__abstract {/* 摘要 */
        .indicator__content {/* 摘要 内容 */
          margin: 20px 0;
        }
        .indicator__title {/* 摘要 标题*/
          margin-bottom: 13px;
        }
        /* ... */
    }
}

选择器使用

选择器嵌套应尽量少于 3 级,提高代码 可读性与可维护性

/* bad❌ */
.page .header .login #username input {}

/* good✅*/
.page input {}
  • 尽量简洁,不要使用嵌套过多过于复杂的选择器。
  • 通配符和属性选择器👇效率最低,需要匹配的元素最多,尽量避免使用。
/* 通配符 */
*.warning {color:red;}
*#maincontent {border: 1px solid blue;}

/* 属性选择器:包含 "example" 的链接 */
a[href*="example"] {
  background-color: green;
}
  • 避免使用 CSS Expression(为了确保有效性,CSS 表达式会进行频繁的求值,耗能大。在很多团队也中它也是被禁用的)
  • 日常小规范的积累,才能有效控制代码质量🔩

考虑性能的属性选择

这些是计算量较大的属性

box-shadows
border-radius
transparency
transform(恰当使用,也可提高效率👇)
CSS filters

需要避免页面元素的重绘重排

  • 使用 transform 替代 top,left等属性的转换
  • 使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回流(改变了布局)
  • 不要把节点的属性值放在一个循环里当成循环里的变量。(获取属性值的时候,会引起重新计算)
  • 不要使用 table 布局,可能很小的一个小改动会造成整个的重新布局
  • 动画实现的时机选择,可以选择使用 requestAnimationFrame

变量使用,函数使用(scss)

$@mixin@include;其中变量的使用,既方便统一批量修改,也有利于后期扩展主题切换的需求,具体可参考Vue项目中Scss实现主题切换
📌像这些定义mixins的文件,文件名头可以加上下划线,这样后面就不会被编译成单独的css文件了

/* 引用全局变量 */
.main__container {
   box-sizing: border-box;
   border: 1px solid $--color-card-grey;
   background: $--color-white;
}
/* 居中 */
@mixin center {
    position: relative;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
.box {
  @include center;
}

公共样式,常用的搭配,提出来用

/*输入提示文字placeholder*/
.ph-t {
    font-size: 13px;
    color: #B3B7C8;
    cursor: default;
}
/* 清除浮动 */
.clearfix:after {
    content: "";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}

目前的项目里,甚至连常用的margin,font-size等高频属性,也提取出来了🙌,个人感觉用起来还是比较方便

.ml-20 {
    margin-left: 20px;
}
.fs-16 {
    font-size: 16px;
}

最近看到一个css框架,感觉还不错,哇哦!🧐

Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-centerrotate-90 这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容