全球彩票平台_全球彩票注册平台|官网下载地址

热门关键词: 全球彩票平台,全球彩票注册平台,全球彩官网下载地址

的组织和管理,其实很简单

主流命名

【BEM】

  提起CSS命名,当然要涉及BEM。BEM的意味就是B模块(block)、E成分(element)、M修饰符(modifier)。模块和子成分之间用多个下划线分隔,子成分和修饰符之间用两个中划线分隔

  关于子成分E,有二种写法。一种是安分守己层级嵌套来写,如block-ele1-son-inner,可是如此写会招致命名过长;另一种是扁平化,二个模块B下的装有子成分,无论相互层级如何,都一直连接B,如block-inner,可是如此就不可能表示层级关系,命名时也也许会冒出争持

  BEM的命名是很好的,不然也不可能形成最盛行的命名方式。可是,BEM对子成分的命名,无论是层级长命名照旧扁平化短命名,都有卓殊态

【NEC】

  相较于BEM以模块B为拔尖成分,子成分类名中含有承接关系的命名,新浪的NEC规范使用后代采取器格局

  NEC将成分分为了5类:布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);作用(function)(.f-);皮肤(skin)(.s-);状态(.z-)。而后人选用器无需完整呈现结构树层级,尽量能短则短

.m-list{margin:0;padding:0;}
.m-list .itm{margin:1px;padding:1px;}
.m-list .cnt{margin-left:100px;}

  个人感觉,乐乎对于成分分类的做法很好。关于部分大局可复用的功用性的模块举办区分,结构更为清晰。不过,对于利用后代选取器的法子,个人不太承认。当嵌套层级较深时,命名争论依然是贰个难点

【JD】

  京东的命名法规选用表示层级嵌套关系的长命名。当子孙模块超越4级或上述的时候,思量在古时候的人模块内有着识辨性的独门缩写作为新的遗族模块

<div class="modulename">
    <div class="modulename_cover"></div>
    <div class="modulename_info">
        <div class="modulename_info_user">
            <div class="modulename_info_user_img">
                <img src="" alt="图片 1">
                <!-- 这个时候 miui 为 modulename_info_user_img 首字母缩写-->
                <div class="miui_tit"></div>
                <div class="miui_txt"></div>
                ...
            </div>
        </div>
        <div class="modulename_info_list"></div>
    </div>
</div>

  京东这种因子成分名字过长而选择首字母缩写的做法丰富赞,到现在市道上未有任何更加好的消除长命名的方案

 

前段时间的话

  每便写HTML结构涉及到CSS命名时,都要挣扎一番。关于CSS命名的正式,市道上有好些个,如OOCSS、SMACSS、BEM和MVCSS等。在那其间最火的应当算BEM了。本文将详细介绍CSS命名

 

主流命名

【BEM】

  提及CSS命名,当然要涉及BEM。BEM的意味正是B模块(block)、E成分(element)、M修饰符(modifier)。模块和子成分之间用七个下划线分隔,子成分和修饰符之间用两当中划线分隔

  关于子成分E,有三种写法。一种是服从层级嵌套来写,如block-ele1-son-inner,然而如此写会促成命名过长;另一种是扁平化,叁个模块B下的具备子成分,无论相互层级怎么着,都直接连接B,如block-inner,不过这么就不能表示层级关系,命名时也说不定会并发争辩

  BEM的命名是很好的,不然也不能够产生最盛行的命有名的模特式。但是,BEM对子成分的命名,无论是层级长命名依旧扁平化短命名,都有失常态

【NEC】

  相较于BEM以模块B为五星级元素,子成分类名中包括承袭关系的命名,微博的NEC规范利用后代选取器格局

  NEC将成分分为了5类:布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);功用(function)(.f-);皮肤(skin)(.s-);状态(.z-)。而后人选取器无需总体表现结构树层级,尽量能短则短

.m-list{margin:0;padding:0;}
.m-list .itm{margin:1px;padding:1px;}
.m-list .cnt{margin-left:100px;}

  个人认为,腾讯网对于成分分类的做法很好。关于部分大局可复用的效能性的模块进行区分,结构更为鲜明。然则,对于利用后代选取器的办法,个人不太承认。当嵌套层级较深时,命名争辨还是是一个难点

