关于该如何给CSS命名

说到CSS命名,其实里面还有有很多思考的空间的。
经过我短浅的见识,以下谈谈我对于CSS命名的一些了解和见解。

其中,我发现有两种风格对立的命名方法。

  • 面对元素命名

    这是一种比较普遍的做法。
    给元素设定类名的时候,尽可能的语义化,贴近元素本身。
    比如在给左边栏的头部空间定义类名的时候,
    可能会做出 .side-left-header 这样的类名,
    这样命名的好处是,样式表只用一个类名就可以定位元素,
    而且一眼就能看出这是为哪个元素设定样式,
    维护起来比较方便,省去很多查找时间。
    但是缺点也比较明显,
    类名太长,有时候可能类名比要设定的属性还要长。
    另外就是复用性的问题,
    若当有另一个元素,也与它有相同的属性表现,
    又要重新设置一个类名,并且内容还是一样的。
    这听起来就比较恶心了吧。

  • 面对属性命名

    而另一个与之相反的方案,
    就是把CSS属性都打散,
    为一种属性设置设置一个类名,比如

    .fs16 { font-size: 16px; }
    .fs20 { font-size: 20px; }
    .m10 { margin: 10px; }
    .p20 { padding: 20px; }
    

    这样的CSS命名方法,
    明显缩短了类名的长度,也大大提高了代码的复用性。
    在一些属性重复比较多的项目里,把CSS文件压缩到了极致。
    但是,如果使用这样的CSS命名方式,
    HTML文档中也多出了许多class代码。
    而且当需要修改样式时,是需要查找HTML文件修改的。

  • 还有一种风格

    另外,还有一种 “ 超脱于尘世 ” 的命名方法。

    .a {height: 100px;}
    .b {font-size: 2em;}
    .z {background: none;}
    

    这种命名简直就是简单粗暴,
    每一个类名相当于只是一个标志,并没有任何意义。
    这种极度简洁的命名方式其实还是可以接受的。
    在一些不需要语义,不需要考虑维护性的地方,
    可以带来相当大的便利甚至眼前一亮。

  • 综上所述,说点总结。

两种命名规则,都各有各的优点,当同时缺点也比较明显,
面对元素命名,清晰但臃肿,
面对属性命名,高效但维护成本高。

其实,两种规则看似矛盾,但我举得还是可以适当揉合
以元素命名为基础,在一些复用性比较高的属性上,
把它们提取出来,单独作为一个类,方便重复使用。

虽然说起来简单,这还是需要不少的经验和功力的,
最主要的我觉得还是这个意识吧。

应该有个大局意识,从着手之前就该有个概念,
哪些属性复用性比较高,提前把它拎出来。
我觉得我首先可以从 .clear .in-block 等元素开始。

  • 最后稍稍附一些命名规范

命名 内容
重要部分
外套 wrap 用于最外层
头部 header 用于头部
主要内容 main 用于主体内容(中部)
左侧 main-left 左侧布局
右侧 main-right 右侧布局
导航条 nav 网页菜单导航条
内容 content 用于网页中部主体
底部 footer 用于底部
具体元素
wrapper 页面外围控制整体布局宽度
container或content 容器,用于最外层
layout 布局
head, header 页头部分
foot, footer 页脚部分
nav 主导航
subnav 二级导航
menu 菜单
submenu 子菜单
sideBar 侧栏
sidebar-a, sidebar-b 左边栏或右边栏
main 页面主体
tag 标签
msg message 提示信息
tips 小技巧
vote 投票
friendlink 友情连接
title 标题
summary 摘要
loginbar 登录条
searchInput 搜索输入框
hot 热门热点
search 搜索
search-output 搜索输出和搜索结果相似
searchBar 搜索条
search-results 搜索结果
copyright 版权信息
branding 商标
logo 网站LOGO标志
siteinfo 网站信息
siteinfoLegal 法律声明
siteinfoCredits 信誉
joinus 加入我们
partner 合作伙伴
service 服务
regsiter 注册
arr/arrow 箭头
guild 指南
sitemap 网站地图
list 列表
homepage 首页
subpage 二级页面子页面
tool, toolbar 工具条
drop 下拉
dorpmenu 下拉菜单
status 状态
scroll 滚动
.tab 标签页
.left .right .center 居左、中、右
.news 新闻
.download 下载
.banner 广告条(顶部广告条)



这篇文章其实是启发自大神——张鑫旭的精简高效的CSS命名准则

同时还有另一篇文章可以参考——DIV+CSS规范命名大全集合




Wait me back

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 8,588评论 0 5
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 8,514评论 0 40
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 7,508评论 0 30
  • 未来无法把握 年纪越来越大,好像很多事情越来越无法把握。很多事情不是想就能够做到的,很多事很多人终究要放弃。...
    爱做白日梦的加菲阅读 1,027评论 0 0