还可以在以下位置找到更多信息:https ://github.com/twbs/bootstrap/issues/10332
以按钮为例。您可以将这些类应用到标签上button
,a
因此无法用于button.success
选择所有可能的标签/元素,这些标签/元素可以设置样式以使它们看起来像一个按钮。所以.btn-
意味着像一个按钮。
正如您自己的示例所示,是primary
按钮还是面板样式?
Bootstrap 使用基类和其他类来描述状态。基类设置一般属性,而状态(或大小等)类描述元素的样式和颜色。这似乎基于 OOCSS。
另一方面,当许多类共享相同的属性时,基类会阻止选择器列表(更多字节)增长。您可以在使用 Less扩展时看到这一点。一些例子;考虑以下基类(在 Less 中):
.button-base-class {
color:red;
&:hover,
&:active,
&:focus { color:green;
}
}
现在多次扩展上述基类:
button.type1 {type:1; &extend:(.button-base-class all); }
button.type2 {type:2; &extend:.button-base-class all); }
button.type3 {type:3; &extend:(.button-base-class all); }
在 CSS 中输出以下代码:
.button-base-class:hover,
.button-base-class:active,
.button-base-class:focus,
button.type1:hover,
button.type1:active,
button.type1:focus,
button.type2:hover,
button.type2:active,
button.type2:focus,
button.type3:hover,
button.type3:active,
button.type3:focus {
color: green;
}
这将是一长串选择器,每次扩展基类时都会增长。
最后,人们可能想知道为什么不使用属性选择器而不是基类。也可以使用 选择每次btn btn-
出现[class^="btn-"],[class*=" btn-"]
。使用最新版本时,您不必在 HTML 中编写基类代码。出于性能原因(尤其是 IE),引导程序避免使用(部分)属性选择器。这些性能问题可以在阅读时讨论:http: //benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/