【JD】

  京东的命名准绳选择表示层级嵌套关系的长命名。当子孙模块超过4级或以上的时候,思考在古时候的人模块内有着识辨性的单身缩写作为新的后代模块

<div class="modulename">
    <div class="modulename_cover"></div>
    <div class="modulename_info">
        <div class="modulename_info_user">
            <div class="modulename_info_user_img">
                <img src="" alt="图片 2">
                <!-- 这个时候 miui 为 modulename_info_user_img 首字母缩写-->
                <div class="miui_tit"></div>
                <div class="miui_txt"></div>
                ...
            </div>
        </div>
        <div class="modulename_info_list"></div>
    </div>
</div>

  京东这种因子成分名字过长而利用首字母缩写的做法非常赞,到现在市道上未有任何更加好的消除长命名的方案

 

1.Block(模块)

叁个模块是三个单身的实业部分,就像是应用的一块“积木”。多少个模块不只能够是简约的也得以是复合的(富含其余模块)。

命名标准:

模块名称能够由拉丁字母,数字和短划线组成。 如:.block、.form

比方说搜索框和按键组成的组件正是贰个模块。

作者觉着的命名的极品试行是:.xxoo,也等于用多少个词组成的短语来描述这么些块,比如.propertyeditor或.languageswitcher,后边三个意思是性质编辑器,后面一个是语言切换器。强行用一个词来说述的话,你会开掘词根本远远不足用。

B和M能够平素连用,跳过E,那是同意的。

1.4. 修饰符(modifier)的3

CSS命名实施,css命名

取名推荐

  有了适宜的命超格局,还须要语义化命名,且有不影响语义的情况下,能够简写

【布局】

文档    doc
头部    header(hd)
主体    body    
尾部    footer(ft)    
主栏    main
侧栏    side    
容器    box/container

【通用部件】

列表    list
列表项  item
表格    table    
表单    form
链接    link
标题    caption/heading/title
菜单    menu
集合    group
条      bar
内容    content    
结果    result    

【组件】

按钮        button(btn)
字体        icon
下拉菜单     dropdown
工具栏       toolbar
分页         page
缩略图       thumbnail
警告框       alert
进度条       progress
导航条       navbar
导航         nav    
子导航       subnav
面包屑       breadcrumb(crumb)    
标签        label
徽章        badge
巨幕        jumbotron
面板        panel
洼地        well
标签页      tab
提示框      tooltip
弹出框      popover
轮播图      carousel
手风琴      collapse 
定位浮标    affix

【语义化小部件】

品牌        brand
标志        logo
额外部件    addon
版权        copyright
注册        regist(reg)
登录        login
搜索        search    
热点        hot
帮助        help
信息        info
提示        tips
开关        toggle
新闻        news
广告        advertise(ad)
排行        top    
下载        download    

【功用部件】

左浮动    fl
右浮动    fr
清浮动    clear

【状态】

前一个    previous
后一个    next
当前的    current

显示的    show
隐藏的    hide
打开的    open
关闭的    close

选中的    selected
有效的    active
默认的    default
反转的    toggle

禁用的    disabled
危险的    danger
主要的    primary
成功的    success
提醒的    info
警告的    warning
出错的    error

大型的    lg
小型的    sm
超小的    xs

 

命名推荐

  有了合适的命名格局,还亟需语义化命名,且有不影响语义的景观下,能够简写

【布局】

文档    doc
头部    header(hd)
主体    body    
尾部    footer(ft)    
主栏    main
侧栏    side    
容器    box/container

【通用部件】

列表    list
列表项  item
表格    table    
表单    form
链接    link
标题    caption/heading/title
菜单    menu
集合    group
条      bar
内容    content    
结果    result    

【组件】

按钮        button(btn)
字体        icon
下拉菜单     dropdown
工具栏       toolbar
分页         page
缩略图       thumbnail
警告框       alert
进度条       progress
导航条       navbar
导航         nav    
子导航       subnav
面包屑       breadcrumb(crumb)    
标签        label
徽章        badge
巨幕        jumbotron
面板        panel
洼地        well
标签页      tab
提示框      tooltip
弹出框      popover
轮播图      carousel
手风琴      collapse 
定位浮标    affix

【语义化小部件】

