使用BEM的html-markup中的类较少

时间:2016-08-09 06:12:19

标签: html css bem

我尝试从html-markup中删除所有链接类。因为那时我的所有样式都在我的css文件中,并且我没有查看我的html内部以查看某些元素的样式以及标记看起来更干净......

所以不是......

<a class="btn btn--blue btn--large">

......我有......

<a class="[block-name]__btn">

......在我的CSS里面,我有这个。

.[block-name]
    &__btn{
        @extend %btn;
        @extend %btn--blue;
        @extend %btn--large;
    }

这是一个好方法吗?

如果我有一个块与另一个块组合,我认为有两种方式

A)

<div class="register">
    <div class="form register__form"> //order is important if i want to use a modifier on the block form
        <div class="form__row">
            <input type="text" class="form__input"/>
        </div>
        <div class="form__row">
            <input type="submit" class="form__button" label="Jetzt Registrieren"/>
        </div>
    </div>
</div>

css

.register{
    &__form{
        margin-top: 60px;
        @extend %form--blue;
    }
}

%form,
.form{
    &--blue{
        .form__input{
            @extend %textfield-pill--blue;
        }
        .form__button{
             @extend %btn-pill--blue;
        }
    }

    .form__row{
        margin-top: 20px
    }

    .form__input{
        @extend %textfield-pill;
    }

    .form__button{
        @extend %btn-pill;
    }
}

B) 我删除了班级表格......

<div class="register">
    <div class="register__form">  //removed class form
        <div class="form__row">
            <input type="text" class="form__input"/>
        </div>
        ...

...并将其添加到我的CSS中。

.register{
    &__form{
        margin-top: 60px;
        @extend %form;
        @extend %form--blue;
    }
  }

你觉得什么更好? A)更好地向我展示了模块形式开始的地方,但是有更多的类,顺序很重要B)更多地遵循清洁标记的方式,但没有向我展示关联形式&gt; form__row ...

我在codepen上添加了一个例子 https://codepen.io/destroy90210/pen/rLQKOP

1 个答案:

答案 0 :(得分:1)

  

这是一个好方法吗?

是的,绝对。

  

你觉得什么更好? A)更好地向我展示模块形式开始的地方,但是有更多的类,顺序很重要B)更多地遵循清洁标记的方式,但没有向我显示相关形式&gt; form__row ...

BEM方法肯定是关于A.它被称为混合。有关详细信息,请参阅https://en.bem.info/methodology/key-concepts/#mixhttps://en.bem.info/methodology/faq/#mixes