美文网首页
2018-03-17

2018-03-17

作者: 小熊530 | 来源:发表于2018-03-17 22:21 被阅读0次

B.E.M

  • B:块(block)、E:元素(element) 、M:修饰符(modifier) 、

它是一种用代码和一系列模式描述现实情况的方法。其目的是为了长久的课维护性

块(block)

  • 一个块是一个独立的实体,就像应用的一块积木。一个块既可以是简单的,也可以是复合的(包含其他块)

我理解:作者所说的块其实就是用于分区的div和用于布局的DIV。
就像一个搜索栏:是一个块,可以被包含在head

元素(element)

  • 一个元素是块的一部分,具有某种功能。元素时依赖上下文的:它们只有处于它们应该属于的块的上下文中才是有意义的。
    比如一个Search块中,往往包含两个element: inputbutton.

我认为这应该是元素需要的特点,如果一个元素不依赖上下文,那它就应该是块。

块必须是独立的
  • 所以随着一个项目的发展,我们常常会在页面中添加,删除,或者是移动一些块。例如,你可能想要互换LogoAuth块,或者把Menu放到Search块下面。

所以引出块的特点:块必须是独立的, 只有独立的块才能放在任何位置。突然我想到vue整合页面——其实就是把各自独立的组件放在指定的位置,再所以,其实组件也是必须是很独立的,那我写的时候也可以吧每一个块看做为一个组件,一个组件看成是一个页面。

块的命名

和我想的不一样,一个独立的块,命名不需要model或者其他的,他是一个块、是什么块,在备注中需要写上,至于命名。以他是什么内容命名就可以了,比如:

<ul class="menu">
    <li class="menu__item"></li>
    <li class="menu__item"></li>
</ul>

依次嵌套,如果把块理解好了,嵌套不会太深;

块修饰符(modifier)

我们经常需要在同一个页面中,创建一个和已存在的块非常相似的块,只是外观或行为有些许改变。

  • 比如说我们有一个这样的任务:
    给Footer添加另外一个布局不一样的Menu。
    为了避免开发一个和现有的块只稍微有点不同的另一个块,所以引入修饰符(modifier)的概念。
  • 我们在长名称中使用连字符分隔单词(如,block-name),使用两个下划线来分隔块名和元素名(block-name__element-name),

那么修饰符就应该是用两个连字符来分割块与状态?(block-name--modifier-name)?但是在W3C给出的确是一下这样的:

<ul class="menu"> 
    <li class="menu__item">Index</li> 
    <li class="menu__item menu__item_state_current">Products</li> 
    <li class="menu__item">Contact</li> 
</ul>

我觉得可能都可以,只是需要定义一种符号区分 ~我看很多文章都是用--表示块的状态。__表示块与元素

明天的练习:
这个网站命名分区是用B.E.M的你觉得可以么
https://news.yandex.ru/

1.png 3.png

我明天再找找,今天搬家有搬了一天- -。。。

相关文章

网友评论

      本文标题:2018-03-17

      本文链接:https://www.haomeiwen.com/subject/pqwdqftx.html