品牌        brand
标志        logo
额外部件    addon
版权        copyright
注册        regist(reg)
登录        login
搜索        search    
热点        hot
帮助        help
信息        info
提示        tips
开关        toggle
新闻        news
广告        advertise(ad)
排行        top    
下载        download    

【功用部件】

左浮动    fl
右浮动    fr
清浮动    clear

【状态】

前一个    previous
后一个    next
当前的    current

显示的    show
隐藏的    hide
打开的    open
关闭的    close

选中的    selected
有效的    active
默认的    default
反转的    toggle

禁用的    disabled
危险的    danger
主要的    primary
成功的    success
提醒的    info
警告的    warning
出错的    error

大型的    lg
小型的    sm
超小的    xs

 

灵活运用:

BEM的精髓是B、E、M,中间用多少个接二连三符都以细节,一般单在那之中划线就能够了,不过,最遍布的连日符是bb__ee--mm的花样,尽量遵循这种样式,当您凌驾其余人写的标准的css文书档案的时候,能够下跌阅读难度。

4. BEM争论最大的正是它的命名风格

block

  • element modifier,鼓舞一流拔尖的写的老大实际,非常长。

很违背习贯 CSS嵌套过多。超越3层就很难阅读了

前边的话

  每一遍写HTML结构关系到CSS命名时,都要挣扎一番。关于CSS命名的正规,市道上有那么些,如OOCSS、SMACSS、BEM和MVCSS等。个中最火的相应算BEM了。本文将详细介绍CSS命名

 

实践

<header class="hd">
    <nav class="hd-navbar m-navbar m-varbar_primary">
        <div class="hd-navbar-tel">联系方式:400-888-8888</div>
        <ul class="hd-navbar-nav">
            <li class="Hnn-itm m-btn m-btn_info"><a href="#">登录</a></li>
            <li class="Hnn-itm m-btn"><a href="#">快速注册</a></li>
            <li class="Hnn-itm m-btn"><a href="#">关于</a></li>
            <li class="Hnn-itm m-btn"><a href="#">帮助</a></li>
        </ul>
    </nav>
    ...
</header>

【幻灯片】

<div class="carousel">
  <div class="carousel-banner">
    <a class="carousel-banner-item Cbi_slide1 Cbi_active" href="#"></a>
    <a class="carousel-banner-item Cbi_slide2" href="#"></a>
    <a class="carousel-banner-item Cbi_slide3" href="#"></a>
    <a class="carousel-banner-item Cbi_slide4" href="#"></a>          
  </div>
  <a class="carousel-control carousel-control_prev" href="javascript:;">&lt;</a>
  <a class="carousel-control carousel-control_next" href="javascript:;">&gt;</a>
  <div class="carousel-indicators">




  </div>
</div>

  关于CSS命名,并不曾最棒实行之说,依据项目标复杂性程序开展适度的命名才是优点的  

  迎接交换  

实践

<header class="hd">
    <nav class="hd-navbar m-navbar m-varbar_primary">
        <div class="hd-navbar-tel">联系方式:400-888-8888</div>
        <ul class="hd-navbar-nav">
            <li class="Hnn-itm m-btn m-btn_info"><a href="#">登录</a></li>
            <li class="Hnn-itm m-btn"><a href="#">快速注册</a></li>
            <li class="Hnn-itm m-btn"><a href="#">关于</a></li>
            <li class="Hnn-itm m-btn"><a href="#">帮助</a></li>
        </ul>
    </nav>
    ...
</header>

【幻灯片】

<div class="carousel">
  <div class="carousel-banner">
    <a class="carousel-banner-item Cbi_slide1 Cbi_active" href="#"></a>
    <a class="carousel-banner-item Cbi_slide2" href="#"></a>
    <a class="carousel-banner-item Cbi_slide3" href="#"></a>
    <a class="carousel-banner-item Cbi_slide4" href="#"></a>          
  </div>
  <a class="carousel-control carousel-control_prev" href="javascript:;">&lt;</a>
  <a class="carousel-control carousel-control_next" href="javascript:;">&gt;</a>
  <div class="carousel-indicators">




  </div>
</div>

  关于CSS命名,并从未最好实施之说,遵照项目标复杂程序进行适当的量的命名才是长项的  

  招待调换  

