Css 没有类名的元素?
我有一个非常简单的问题,在CSS方法中是否允许子元素是无类的 那么,该代码是否有效:Css 没有类名的元素?,css,bem,Css,Bem,我有一个非常简单的问题,在CSS方法中是否允许子元素是无类的 那么,该代码是否有效: <div class="foo__label"> <p class="foo__text">Something <strong>else</strong></p> </div> Somethingelse 或者应该写为: <div class="foo__label"> <p class="foo__text
<div class="foo__label">
<p class="foo__text">Something <strong>else</strong></p>
</div>
Somethingelse
或者应该写为:
<div class="foo__label">
<p class="foo__text">Something <strong class="foo__text-strong">else</strong></p>
</div>
其他的东西
我允许自己引用@Intervalia:
你的第一个例子很好。在第二个示例中,您只需要 如果您计划为其创建CSS,请添加一个类。class=“foo\uuu text-strong” 如果你需要它,它是需要的 他的评论完美地回答了你的问题。然而,我想添加另一个可能会派上用场的场景 它是关于用户从CMS生成的内容(例如WorpAddress)。在这种情况下,用户通常在WYSIWYG编辑器中编写内容,无法添加BEM类,甚至用户还不太了解这些类 在这种情况下,最好有一个“父”元素,您可以在其中通过标记设置元素的样式 示例:
.text ul{}
.text p{}
.text iframe{}
.text img{}
.text strong, .text b{}
.text em, .text i{}
.text a{}
更新1:有关使用嵌套选择器的信息: 嵌套选择器增加了代码耦合,使重用变得不可能。这个 边界元法允许使用嵌套选择器,但我们建议 尽量减少它们的使用。 所以,是的,如果你认为这太过分了,你可以接受@Rene的建议 更新2:助手类 边界元法没有创建辅助对象的严格规则 阻碍。这在很大程度上取决于具体的实现和个人需求 开发人员的首选项。bem core中的辅助块示例是
clearfix
块。
也许这项技术能有所帮助?就我个人而言,我经常使用的全球助手很少
例如,著名的仅屏幕阅读器样式:
.sr-only{
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
在您的情况下,您可以定义例如
.accent color
或简单地.accent
,它可以将任何元素的颜色变成红色或其他颜色:)我允许自己引用@Intervalia:
你的第一个例子很好。在第二个示例中,您只需要 如果您计划为其创建CSS,请添加一个类。class=“foo\uuu text-strong” 如果你需要它,它是需要的 他的评论完美地回答了你的问题。然而,我想添加另一个可能会派上用场的场景 它是关于用户从CMS生成的内容(例如WorpAddress)。在这种情况下,用户通常在WYSIWYG编辑器中编写内容,无法添加BEM类,甚至用户还不太了解这些类 在这种情况下,最好有一个“父”元素,您可以在其中通过标记设置元素的样式 示例:
.text ul{}
.text p{}
.text iframe{}
.text img{}
.text strong, .text b{}
.text em, .text i{}
.text a{}
更新1:有关使用嵌套选择器的信息: 嵌套选择器增加了代码耦合,使重用变得不可能。这个 边界元法允许使用嵌套选择器,但我们建议 尽量减少它们的使用。 所以,是的,如果你认为这太过分了,你可以接受@Rene的建议 更新2:助手类 边界元法没有创建辅助对象的严格规则 阻碍。这在很大程度上取决于具体的实现和个人需求 开发人员的首选项。bem core中的辅助块示例是
clearfix
块。
也许这项技术能有所帮助?就我个人而言,我经常使用的全球助手很少
例如,著名的仅屏幕阅读器样式:
.sr-only{
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
在您的情况下,您可以定义例如
.accent color
或简单的.accent
,它可以将任何元素的颜色变成红色或其他颜色:)如果您知道:
元素的嵌套块添加为.foo\u text
的子元素
元素的语义已经有了限制。您的级联只添加了一个:no
,no
作为子级(因为父级是一个段落)。。。然后在您的情况下,没有BEM块可能有
元素
那么,如果你不是一个纯粹主义者,为什么不呢
另请参见:如果您知道:
元素的嵌套块添加为.foo\u text
的子元素
元素的语义已经有了限制。您的级联只添加了一个:no
,no
作为子级(因为父级是一个段落)。。。然后在您的情况下,没有BEM块可能有
元素
那么,如果你不是一个纯粹主义者,为什么不呢
另请参见:您的第一个示例很好。在第二个示例中,如果您计划为其创建CSS,则只需添加一个类
class=“foo\uuu text-strong”
是必要的,如果您需要的话。其要点是防止“风格泄漏”,并为您的同事增加可重用性和易用性。所以,一般来说,我会说写.foo_uutext>strong{color:red}
是可以的,它不会泄漏或有任何其他讨厌的副作用。添加.foo\uuu text-strong
可能有些过分。具体规则可以写在贵公司的指南中。另请参见:。您的第一个示例很好。在第二个示例中,如果您计划为其创建CSS,则只需添加一个类class=“foo\uuu text-strong”
是必要的,如果您需要的话。其要点是防止“风格泄漏”,并为您的同事增加可重用性和易用性。所以,一般来说,我会说写.foo_uutext>strong{color:red}
是可以的,它不会泄漏或有任何其他讨厌的副作用。添加.foo\u文本-