最初的思考
思考来源于要给切图网 qietu.com 改一次版,作为前端开发服务商,我觉得应该要有自己的一款前端css框架,并且这个框架不应该只是随便写写,最好能够用在官网上,拿官网做背书,于是在研究了火狐、adobe、微软、google amp等官网以后,写了一款quickly.css响应式前端框架并且开源,并且用在了新版网站上。
问题?
在写框架的时候,定义了这么一个类 .card 它可以用在很多场合。然后 .card 下面定义了几个子元素,如下:
.card-head {}
.card-body{}
.card-foot{}
然后.card 本身还有很多种状态,以灵活的适应不同的场合,如下
.card-border{} /*带边框的*/
.card-shadow{} /* 带阴影的*/
.card-colorful{} /*彩色的*/
那么实际的运用是这样的:
<div class="card card-colorful card-shadow">
<div class="card-head">
</div>
<div class="card-body">
</div>
</div>
综上可以发现,一般人在使用的时候很难搞清楚 .card-colorful 和 .card-body 有什么区别, 其实一个是对形态的定义,一个是下面的子元素,所以问题就这样产生了。有没有办法让人通过命名一眼就能辨别,哪是子元素,哪是修饰符呢? 结合脑海里的知识我首先想到了BEM 。
BEM ?
Bem 是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex 团队提出的一种前端 CSS 命名方法论。
BEM 命名约定的模式是:
.block {}
.block__element {}
.block–modifier {}
block 代表了更高级别的抽象或组件。
block__element 代表 .block 的后代,用于形成一个完整的 .block 的整体。
block–modifier 代表 .block 的不同状态或不同版本。
使用两个连字符和下划线而不是一个,是为了让你自己的块可以用单个连字符来界定。如:
.sub-block__element {}
.sub-block–modifier {}
好了,我们在来尝试一下,之前碰到的问题,用BEM命名方式能否解决,实际quickly框架是有命名空间的以qui开头,那么结合BEM的命名方式如下:
.qui-card{}
.qui-card--colorful{}
.qui-card__head{}
.qui-card__body{}
.qui-card__foot{}
那么问题就迎刃而解了。
CSS 算不上是最优美的『语言』,但迄今二十多年来,它都是美化 web 举足轻重的工具。尽管如此,CSS 写得越多,你越容易发现一个巨大的弊端。因为维护 CSS 真是老大难。
在web前端开发中遇到不知道给元素或变量起什么名字的问题,中文拼音太俗气,随便敲几个字母又影响代码的查读性。于是总结这些命名规范。
CSS命名规范(规则)常用的CSS命名规则 ,注意事项:1.一律小写; 2.尽量用英文; 3.不加中横和下划线; 4.尽量不缩写,除非一看就明白的单词。
不论var f 与function f 的先后顺序如何,该代码执行的结果总是弹出function f 的字符串,为什么呢?像这种函数与变量命名冲突时JS的处理原则又是什么?
BEM的意识就是块(block)、元素(element)、修饰符(modifier),是由yandex团队提出的一种CSS Class命名方法。但至少他可以使我们命名的时候达到一定的统一,我们可以学习其优秀的方面将其纳为己用。
CSS 的命名规范又叫做BEM规范,为的是结束混乱的命名方式,达到一个语义化的CSS命名方式。 BEM是三个单词的缩写:Block(块)代表更高级别的抽象或组件,Element(元素) Block的后代,以及Modifier(修饰) 不同状态的修饰符
应该很多人都会有PO这种东西,但是对刚学CSS的人真的很重要,尤其像我这种英文不好的人,这些是必背的的单字喔^^,这些数据只是我在学习的时候,参考别人的数据之后用自己的思考整理出来的,像参考书写的真的都看不懂
最近,LinkedIn 的 JavaScript 组提出了一个有趣的问题:是否需要重新命名 JavaScript?众所周知,JavaScript 与 Java 无关。数十年来,这使非技术经理和招聘人员感到困惑。
大驼峰命名规则又称骆驼式命名法(Camel-Case),是电脑程式编写时的一套命名规则(惯例)。是指混合使用大小写字母来构成变量和函数的名字。
骆驼式命名法(Camel-Case)又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例)。正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!