2.Element(元素)

一个因素是块的一某个,具备某种意义。成分是正视上下文的:它们唯有处于他们理应属于的块的光景文中时才是有含义的。

譬喻,.form的input成分和button成分都以因素。

命名标准:

要素名称能够涵Gaila丁字母,数字,破折号和下划线。 CSS类名写成块名称加破折号加上元节素名称:.block-elem,个中elem可以是一贯成分标具名,也是表义的名号。

小编认为的超级施行是:比方对话框内有二个分明开关,那几个规定按键的类名可以是:.alert-modal__button--done,在那之中done是修饰符,表示是“表分明的百般按键”。修饰符在上边讲。

9. 是还是不是接纳 SASS 或 LESS 那样的 CSS 预管理语言来编排???

不建议,因为这么ide dw对其的支撑有限,导致预览有标题。

命名格局

【后代选择器依旧类名】

  关于CSS命名,最大的争执就是使用后代选拔器依旧选用类名。以下例所示

<ul class="list">
    <li class="list-item"></li>
    <li class="list-item"></li>
    <li class="list-item"></li>
</ul>

<ul class="list">
    <li class="item"></li>
    <li class="item"></li>
    <li class="item"></li>
</ul>

<ul class="list">
    <li></li>
    <li></li>
    <li></li>
</ul>

  假如使用第一种长类名的艺术,为<li>成分设置样式,只需如下设置就能够

.list-item{}

  如若选取第二种短类名的法子,则为<li>成分设置样式,需如下设置

.list .item{}

  假使选拔第三种后代选取器的章程,则为<li>成分设置样式,需如下设置

.list li{}

  假设从轻便角度来看,第两种后代接纳器的方法最简便,不须求花时间去给子成分起名,且在sass中书写很轻巧

.list{
    li{}
}

  不过,它有三个很要紧的主题材料,便是只要HTML结构层级较深,往往出现选用器层级过长,如.list li span a{}

  并且,因为后代选拔器刚烈地信赖HTML结构,为了防止因为少写一层构造,导致采用器特殊性收缩,样式不可能生效的气象,也不得比不上此写

  贰个不得不提的主题材料是,CSS选取器的解析顺序是从右到左。而利用后代选拔器.list li{},浏览器供给遍历出具备的li,再搜索.list下的li,效能是低于的

  由此,个人感觉第三种后代选用器的点子并不是好选用

  上面介绍第三种短类名的章程

  1、选拔器分析功能比第二种方法好,终归.item比li的范围小很多

  2、短类名.list .item一样存在重视HTML结构的事态,很大概出现选拔器层级过长

  3、使用较轻易,在sass中书写轻便,且起名也较简单

  4、由于给li扩展了类名,于是扩张了HTML文件大小

  最终介绍第几种长类名的法子

  这种方法的挑选器成效最高,因为.list-item那么些类型页面中只出现一回,可类比于id采取器的解析速度

  由于采纳长类名的方式,能够完全不行使后代接纳器,则无需牵挂选取器特殊性好低,样式相当的小概生效的气象,也不见面世选拔器层级过长,因为它独有一级

  不过,相应地,它最大的缺欠是类名较长,大大地加多了HTML文件大小。于是,可借鉴京东,当子孙模块超越3级时,采取首字母缩写,并将缩写后首字母大写的做法,在如将.list-item-link-title缩写为.Lil-title

  最终,采纳可缩写的长类名作为CSS命名的根本措施

【分隔符】

  一般地,classname分隔符有3种,中划线-,下划线_,以及首字母大写,以分隔list和item为例

//中划线
list-item
//下划线
list_item
//首字母大写
listItem

  1、中划线

  中写道能够用来表示层级关系

<div class="box">
    <ul class="box-list">
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
    </ul>
</div>

  2、下划线

  下划线可以用来表示不一样的地方

<div class="box">
    <button class="box-btn box-btn_default" type="button"></button>
    <button class="box-btn" type="button"></button>
</div>

  3、首字母大写

  首字母大写能够用来表示因为样式的急需,而不得不扩展的HTML结构。一般地,假设在外层增添结构,能够追加Wrap,在内层扩大结构,能够追加Inner,且不影响原来的classname的命名

