如果使用 css 有一段时间,那么您就会知道继承、特异性和命名是一些最难处理的事情。由于所有 css 都是全局的,随着代码库的增长,防止样式相互冲突并导致意外副作用变得越来越困难!下面本篇文章给大家分享一些css命名小技巧,让我们的代码优雅又耐看,希望对大家有所帮助!

CSS命名——BEM
BEM是什么
BEM是一种CSS命名规范。【推荐学习:css视频教程】
BEM代表 “块(block),元素(element),修饰符(modifier)”。
立即学习“前端免费学习笔记(深入)”;
在选择器中,由以下三种符号来表示扩展的关系:
- 中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。__ 双下划线:双下划线用来连接块和块的子元素_ 单下划线:单下划线用来描述一个块或者块的子元素的一种状态
使用BEM示例对比
Block
如下面的例子,li.item 是列表的一个子元素
/* 常规写法和BEM写法相同 */.list
元素(Element)
/* 常规写法 */
- Pricing
- Contact
- Pricing
- Contact
/* 常规写法 */ .list{} .list .item{} /* BEM写法 */ .list{} .list__item{}
修饰符(modifier)
一个“修饰符”可以理解为一个块的特定状态!
/* 常规写法 */
- Pricing
- Contact
- Pricing
- Contact
/* 常规写法 */ .list{} .list .item{} .list .item.active{} /* BEM写法 */ .list{} .list__item{}.list__item_active{}
BEM 的好处
摆脱特异性的困扰修复继承问题停止担心命名
css命名几大原则
短命名比长命名会更好
因为短命名缩短书写时间,也减小了css文件大小!例如这个例子:
// 推荐.some-intro{...}// 不推荐.some-introduction{...}
组合命名比单命名会更好
// 不建议.header{...}//推荐.cs-header{...}
面向属性的命名和面向语义的命名
面向属性的命名指选择器的命名是跟着具体的CSS样式走的,与项目、页面、模块统统没有关系。例如,比较经典的清除浮动类名.clearfix:
.clearfix:after { content : ''; display: table; clear: both; }
面向语义的命名则是根据应用元素所处的上下文来命名的。例如:
.header { background-color: #333; color: #fff; }.logo {font-size: 0; color : transparent;}
上述两种命名方式各有优缺点:
1、面向属性
优点:在于CSS的重用率高,性能最佳,即插即用,方便快捷,开发也极为迅速,因为它省去了大量在 HTML 和CSS文件之间切换的时间。缺点:在于由于属性单一,其适用场景有限,另外因为使用方便,易被过度使用,从而带来更高的维护成本。
2、面向语义
优点是应用场景广泛,可以实现非常精致的布局效果,扩展方便;缺点:在于代码啰唆,开发效率一般,因为所有HTML都需要命名,哪怕是一个10像素的间距。这就导致很多开发者要么选择直接使用标签选择器,要么就选择一个简单的类名,然后通过父子关系限定样式,结果带来了更糟糕的维护问题。
命名汇总推荐
状态
前一个 prev后一个 next当前的 current显示的 show隐藏的 hide打开的 open关闭的 close选中的 selected有效的 active默认的 default反转的 toggle禁用的 disabled危险的 danger主要的 primary成功的 success提醒的 info警告的 warning出错的 error大型的 lg小型的 sm超小的 xs
布局
文档 doc头部 header(hd)主体 body 尾部 footer(ft) 主栏 main侧栏 side 容器 box/container
通用部件
列表 list列表项 item表格 table 表单 form链接 link标题 caption/heading/title菜单 menu集合 group条 bar内容 content 结果 result
组件
按钮 button(btn)字体 icon下拉菜单 dropdown工具栏 toolbar分页 page缩略图 thumbnail警告框 alert进度条 progress导航条 navbar导航 nav 子导航 subnav面包屑 breadcrumb(crumb) 标签 label徽章 badge巨幕 jumbotron面板 panel洼地 well标签页 tab提示框 tooltip弹出框 popover轮播图 carousel手风琴 collapse 定位浮标 affix
语义化小部件
品牌 brand标志 logo额外部件 addon版权 copyright注册 regist(reg)登录 login搜索 search 热点 hot帮助 help信息 info提示 tips开关 toggle新闻 news广告 advertise(ad)排行 top 下载 download
功能部件
左浮动 fl右浮动 fr清浮动 clear
命名网站推荐
codelf:https://unbug.github.io/codelf
参考文档:
1、张鑫旭的《css选择世界》
2、https://www.cnblogs.com/qianxiaox/p/13816077.html
(学习视频分享:web前端)
以上就是如何写出优雅耐看的css代码?css命名小技巧分享!的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1624838.html
微信扫一扫
支付宝扫一扫