更好用的css命名方式——BEM命名

一、什么是BEM?

  BEM代表块(Block),元素(Element),修饰符(Modifier)。无论是什么网站页面,都可以拆解成这三部分。

二、带你认识网页

  我们来看一下qq的官网,它可以由三个块组成:logo,导航nav和页面主题mian三个模块构成,如果再细分一下呢?logo是由图片和文字两个元素组成,导航由三个元素组成,页面主题中包含图片,文字和按钮三个元素,

如果把一个块看作是一个数组的话,那么元素就是数组中的每一项。

  什么是修饰符呢?你可以看作是元素的属性,或者是他的形态、状态,比如导航中的三个元素有的长,有的短,页面主体文字有的大,有的小

三、BEM命名如何书写

  BEM给我们的规定是块和元素之间用 — 连接,元素和修饰符之间用 _ 连接。例如:我们要设置表格某一行的背景颜色为红色,我们可以如下命名

四、实战篇

  下面,我们来用bem的命名规范来写一下qq的官网

  <header>
        <div class="logo">
            <img class="logo-img" src="./logo.png" alt="">
            <span class="logo-words_big">QQ·</span>
            <span class="logo-word_small">PC版</span>
        </div>
        <ul class="nav">
            <li class="nav-item">QQ官网首页</li>
            <li class="nav-item">申请QQ</li>
            <li class="nav-item">当前在线用户:2559393943</li>
        </ul>
    </header>
    <div class="main">
        <img class="main-img" src="./img.png" alt="" >
        <div class="main-words_small">QQ PC版9.0.8</div>
        <div class="main-words_big">从新出发·趣无止境</div>
        <button class="mian-button_blue">立即下载</button>
    </div>

是不是清晰了很多,即使是换作另一个人修改这个页面也是一眼就能找到的。这样就大大减少了我们的维护成本。

五、拓展

  

  如果你还是不太理解什么是BEM,没关系,我们和人体结合一下,看看他们之间有什么相似之处。

  上面是一张小女孩的人体结构图,我们可以把她分成三个部门,也就是三个块(Block),分别是头(header),身体(body)和脚(footer),我们单看头部,里边有很多个元素(Element)组成,比如头发(hair)、眼睛(eye)、耳朵(ear)、牙齿(tooth)等等,

身体里呢?包含胳膊(arm)、手指(finger)等元素构成,脚部由脚(foot)和脚趾(toe)组成。小女孩的头发是棕色的(brown),好了,我们可以用BEM规范来命名一下小女孩的结构了

    <div class="header">
        <div class="header-hair_brown"></div>
        <div class="header-eye"></div>
        <div class="header-ear">
            <div class="header-ear_left"></div>
            <div class="header-ear_right"></div>
        </div>
        .......
    </div>
    <div class="body">
        <div class="body-arm">
            <div class="body-arm_left"></div>
            <div class="body-arm_right"></div>
        </div>
        <div class="finger"></div>
        .......
    </div>
    <div class="footer">
        <div class="footer-foot"></div>
        <div class="footer-toe"></div>
    </div>

六、结束语

  BEM是一个非常有用,强大,简单的命名约定,以至于让你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确而且更加严密。它对前端开发者都是一个巨有价值的工具。

原文:https://www.bbsmax.com/A/kjdwbexq5N/

原文地址:https://www.cnblogs.com/why98/p/12234706.html

时间: 2024-10-11 16:20:13

更好用的css命名方式——BEM命名的相关文章

CSS中的BEM命名

BEM是一个非常有用,强大,简单的命名约定. 它能让前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确而且更加严密,更加容易地维护代码. BEM命名思路: .block{} .block__element{} .block--modifier{} .block{} .block__element{} .block--modifier{} 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.原文: http://www.w3cplus.com/css/mindbemd

连接到Oracle的几种命名方式