<div class="boxWrap">
    <section class="box">
        <h2 class="box-title"></h2>
        <p class="box-content"></p>
    </section>    
</div>

【组件】

  通过地点的长命名格局和分隔符的利用,消除了基础结构的命名。不过,在页面中,很恐怕出现部分零件的施用,那么些组件可以复用到页面包车型客车八个地点。那时,再选用方面包车型大巴办法就不太对劲

  于是,能够以m-为前缀,来表示那是一个零件

<div class="box">
    <button class="m-btn m-btn_error" type="button"></button>
    <button class="m-btn" type="button"></button>
</div>

 

命名情势

【后代选用器依然类名】

  关于CSS命名,最大的争论便是运用后代选用器照旧利用类名。以下例所示

<ul class="list">
    <li class="list-item"></li>
    <li class="list-item"></li>
    <li class="list-item"></li>
</ul>

<ul class="list">
    <li class="item"></li>
    <li class="item"></li>
    <li class="item"></li>
</ul>

<ul class="list">
    <li></li>
    <li></li>
    <li></li>
</ul>

  假如采用第一种长类名的章程,为<li>成分设置样式,只需如下设置就可以

.list-item{}

  若是选拔第几种短类名的方法,则为<li>成分设置样式,需如下设置

.list .item{}

  假设利用第两种后代选取器的主意,则为<li>成分设置样式,需如下设置

.list li{}

  若是从轻便角度来看,第三种后代选取器的不二诀要最轻松易行,不要求花时间去给子成分起名,且在sass中书写很轻易

.list{
    li{}
}

  但是,它有叁个异常悲戚的标题,正是尽管HTML结构层级较深,往往出现采用器层级过长,如.list li span a{}

  况兼,因为后代选用器刚毅地依赖HTML结构,为了幸免因为少写一层协会,导致选取器特殊性减弱,样式不能生效的情况,也只能那样写

  多少个不得不提的标题是,CSS选用器的分析顺序是从右到左。而接纳后代采取器.list li{},浏览器须要遍历出装有的li,再寻找.list下的li,作用是低于的

  由此,个人感觉第两种后代选取器的法子并非好选用

  上边介绍第二种短类名的主意

  1、选取器剖析成效比第二种艺术好,究竟.item比li的界定小非常多

  2、短类名.list .item同样存在正视HTML结构的情景,十分大概出现选拔器层级过长

  3、使用较轻便,在sass中书写轻松,且起名也较简单

  4、由于给li扩大了类名,于是扩大了HTML文件大小

  最终介绍第二种长类名的格局

  这种方法的选取器效用最高,因为.list-item那些项目页面中只出现三回,可类比于id选用器的剖释速度

  由于应用长类名的艺术,可以完全不利用后代选拔器,则无需思考选用器特殊性极低,样式无法生效的景况,也不会冒出选取器层级过长,因为它只有超级

  但是,相应地,它最大的缺陷是类名较长,大大地充实了HTML文件大小。于是,可借鉴京东,当子孙模块当先3级时,选择首字母缩写,并将缩写后首字母大写的做法,在如将.list-item-link-title缩写为.Lil-title

  最后,采取可缩写的长类名作为CSS命名的主要格局

【分隔符】

  一般地,classname分隔符有3种,中划线-,下划线_,以及首字母大写,以分隔list和item为例

//中划线
list-item
//下划线
list_item
//首字母大写
listItem

  1、中划线

  中写道能够用来表示层级关系

<div class="box">
    <ul class="box-list">
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
    </ul>
</div>

  2、下划线

  下划线可以用来表示分化的图景

<div class="box">
    <button class="box-btn box-btn_default" type="button"></button>
    <button class="box-btn" type="button"></button>
</div>

  3、首字母大写

  首字母大写能够用来代表因为样式的内需,而不得不扩展的HTML结构。一般地,若是在外层扩大结构,能够追加Wrap,在内层扩充结构,能够扩张Inner,且不影响原来的classname的命名

<div class="boxWrap">
    <section class="box">
        <h2 class="box-title"></h2>
        <p class="box-content"></p>
    </section>    
</div>

