高效CSS设计:BEM命名规范指南

更新:10-28 民间故事 我要投稿 纠错 投诉

.cn-

2.class前缀

除了添加全局命名空间之外,给类添加前缀是用来表明这个类的主要职责是什么。常见的前缀有以下几种:

c: 表示UI components,如.cn-c-card或.cn-c-headerl: 表示layout相关的样式,如cn-l-grid__itemorcn-l--two-columnu: 表示utilities, 工具,如.cn-u-margin- Bottom-doubleor .cn-u-padding-rightis- , has-: 表示特定的状态,如.cn-is-activeor.cn-is-disabledjs-: 表示js特定的功能,如.js-modal-trigger,该类不能绑定样式,只能对行为负责010- 1010 BEM 表示Block-Element-Modifier:

Block: 是基本组件块,例如cn-c-cardor.cn-c-btnElement: 是基本组件块下的子元素,例如cn-c-card__titleModifier:是组件样式的变体,例如.cn-c-alert--error。这个比喻很流行。结合命名空间和类前缀,它允许我们创建更明确且封装良好的类名。

3.BEM 语法

组合全局命名空间、类前缀和BEM 语法会产生显式(是的,也是详细的)类字符串,可用于推断UI 的功能。

看一下示例1:

.cn-c-btn--次要

//分析

cn-: 为系统中所有样式设计全局命名空间

c-: 类别分类,“c-”表示组件

btn: 区块名称(Block)

--secondary:修饰符,表示样式变体(Modifier)示例2:

.cn-l-grid__item

//分析

cn-: 命名空间

l-:类的分类,"l-"表示布局相关

grid: 区块名称(Block)

__item: 元素示例3:

.cn-c-primary-nav__submenu

//分析

cn-: 命名空间

c-: 类分类,指示组件

Primary-nav: 块名称

__submenu: 元素

4.把所有的结合起来: 一个class的解剖

5.其他技巧

在哪里放置给定的CSS 规则是一个问题。如果我们想调整位于标题组件中的主导航组件的对齐方式,我们可以使用sass 父选择器:

.cn-c-primary-nav {

/*

* 导航出现在标题中,右对齐

*/

.cn-c-标头{

margin-left: 自动

}

}这意味着主导航样式可以放置在主导航Sass 部分中,而不是将它们拆分为单独的文件。

1.SASS 父选择器

SASS嵌套非常方便,但是可能会导致选择器特别长,有个原则就是:嵌套永远不要超过3层, 保持CSS设计扁平的原则。我们可以通过以下4种方式减少嵌套:

将修饰符(样式块的修饰符)添加到块(媒体查询) 父选择器(状态)组件块修饰符对于修饰符,如果规则只有几行,修饰符可以嵌套在符号元素中:

.cn-c-警报{

border: 1px实心#ccc;

颜色:灰色;

//错误警告

- 错误{

边框颜色:红色;

颜色: 红色

}

媒体查询特定于组件的媒体查询可以嵌套在组件块内:

.cn-c-primary-nav {

//基本样式

@meida all 和(min-width: 40em) {

显示:柔性;

}

}状态状态包括悬停、焦点、活动和工具类is-, has-.cn-c-accordion__panel {

溢出:隐藏;

最大高度: 0;

.cn-is-active {

最大高度: 40em;

}

}总结

关于高效CSS设计:BEM命名规范指南到此分享完毕,希望能帮助到您。

用户评论

伱德柔情是我的痛。

BEM 指导规范 really useful for 大规模项目吧

    有15位网友表示赞同!

我家的爱豆是怪比i

学了 BEM 后发现我的代码可读性提高了很多

    有9位网友表示赞同!

冷落了♂自己·

平时写 CSS 总是混乱,学习一下 BEM 试试看!

    有12位网友表示赞同!

可儿

BEM 可以帮助我们更精准地定位样式元素,太赞了!

    有19位网友表示赞同!

醉枫染墨

之前没听过 BEM,今天开始学习,感觉很有意思。

    有10位网友表示赞同!

岁岁年年

理解 BEM 的思路很关键,这样才能更好地运用它。

    有7位网友表示赞同!

蔚蓝的天空〃没有我的翅膀

推荐大家学习 BEM,不仅提高代码效率,而且更容易维护。

    有19位网友表示赞同!

念初

想做个整齐美观的网页,BEM 是不错的选择!

    有16位网友表示赞同!

没过试用期的爱~

项目越来越大了,BEM 就显得愈发重要了。

    有18位网友表示赞同!

绳情

现在很多前端规范都提倡用 BEM 了啊!

    有5位网友表示赞同!

莫飞霜

BEM 的命名规则让我感觉清爽了不少。

    有11位网友表示赞同!

窒息

CSS 代码整洁,也让调试变得更加方便。

    有11位网友表示赞同!

良人凉人

学习新技术需要不断实践,试试 BEm 在实际项目中的应用效果吧!

    有11位网友表示赞同!

?娘子汉

BEM 可以有效避免 CSS 的重复使用和命名冲突。

    有6位网友表示赞同!

巷陌繁花丶

看了一些 BEm 示例案例,感觉很有灵感。

    有15位网友表示赞同!

隔壁阿不都

BEM 确实能让我们写出更清晰、可维护的 CSS 代码。

    有9位网友表示赞同!

怀念·最初

学习 BEM 后,CSS 代码的组织架构更加明了了!

    有15位网友表示赞同!

呆萌

前端开发要不断学习新知,BEM 就是一个很好的学习方向。

    有15位网友表示赞同!

凉月流沐@

BEM 使代码结构更加合理,提高了团队合作效率。

    有12位网友表示赞同!

代价是折磨╳

想要打造更专业的前端作品,BEM 是必不可少的技能!

    有12位网友表示赞同!

【高效CSS设计:BEM命名规范指南】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:揭秘淘宝放单的含义与操作指南 下一篇:《作文《孤独》走红校园,教师满分点评赞誉:天才之作,感动无数》