2023.03.21
294
BEM是一种CSS命名规范。
BEM代表 “块(block),元素(element),修饰符(modifier)”。
在选择器中,由以下三种符号来表示扩展的关系:
- 中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。 __ 双下划线:双下划线用来连接块和块的子元素
_ 单下划线:单下划线用来描述一个块或者块的子元素的一种状态 复制代码
如下面的例子,li.item 是列表的一个子元素
/* 常规写法和BEM写法相同 */ .list
/* 常规写法 */ <ul class="list"> <li class="item">Pricing</li> <li class="item">Contact</li> </ul> /* BEM写法 */ <ul class="list"> <li class="list__item">Pricing</li> <li class="list__item">Contact</li> </ul>
/* 常规写法 */ .list{} .list .item{} /* BEM写法 */ .list{} .list__item{}
一个“修饰符”可以理解为一个块的特定状态!
/* 常规写法 */ <ul class="list"> <li class="item">Pricing</li> <li class="item">Contact</li> </ul> /* BEM写法 */ <ul class="list"> <li class="list__item_active"> Pricing </li> <li class="list__item">Contact</li> </ul>
/* 常规写法 */ .list{} .list .item{} .list .item.active{} /* BEM写法 */ .list{} .list__item{} .list__item_active{}
因为短命名缩短书写时间,也减小了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;} 复制代码
上述两种命名方式各有优缺点:
前一个 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
1.张鑫旭的《css选择世界》
2021.03.08
2093
小程序作为一款轻应用,具有无需安装、无须卸载、触手可及、用完即走的优势,让腾讯、阿里两大巨头争相发力抢占这一块移动互联网新流量市场。 而你知道支付宝小程序与微信小程序相比有何本质的不同吗?今天小助手就分别从它们的发展、页面、入口、属性4个方面来给你进行对比分析一下!
2021.07.09
1242
说起大数据这个领域,可是近些年相当炙手可热的产业,而伴随这个产业提供了很多就业机会。党和国家大力推进政府数字化转型,我们也受益于这波浪潮并在其中得到了成长。