【组件】

  通过地方的长命名格局和分隔符的施用,消除了根基结构的命名。可是,在页面中,很或然出现局地组件的行使,这一个零部件能够复用到页面包车型地铁四个职务。那时,再使用方面包车型客车方法就不太方便

  于是,能够以m-为前缀,来表示这是三个零部件

<div class="box">
    <button class="m-btn m-btn_error" type="button"></button>
    <button class="m-btn" type="button"></button>
</div>

 

命名格局

【后代选用器照旧类名】

  关于CSS命名,最大的争持正是应用后代选拔器照旧选取类名。以下例所示

<ul class="list">
    <li class="list-item"></li>
    <li class="list-item"></li>
    <li class="list-item"></li>
</ul>

<ul class="list">
    <li class="item"></li>
    <li class="item"></li>
    <li class="item"></li>
</ul>

<ul class="list">
    <li></li>
    <li></li>
    <li></li>
</ul>

  假若选拔第一种长类名的主意,为<li>成分设置样式,只需如下设置就能够

.list-item{}

  借使应用第二种短类名的不二秘技,则为<li>成分设置样式,需如下设置

.list .item{}

  即使使用第二种后代选拔器的办法,则为<li>成分设置样式,需如下设置

.list li{}

  假使从简单角度来看,第两种后代选取器的措施最简便易行,无需花时间去给子成分起名,且在sass中书写很轻松

.list{
    li{}
}

  不过,它有三个很要紧的难题,正是只要HTML结构层级较深,往往出现选取器层级过长,如.list li span a{}

  何况,因为后代接纳器猛烈地正视HTML结构,为了制止因为少写一层结构,导致接纳器特殊性减少,样式不恐怕生效的情形,也只好这么写

  一个不得不提的难题是,CSS选用器的深入分析顺序是从右到左。而利用后代选用器.list li{},浏览器要求遍历出具备的li,再寻找.list下的li,效用是低于的

  因而,个人感到第二种后代选拔器的格局并非好选取

  下边介绍第两种短类名的办法

  1、选取器剖析效能比第两种方法好,究竟.item比li的范围小相当多

  2、短类名.list .item同样存在正视HTML结构的气象,很恐怕出现选拔器层级过长

  3、使用较轻易,在sass中书写轻巧,且起名也较简单

  4、由于给li扩大了类名,于是扩充了HTML文件大小

  最后介绍第两种长类名的艺术

  这种方法的选料器作用最高,因为.list-item那一个项目页面中只出现三次,可类比于id采纳器的分析速度

  由于选取长类名的章程,能够完全不使用后代采取器,则无需思索采纳器特殊性十分低,样式不能生效的情况,也不会面世接纳器层级过长,因为它唯有一流

  可是,相应地,它最大的破绽是类名较长,大大地增加了HTML文件大小。于是,可借鉴京东,当子孙模块超越3级时,采取首字母缩写,并将缩写后首字母大写的做法,在如将.list-item-link-title缩写为.Lil-title

  最终,选取可缩写的长类名作为CSS命名的尤为重要方法

【分隔符】

  一般地,classname分隔符有3种,中划线-,下划线_,以及首字母大写,以分隔list和item为例

//中划线
list-item
//下划线
list_item
//首字母大写
listItem

  1、中划线

  中写道能够用来表示层级关系

<div class="box">
    <ul class="box-list">
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
        <li class="box-list-item"></li>
    </ul>
</div>

  2、下划线

  下划线能够用来表示不一样的情事

<div class="box">
    <button class="box-btn box-btn_default" type="button"></button>
    <button class="box-btn" type="button"></button>
</div>

  3、首字母大写

  首字母大写能够用来表示因为样式的必要,而不得不扩大的HTML结构。一般地,要是在外层扩大结构,能够追加Wrap,在内层扩张结构,可以追加Inner,且不影响原来的classname的命名

<div class="boxWrap">
    <section class="box">
        <h2 class="box-title"></h2>
        <p class="box-content"></p>
    </section>    
</div>

【组件】

  通过地方的长命名情势和分隔符的行使,化解了根基结构的命名。但是,在页面中,很只怕出现部分零部件的使用,那个零件能够复用到页面包车型地铁多少个地点。这时,再利用方面包车型客车不二等秘书籍就不太对劲

  于是,能够以m-为前缀,来表示那是三个零件

