【问题标题】:Why does bootstrap use '!important' for responsive classes?为什么 bootstrap 对响应式类使用“!important”?
【发布时间】:2019-07-16 10:16:36
【问题描述】:

Bootstrap 响应式实用程序都使用!important,这对我来说没有多大意义。而且它不像col-xx-xx 那样做继承。我想知道为什么他们为这些课程添加了!important。有人提到这是为了具体。这意味着什么?此外,显示和隐藏类似乎也使用!important。为什么?

【问题讨论】:

标签: css twitter-bootstrap


【解决方案1】:

虽然使用!important 很少是一个好主意,因为您已经注意到自己,因为在不使用!important 的情况下覆盖会很痛苦,但我相信TB 有充分的理由为响应式实用程序这样做。

如果您声明您想要,例如一个不可见的按钮,例如小型显示器,通过将hidden-sm 类设置为该按钮,您永远不希望它在小型显示器上可见。如果您不会在该实用程序类上使用重要,并且您会例如想要通过添加.btn-block 类在所有其他显示尺寸上使用块按钮,您的按钮将在小型显示器上再次可见,因为.btn-blockdisplay 属性设置回block。或者至少可以,这取决于事情的顺序,因为 .hidden-sm.btn-block 在涉及 css 的级联规则时具有相同的特异性。

如果没有!important 语句,您将无能为力。因此,这是您必须使用它来保证正确行为的边缘情况之一。

但你的质疑是对的,!important 只能作为最后的手段!

【讨论】:

  • 谢谢Pevara,这是我没想到的。另一种方法可能是将所有实用程序移动到 css 顺序的末尾。这将覆盖大多数其他全局特异性或通用实用程序。我不喜欢的部分是大多数响应类没有继承。例如: hidden-xs 只会隐藏 xs 视图上的元素,它不会扩展到 -md 和更大的视图。它们太指定了。也许他们这样设计是因为 '!important' 不应该被继承。
  • 嘿@pevara,为什么你认为引导响应实用程序对不同的媒体视图大小如此具体?为什么不让类像 col-sm-xx 一样可继承,它继承到 lg 大小。
  • 我的解决方案不是使用!important,而是选择更高的特异性,即。 .hidden-sm.hidden-sm { // hide styles } 也会变得笨拙(即 3、4 或更多级别),但肯定比到处扔 !important 更好
猜你喜欢
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
相关资源
最近更新 更多