@jeffjade
2017-06-23T16:55:40.000000Z
字数 2252
阅读 1673
CSS
统一的命名规范,便于多人开发维护时代码统一,减少项目沟通和交接的成本,增加代码的语义化。
类名,ID名全部用小写,首字符必须是字母,禁止数字或其他特殊字符。由以字母开头的小写字母(a-z)
、数字(0-9)
、中划线 (-)
组成。
可以是单个单词,也可以是组合单词,要求能够描述清楚模块和元素的含义,使其具有语义化。避免使用 123456…,red,blue,left,right
之类的(如颜色、字号大小等)矢量命名,如class="left-news"、class="new2"
,以避免当状态改变时名称失去意义。尽量用单个单词简单描述 class 名称。
双单词或多单词组合方式:形容词-名词、命名空间-名次、命名空间-形容词-名词。例如:news-list、mod-feeds、mod-my-feeds、cell-title
。
ID是用来标识具体模块,命名必须具体且唯一,由前缀和名字组成,;在 HTML 里 ID 可以用于 JS 以及锚点定位,但是在 CSS 里只要用 class,尽最大可能不要用 ID,除非没有别的办法,来限制样式的作用范围(命名空间),或者为样式添加权重(Class 的优势在于复用性,而且私有度也并不高。私有度非常容易导致问题,所以将其降低就尤为重要。ID 的私有度是 class 的 255 倍,所以在 CSS 中坚决慎用。)。
在使用组件化开发系统时,为避免组件(模块)样式相互污染,需添加命名空间的方式来解决;而添加命名空间的方式有两种层级前缀
和类名前缀
:
使用类名前缀方式,示例如下:
<div component="header" class="header">
<div class="header-title">title</div>
<div class="header-home">home</div>
</div>
.header-title {color:blue;}
.header-home {height:25px; width:50px;}
命名前缀能很好地避开组件间的样式影响,划分了独立的组件样式独立空间,但缺点在于:
使用父级前缀方式,示例如下:
<div component="header" class="header">
<div class="title">title</div>
<div class="home">home</div>
</div>
.header .title {color:blue;}
.header .home {height:25px; width:50px;}
相比较,使用层级前缀的好处在于:
没有哪种方案是完美的,都会存在利与弊;层级前缀方
案,该方案的致命缺点,是不能完美解决组件样式独立性的问题。在现代化前端开发中,需要结合多种不同方案优势,打造出一套团队统一,语义化易于理解,可重用性高,后期维护容易,加载渲染快的命名方法。 当然也要善用 CSS 预处理器工具,比如 Sass,从编程角度更好去编写处更有的 CSS。更多建议可参见 CSS 命名规范总结、通用 CSS 笔记、建议与指导。
ID名称 | 命名 | ID名称 | 命名 |
---|---|---|---|
头部 | header | 主体 | main |
脚部 | footer | 容器 | wrapper |
侧栏 | side-bar | 栏目 | column |
布局 | layout | 内容 | content |
Class名称 | 命名 | Class名称 | 命名 |
---|---|---|---|
模块(如:新闻模块) | mod (mod-news) | 标题栏 | title |
内容 | content | 次级内容 | sub-content |
Class名称 | 命名 | Class名称 | 命名 |
---|---|---|---|
导航 | nav | 主导航 | main-nav |
子导航 | sub-nav | 顶部导航 | top-nav |
菜单 | menu | 子菜单 | sub-menu |
Class名称 | 命名 | Class名称 | 命名 |
---|---|---|---|
二级 | sub | 面包屑 | breadcrumb |
标志 | logo | 广告 | bner(禁用banner或ad) |
登陆 | login | 注册 | register/reg |
搜索 | search | 加入 | join |
状态 | status | 按钮 | btn |
滚动 | scroll | 标签页 | tab |
文章列表 | list | 短消息 | msg/message |
当前的 | current | 提示小技巧 | tips |
图标 | icon | 注释 | note |
指南 | guide | 服务 | service |
热点 | hot | 新闻 | news |
下载 | download | 投票 | vote |
合作伙伴 | partner | 友情链接 | link |
版权 | copyright | 演示 | demo |
下拉框 | select | 摘要 | summary |
翻页 | pages | 主题风格 | themes |
设置 | set | 成功 | suc |
按钮 | btn | 文本 | txt |
颜色 | color | 背景 | bg |
边框 | border | 居中 | center |
上 | top | 下 | bottom |
左 | left | 右 | right |
添加 | add | 删除 | del |
间隔 | sp | 段落 | p |
弹出层 | pop | 公共 | global/common |
操作 | op | 密码 | pwd |
透明 | tran | 信息 | info |
重点 | hit | 预览 | pvw |
单行输入框 | input | 首页 | index |
日志 | blog | 相册 | photo |
留言板 | guestbook | 用户 | user |
确认 | confirm | 取消 | cancel |
报错 | error |