<div class="box">
    <button class="m-btn m-btn_error" type="button"></button>
    <button class="m-btn" type="button"></button>
</div>

 

BEM的面目是三个css类名命名方案。由于CSS没有成效域的概念,也不像SCSS那样能够写出层级关系,所以,如若有多个类名,比如.nav和li,就算您驾驭li在.nav中,你也得以写出.nav li {}如此的选取器,可是过多地方下大家如故愿意给li特意设三个类名,那时候BEM正是三个好的方案。

 

实践

<header class="hd">
    <nav class="hd-navbar m-navbar m-varbar_primary">
        <div class="hd-navbar-tel">联系方式:400-888-8888</div>
        <ul class="hd-navbar-nav">
            <li class="Hnn-itm m-btn m-btn_info"><a href="#">登录</a></li>
            <li class="Hnn-itm m-btn"><a href="#">快速注册</a></li>
            <li class="Hnn-itm m-btn"><a href="#">关于</a></li>
            <li class="Hnn-itm m-btn"><a href="#">帮助</a></li>
        </ul>
    </nav>
    ...
</header>

  关于CSS命名,并不曾最棒实践之说,依据项目标纷纭程序实行适当的命名才是可取的  

  应接调换  

后边的话 每一次写HTML结构关系到CSS命名时,都要挣扎一番。关于CSS命名的职业,市道上有那叁个,如OOCSS、SMACSS、BEM和M...

主流命名

【BEM】

  谈起CSS命名,当然要提到BEM。BEM的意思正是B模块(block)、E成分(element)、M修饰符(modifier)。模块和子元素之间用三个下划线分隔,子成分和修饰符之间用两在那之中划线分隔

  关于子元素E,有三种写法。一种是安分守纪层级嵌套来写,如block-ele1-son-inner,可是那样写会招致命名过长;另一种是扁平化,八个模块B下的兼具子成分,无论彼此层级怎么样,都一向连接B,如block-inner,然而那样就不或者代表层级关系,命名时也大概会油不过生争论

  BEM的命名是很好的,不然也不能成为最流行的命名情势。可是,BEM对子成分的命名,无论是层级长命名如故扁平化短命名,都有缺点

【NEC】

  相较于BEM以模块B为甲级成分,子成分类名中含有承接关系的命名,和讯的NEC规范行使后代选取器方式

  NEC将成分分为了5类:布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);功效(function)(.f-);皮肤(skin)(.s-);状态(.z-)。而后人选取器没有须要完整展现结构树层级,尽量能短则短

.m-list{margin:0;padding:0;}
.m-list .itm{margin:1px;padding:1px;}
.m-list .cnt{margin-left:100px;}

  个人感到,乐乎对于成分分类的做法很好。关于部分大局可复用的作用性的模块进行区分,结构进一步清晰。然而,对于使用后代选用器的议程,个人不太承认。当嵌套层级较深时,命名矛盾如故是四个主题素材

【JD】

  京东的命名准则动用表示层级嵌套关系的长命名。当子孙模块超过4级或以上的时候,思考在古代人模块内具有识辨性的单身缩写作为新的后裔模块

<div class="modulename">
    <div class="modulename_cover"></div>
    <div class="modulename_info">
        <div class="modulename_info_user">
            <div class="modulename_info_user_img">
                <img src="" alt="图片 3">
                <!-- 这个时候 miui 为 modulename_info_user_img 首字母缩写-->
                <div class="miui_tit"></div>
                <div class="miui_txt"></div>
                ...
            </div>
        </div>
        <div class="modulename_info_list"></div>
    </div>
</div>

  京东这种因子成分名字过长而利用首字母缩写的做法相当赞,于今市道上未有其他越来越好的化解长命名的方案

 

前方的话

  每趟写HTML结构关系到CSS命名时,都要挣扎一番。关于CSS命名的科班,市道上有那叁个,如OOCSS、SMACSS、BEM和MVCSS等。当中最火的应该算BEM了。本文将详细介绍CSS命名

 

3.Modifier(修饰符)

修饰符是块或因素上的申明。那么些标记用来形容成分或块的外观、行为或情况。比如button、a标签上的active状态。

取名标准:

修饰符名称能够包括拉丁字母,数字,破折号和下划线。 CSS类名写成模块或因素的名目加上七个破折号:.block--mod或.block__elem--mod和.block--color-black。

