BEM 和表单输入
BEM and form inputs
我正在新项目(表单页面)中尝试 BEM,并且正在寻找标记表单输入的最佳方式。
我有一套单选按钮的常用样式,我判断是一个"element"的表单域"blocks"。所以我给了它 class:
.projectField__radio
单选按钮并不总是 .projectField
的直接子项,但它们始终是它们的后代。所以:
问题 1:
在 BEM 的上下文中可以吗?
问题 2:
对于特定字段 - 将其称为 "colour" 字段 - 我没有标准的单选按钮布局。它们是带有图表的字段的一部分,图表在页面上可视为一个块,因此我将其放入 div:
.projectColourSettings
我应该如何标记单选按钮?他们需要基本单选按钮的样式,但也需要自己的样式作为颜色设置字段的一部分。
是这个吗?
<input class="projectField__radio projectColourSettings__radio" type="radio" value=1 />
或者
<input class="projectField__radio projectField__radio--colourSettings" type="radio" value=1 />
到目前为止,我很喜欢 BEM,它迫使我认真考虑我的标记,但我不确定该怎么做。
我认为后者是正确的选项:
projectField
是一个 块。
radio 是这个 block 中的一个元素,所以你用 projectField__radio
.
来标识它
最后,您需要修改此元素:
projectField__radio--colourSettings
回答您的问题 1:是的,我认为这在 BEM 中非常好。该方法添加了一个抽象层,并不真正关心您的特定标记,例如您的单选按钮(您的 "element")是否是表单字段(您的 "block")的直接子项。
我正在新项目(表单页面)中尝试 BEM,并且正在寻找标记表单输入的最佳方式。
我有一套单选按钮的常用样式,我判断是一个"element"的表单域"blocks"。所以我给了它 class:
.projectField__radio
单选按钮并不总是 .projectField
的直接子项,但它们始终是它们的后代。所以:
问题 1: 在 BEM 的上下文中可以吗?
问题 2: 对于特定字段 - 将其称为 "colour" 字段 - 我没有标准的单选按钮布局。它们是带有图表的字段的一部分,图表在页面上可视为一个块,因此我将其放入 div:
.projectColourSettings
我应该如何标记单选按钮?他们需要基本单选按钮的样式,但也需要自己的样式作为颜色设置字段的一部分。
是这个吗?
<input class="projectField__radio projectColourSettings__radio" type="radio" value=1 />
或者
<input class="projectField__radio projectField__radio--colourSettings" type="radio" value=1 />
到目前为止,我很喜欢 BEM,它迫使我认真考虑我的标记,但我不确定该怎么做。
我认为后者是正确的选项:
projectField
是一个 块。
radio 是这个 block 中的一个元素,所以你用 projectField__radio
.
最后,您需要修改此元素:
projectField__radio--colourSettings
回答您的问题 1:是的,我认为这在 BEM 中非常好。该方法添加了一个抽象层,并不真正关心您的特定标记,例如您的单选按钮(您的 "element")是否是表单字段(您的 "block")的直接子项。