BEM思想
1. 什么是BEM:
  BEM:(Block块,Element元素,Modifier修饰符)一种命名规范,
    其核心思想是将页面拆分成一个个独立的富有语义的块(blocks),从而使得团队在开发复杂的项目变得高效,并且十分有利于代码复用,即便团队引入新成员,也容易维护。
    基本命名模式
      block{},
      block__element{},
      block--modifier{},
2. BEM各元素:
  * Block :Block是逻辑和功能独立的单元,类似于组件。每个block包含自身的行为(js)、结构(HTML模板)、表现(css)。block的独立性有利于代码的复用,有利于项目管理。
    特点:

      + block名描述block功能,不包括状态,可以复用,嵌套
      + block不影响自身布局,所以就不能设置margin,position属性
      + 不在Bem中使用元素选择器,和id选择器
      + 在同一页面中不依赖于其他block或element;

    例子:

      <button class="button" />
      <button class="button button--success"/>
      <button class="button button--danger"/>
  * Element: Element是Block的组成部分,不脱离Block使用,嵌套使用,可嵌套多个数量,相互嵌套
    特点:

      + element表示目的(item,text...),而不是状态(red,disabled...)
      + element的命名方式:block-name__element-name,使用双下划线连接block名和element名
    例子:
      <form class="search-form">
        <input class="search-form__input"/>
      </form>
    与block的联系:
      + block确定命名空间,确保element不会被其他block影响
      + element只能作为block的一部分使用,不可独立使用
        例子:
          error:
          <form class="search-form__input"/>
          <button class="search-form__button"/>
      + block不一定含有element

  * Modifier :修饰符,用以展示状态,表现(size,color,...),用它们来改变外观或行为。
    使用双中划线和block或element相连,
    例子:
      <form class="search-form">
        <input class="search-form__input">
        <button class="search-form__button search-form__button--disabled">
      </form>
    *Modifier不单独使用,使用时需要对应的block或element*
3. Bem展示的思维方式:
    Bem将页面分为多个block组成,其下同时是有多个element构成,每个element,block之间是相互独立的,页面是由组件组合而成,而组件与组件之间是相互组合,而不是依赖

最新文章

  1. [读书笔记] Web 前端开发修炼之道
  2. CSipSimple最新版本号
  3. 获取一个Jpanel的父容器有多难
  4. 判断小数点位数不超过2位的JS代码和在删除确认框里面插JS代码
  5. UWP中使用Composition API实现吸顶(2)
  6. rf常用关键字总结
  7. .NET、C#和ASP.NET三者之间的区别
  8. SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行
  9. Storm常用的类
  10. vs启动出错(chenlu-1):参数“basePath”不能是相对路径
  11. BZOJ1180 [CROATIAN2009]OTOCI LCT
  12. mysql的查询
  13. Tomcat配置Manager管理员
  14. ss源码学习--事件处理
  15. 用cglib包来为类产生动态代理类对象
  16. Docker三剑客之Docker Machine
  17. 修改linux 最大文件限制数 ulimit
  18. DOM介绍
  19. datatables传参
  20. Bzoj1312 / POJ3155 Neerc2006 Hard Life

热门文章

  1. [Angulalr] Speed Up Reducer Development Using Ngrx Schematics
  2. CSDN处理问题神速,顶你,为你点32个赞!
  3. 超简洁代码实现CircleImageView
  4. Codeforces Round #277 (Div. 2)C.Palindrome Transformation 贪心
  5. luogu1631 序列合并
  6. 背包问题的方案总数 P1474 货币系统
  7. bzoj4977 跳伞求生——贪心
  8. vmware centos7 没有网络设备
  9. HTML中常用的颜色词汇
  10. Python 41 多表查询 和 子查询