从事Oracle相关工作的人,每天都会使用各种工具连接到Oracle数据库,比如:SQL*Plus.PL/SQL.TOAD.SQLDeveloper等等,下面就列举了几种连接到Oracle的方式,本例中使用的是SQL*Plus为例. 1.Easy Connect命名方式 这种方式是一种很简单的方式,它不需要去访问tnsnames.ora文件,而去直接连接数据库. 语法: CONNECT [email protected][//]host[:port][/[service_name][:serve

问答:如何规划CSS 中 的命名方式 如何看待 CSS 中 BEM 的命名方式?

好多盆友 很纠结 css命名规则 怎么弄,还没起步就被绊住了,那么今天蝈蝈就针对这个问题来讨论一下 没什么技术 含量,但却对效率开发至关重要的 "问题". 下文是一些知乎大神的个人经验总结,如果觉得有用请点赞 留言! JS前端实用开发QQ群 :147250970  欢迎加入~! 如何看待 CSS 中 BEM 的命名方式? BEM的意思就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种CSS Class 命名方法. 类似于: .blo

BEM命名方式,书写更优质的HTML

BEM是Block, Element, Modifier. 一种class的命名习惯.在这种CSS方法学中,一个block就是一个component的顶级抽象,例如一个button: .btn { }.这里的block应该被当作是一个parent,child items 或者elements, 可以被放在block里面,然后 用在block 名字的后面加两个下划线的方式来表明,例如:.btn__price { } 最后,modifier可以用来操作block, 这样我们就可以style 特定的c

CSS命名规范——BEM思想(非常赞的规范)

人们问我最多的问题之一是在CSS类名中“--”和“__”是什么意思?它们的出现是源于BEM和Nicolas Gallagher... BEM的意思就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义.BEM命名约定更加严格,而且包含更多的信息,它们用于一个团队开发一个耗时的大项目. 重要的是要注意,我使用的基于BEM的命名方式是经过Nicolas Gallagh

CSS命名规范——BEM思想

BEM的意思就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义.BEM命名约定更加严格,而且包含更多的信息,它们用于一个团队开发一个耗时的大项目. 重要的是要注意,我使用的基于BEM的命名方式是经过Nicolas Gallagher修改过的.这篇文章中介绍的这种命名技术并不是原始的BEM,但却是一个我更喜欢的改进版.无论实际使用了什么样的符号,它们其实都是基于

项目复习期总结3:CSS引入方式,注释,命名规范,背景,行高,文本属性

目录: 1.CSS注释的书写 怎么写?好处? 2.CSS引入方式  各种的优缺点 3.选择器的写法与选择器的优先级 4.CSS命名规范 5.背景,行高 6.文本(text与font开头)等所有属性 ① CSS注释书写规范: 1.单行注释:    直接写在属性值的后面,如: ① .search{ border:1pxsolid#fff;/*定义搜索输入框边框*/ background:url(../images/icon.gif)no-report#333;/*定义搜索框的背景*/ } ② .wr

项目复习期总结3:CSS引入方式,凝视,命名规范,背景,行高,文本属性

文件夹: 1.CSS凝视的书写 怎么写?优点? 2.CSS引入方式  各种的优缺点 3.选择器的写法与选择器的优先级 4.CSS命名规范 5.背景,行高 6.文本(text与font开头)等全部属性 ① CSS凝视书写规范: 1.单行凝视:    直接写在属性值的后面.如: ① .search{ border:1pxsolid#fff;/*定义搜索输入框边框*/ background:url(../images/icon.gif)no-report#333;/*定义搜索框的背景*/ } ② .w

BEM命名规则和规范

BEM命名规则:http://segmentfault.com/a/1190000000391762 class命名方案:http://www.w3cplus.com/css/css-class-name.html 常用的CSS命名规范:http://www.html5cn.org/article-7600-1.html 通用CSS笔记.建议与指导:https://github.com/chadluo/CSS-Guidelines/blob/master/README.md 切勿将标记 CSS