聊一聊BEM设想形式在Vue组件开辟中的运用

聊一聊BEM设想形式在Vue组件开辟中的运用

追念一下在你的前端生涯中是不是碰到过以下题目
1.在写css的时刻常常会在定名class时挖空心思
2.在团队多人开辟中涌现css定名争执
3.在举行组件化开辟时怎样范例誊写css

什么是BEM

BEM是Yandex团队提出的一种css的定名体式格局,经由过程这类定名体式格局能够很好地处理上面碰到的题目,进步css的开辟效力和可读性

进入BEM的天下

  • B: 示意块,能够笼统成一个组件

  • E: 示意元素,组件下的一个元素,多个元素构成一个组件

  • M:示意修饰符,能够用来示意元素的状况,比方激活状况,色彩,大小

BEM这货终究张啥样呢,颜值高不高,请看下面的代码

    .block {}
    .block__element {}
    .block__element--modifier {}

看完后你的心田会不会在想,卧槽,这货竟然这么丑,名字还这么长,丑拒…

__和–衔接符这是什么鬼

  • __重要用来示意块(B)和元素(E)间的衔接

  • –用来示意块或许元素与状况的衔接

比方我们要做写一个button的组件,能够这么来

    
    /* 有一个叫button的组件 */
    .button {
         dispaly: inline-block;
         pading: 10px;
     } 

    /* btn组件下面有一个显现图标的元素 */
    .button__icont {
          font-size: 12px;
     }
    
    /* btn组件有很多色彩能够挑选  */
    .button--primary {
        background: blue;
    }

    .button--success {
        background: green;
     }

    .button--warning {
        background: red;
     }
    
    <div class="button button--primary">
        <span class="button__text">蓝色按钮</span>
    </div>

   <div class="button button--success">
        <span class="button__text">绿色按钮</span>
    </div>

   <div class="button button--warning">
        <span class="button__text">赤色按钮</span>
    </div>     

在Vue中连系Stylus预编译器运用BEM范例


<template>
  <div class="button" :class="[type ? 'button--primary' : '']">
    <i class="button__icon"></i>
    <span class="button__text"> {{ text }} </span>
  </div>
</template>

<style lang="stylus" rel="stylesheet/stylus" scoped>
  .button
    background: #dedede
    &__icon
      font-size: 12px
    &__text
      color: #fff
    &--primary
      background: blue;
    &--success
      background: green
</style>

<script type="text/ecmascript-6">
  export default {
    props: {
      type: {
            type: String
      },
      text: {
            type: String
       }
    },
    data () {
      return {}
    },
    components: {}
  }
</script>
    原文作者:花生毛豆
    原文地址: https://segmentfault.com/a/1190000009196059
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