css的优化有哪些?
提高性能这块
1.不使用@import。
2.避免使用复杂的选择器,层级越少越好。
3利用继承减少代码量。
提高可维护性
1.命名和备注
2.提取重复样式
方法论
oocss (object oriented css)
两个原则:
1.结构与样式分离:提取公用的样式出来,减少重复代码和精简css。
2.内容和容器分离。
SMACSS Scalable and Modular Architecture for CSS。可扩展和模块化的CSS架构。
将样式分为五类:Base(基础样式表),Layout(布局样式),Module(模块),State(状态样式),Theme(主题)
BEM
block:网页由block组成
element:是block的一部分,具有某种功能。
modifier:修饰block或element。
通过BEM命中法写样式如下
.block{}
.block-element{}
.block-modifier{}
.block-element-modifier{}
对BEM的看法是:
(1)页面CSS模块化,每个block就是一个模块,模块间相互独立
(2)多级的class命名,避免选择器的嵌套结构