示例:

.form__submit--disabled

自家感到的一流实行是:比如对话框内有一个规定按键,这些规定开关的类名能够是:.alertmodal__button--done,在那之中done是修饰符,表示是“表鲜明的特别开关”。

  1. 什么是BEM?1

命名推荐

  有了适合的命名情势,还要求语义化命名,且有不影响语义的状态下,可以简写

【布局】

文档    doc
头部    header(hd)
主体    body    
尾部    footer(ft)    
主栏    main
侧栏    side    
容器    box/container

【通用部件】

列表    list
列表项  item
表格    table    
表单    form
链接    link
标题    caption/heading/title
菜单    menu
集合    group
条      bar
内容    content    
结果    result    

【组件】

按钮        button(btn)
字体        icon
下拉菜单     dropdown
工具栏       toolbar
分页         page
缩略图       thumbnail
警告框       alert
进度条       progress
导航条       navbar
导航         nav    
子导航       subnav
面包屑       breadcrumb(crumb)    
标签        label
徽章        badge
巨幕        jumbotron
面板        panel
洼地        well
标签页      tab
提示框      tooltip
弹出框      popover
轮播图      carousel
手风琴      collapse 
定位浮标    affix

【语义化小部件】

品牌        brand
标志        logo
额外部件    addon
版权        copyright
注册        regist(reg)
登录        login
搜索        search    
热点        hot
帮助        help
信息        info
提示        tips
开关        toggle
新闻        news
广告        advertise(ad)
排行        top    
下载        download    

【功用部件】

左浮动    fl
右浮动    fr
清浮动    clear

【状态】

前一个    previous
后一个    next
当前的    current

显示的    show
隐藏的    hide
打开的    open
关闭的    close

选中的    selected
有效的    active
默认的    default
反转的    toggle

禁用的    disabled
危险的    danger
主要的    primary
成功的    success
提醒的    info
警告的    warning
出错的    error

大型的    lg
小型的    sm
超小的    xs

 

小结:

从上面包车型客车实例中,大家简单开采BEM有以下特点:

  • 复杂的类名十分大减弱了类名重复的恐怕。
  • 各样块里的一类成分的体制对应一个类名。如此,一类成分对应四个类名,收缩了子选用器或后代采纳器的行使,升高了css的性质。
  • css类名的命名特别语义化,更易于读懂。
  • 可复用性高,举例大家得以把主旨类名.form__theme--xmas替换,即可对应替换为其余宗旨样式。

Atitit.css 规范 bem  项目中 CSS 的组织和管制

参谋文献:http://www.ibm.com/developerworks/cn/web/1512_chengfu_bem/
http://www.oschina.net/translate/thoughtful-css-architecture

  1. 是否采取 SASS 或 LESS 这样的 CSS 预管理语言来编排???8

  2. 参考8

BEM标准详解

所谓BEM,其实是几个单词的缩写:Block(模块)、Element(成分)、Modifier(修饰符)。

3.1. 为单身的CSS类命名

下边是一种大概的CSS类命名方案:

二个块的CSS类名正是以此块的名字(block name)。

<ul class="menu">

...</ul>

二个成分的CSS类名是贰个块名和贰个因素名的结合,它们在那之中用部分标志隔绝。

<ul class="menu">

    <li class="menu__item">…</li>

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

在叁个要素的CSS类名中隐含三个块名是必需的,那样能够让级联最小化。

我们在长名称中利用连字符分隔单词(比方,block-name),使用多个下划线来分隔块名和要素名(block-name__element-name)。

·  能够标准地检查评定到具有一样行为的块,因为它们有雷同的CSS类名:使用CSS类采用器,能够采抽出具备同一名字的块,方便给它们定义动态行为

· BEM 实体名称全是小写字母或数字。名称中的分裂单词用单个连字符(-)分隔。

· BEM 元素名称和块名称之间通过五个下划线(__)分隔。

· 布尔修饰符和其所修饰的实业名称之间通过五个连字符(--)来分隔。不选用名值对修饰符。

 

本文由全球彩票平台发布于全球彩官网下载地址Web前端,转载请注明出处:的组织和管理,其实很简单

TAG标签: 全球彩票平台
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。