BEM 方法论:不同的问题(重置、混合或修改器)
BEM Methology: Different Questions (Resetting, Mix or modifier)
:)
重置类:
假设我有一个 _base.scss 并且有
ul {
margin-top: 20px;
margin-bottom: 10px;
}
BEM 中重置相同内容的最佳方法是什么。我读到全局 类 不是 "allowed"。我是否必须做一个 scss-placeholder (%resetUl),然后扩展 ul-list 或者这里是否允许某种全局 类?前任。
<ul class="resetUl">
<li class="resetLi">
</ul>
BEM 混合或修饰符:
我有两个相似的按钮。一个按钮的字体大小为 16px,另一个按钮的字体大小为 20px。小的(16px 字体大小)总是在另一个组件里面。我必须在这里做混合或修改吗?
混合:
<div class="header">
<a class="header__item btn"></div>
</div>
修改器:
<div class="header">
<a class="btn btn--small"></a>
</div>
如果设计师说 "I want that button also in another part...hmm..let's say...ehmm the footer"...
混音:
.header__item,
.footer__item {
font-size: 16px;
}
有修饰符:
.btn {
//button stuff
}
.btn--small {
font-size: 16px;
}
在我写这篇文章的时候,似乎字体大小或颜色之类的东西是修饰符,而边距之类的东西是混合的?
在这种情况下,间距(边距)问题:
您是否在组件或 BEM-Mix 中已经存在边距?再说一个简单的按钮。我知道这一切都是可能的,但试图抓住一些利弊。
谢谢:)
1) 您可以创建多个占位符来重置某些属性。例如 %reset-list
、%reset-button
。并用其扩展组件。 .button { @extent %reset-button; }
.
2) 修改器或混合。
我认为所有外部样式(如边距和定位)都应由父组合设置。但是所有内部属性,如颜色、字体大小等都应该由修饰符设置。因为元素不知道外部上下文。而且父块也不知道它的子块(不是 __element)是如何制作的。
你的情况:
<div class="header">
<a class="header__item btn btn--small"></div>
</div>
.header__item {
position: absolute; // for example
}
.btn--small {
font-size: 16px;
}
:)
重置类:
假设我有一个 _base.scss 并且有
ul {
margin-top: 20px;
margin-bottom: 10px;
}
BEM 中重置相同内容的最佳方法是什么。我读到全局 类 不是 "allowed"。我是否必须做一个 scss-placeholder (%resetUl),然后扩展 ul-list 或者这里是否允许某种全局 类?前任。
<ul class="resetUl">
<li class="resetLi">
</ul>
BEM 混合或修饰符: 我有两个相似的按钮。一个按钮的字体大小为 16px,另一个按钮的字体大小为 20px。小的(16px 字体大小)总是在另一个组件里面。我必须在这里做混合或修改吗?
混合:
<div class="header">
<a class="header__item btn"></div>
</div>
修改器:
<div class="header">
<a class="btn btn--small"></a>
</div>
如果设计师说 "I want that button also in another part...hmm..let's say...ehmm the footer"...
混音:
.header__item,
.footer__item {
font-size: 16px;
}
有修饰符:
.btn {
//button stuff
}
.btn--small {
font-size: 16px;
}
在我写这篇文章的时候,似乎字体大小或颜色之类的东西是修饰符,而边距之类的东西是混合的?
在这种情况下,间距(边距)问题: 您是否在组件或 BEM-Mix 中已经存在边距?再说一个简单的按钮。我知道这一切都是可能的,但试图抓住一些利弊。
谢谢:)
1) 您可以创建多个占位符来重置某些属性。例如 %reset-list
、%reset-button
。并用其扩展组件。 .button { @extent %reset-button; }
.
2) 修改器或混合。 我认为所有外部样式(如边距和定位)都应由父组合设置。但是所有内部属性,如颜色、字体大小等都应该由修饰符设置。因为元素不知道外部上下文。而且父块也不知道它的子块(不是 __element)是如何制作的。
你的情况:
<div class="header">
<a class="header__item btn btn--small"></div>
</div>
.header__item {
position: absolute; // for example
}
.btn--small {
font-size: 16px;
}