常见的命名格式:小驼峰:camelCase
、大坨峰:CamelCase
、kebab-case
BEM 代表块(Block),元素(Element),修饰符(Modifier)。
- 命名与业务无关,与功能有关, 与具体实现无关,与意图有关。
- 能简写的一定简写,舒服😌
- 扁平化样式(最多不超过3层)
命令规则
block__element--modifier
block-name__elem-name_mod-name_mod-val
- 双虚线样式 :
block-name__elem-name--mod-name--mod-val
- 驼峰命令:
blockName-elemName_modName_modVal
- React:
BlockName-ElemName_modName_modVal
- 无命名空间: _available
基本原则
- 选择器的名称必须完整准确地描述它所代表的 BEM 实体。
- 结合多个实体的行为和样式,无需复制代码。
- 将相同的格式应用于不同的 HTML 元素。
-
单一责任原则
-
开放/封闭原则
- 页面上的任何 HTML 元素都应该通过修饰符打开以进行扩展,但是对于更改是关闭的。
-
DRY
- DRY(“不要重复自己”)是一种软件开发原则,旨在减少代码中的重复。
- DRY原则仅适用于页面功能相似的组件
重新定义级别
在项目中实施 BEM 原则:
- 抛开DOM模型并学习创建块。
- 不要使用ID选择器或标签选择器。
- 最小化嵌套选择器的数量。
- 使用CSS类命名约定以避免名称冲突,并使选择器名称尽可能地提供信息和清晰。
- 在块,元素和修饰符方面工作。
- 如果块似乎可能更改,则将块的CSS属性移动到修饰符。
- 使用混合物。
- 将代码分成小的独立部分,以便于使用单个块。
- 重复使用块。
常用命名
- head
- content
- foot
- header
- footer
- body
- item
- inner
- title
- desc
- box
- list
- card
- name
- value
- label
- tag
- state
- panel
- tip
- type
- will
- before
- after
- Ms/MS(毫秒数,简写)
- CD(倒计时,简写)
- VM(ViewModel, 视图模型)
- DM (DataModel, 数据模型)
- batch 批量(批量请求)
- need_ 需要数量、剩余数量
- has_
- not_
- with_
- on (onShow)
- dev
- hub
- box
- cloud
- last
- Struct/Schema 结构
- wrapper 包装器
- more
- handle 回调处理
- on 回调
- ori(origin) 原始的
- target
- validate 验证
- valid 有效(合法)
- opitons 配置
- conf
- action 操作
- beyond 超出
- light/dark/append(扩展)
- auth 认证、权限
- forward/backward 前进/后退
- mold 取模
- step 步长
- increase/decrease 增加/减少
- remote/local
- current/cur 当前
- common 通用的/共同的
- general 一般
- rest- 剩余的,比如 restOptions
- skip 取消, 比如 skipErrorHandler
- Modal 模态框
常用缩写
http://shortof.com/search/luceneapi_node
与内容无关的 CSS
.card
.btn
,.btn--primary
,.btn--secondary
.badge
.card-list
, .card-list-item
.img--round
.modal-form
, .modal-form-section
效用优先的 CSS
- 文字大小,颜色和粗细
- 边框颜色,宽度和位置
- 背景颜色
- Flexbox实用程序
- 填充和保证金助手
参考地址