为什么CSS框架不必要地使用!important标签?

Max*_*ynn 5 css css-frameworks twitter-bootstrap zurb-foundation cascade-framework

这更多的是辩论,而不是问题,但我觉得互联网上没有很多关于这个主题的文章。

例如,Foundation附带了数百个!important标签,这些标签在我眼中不需要它们:

.text-center { text-align: center !important; } 
Run Code Online (Sandbox Code Playgroud)

有很多与此类似的css,在我看来这是不好的做法,我想回答的问题是,为什么css框架完全使用它们?Bootstrap和Foundation是两个都使用它们的主要CSS框架。

一直有人告诉我,在CSS中使用重要标记是非常不好的做法,并且仅应用于IE。

Sal*_*n A 6

如果您编写自己的CSS,则可以随时根据需要添加更多特定规则:

.center        { text-align: center; }
.foobar        { text-align: left; }
.foobar.center { text-align: center; }
Run Code Online (Sandbox Code Playgroud)

但是,CSS框架无法预测如何布置HTML。因此,它!important比生成数千个更具体的规则的组合要容易得多。例:

.center               { text-align: center; }
.foobar               { text-align: left; }
.barbaz               { text-align: right; }
 /*
  * assuming .center must be centered regardless of other rules and
  * !important must be avoided at the same time, we need to do this
  */
.foobar.center        { text-align: center; }
.barbaz.center        { text-align: center; }
.foobar.barbaz.center { text-align: center; }
Run Code Online (Sandbox Code Playgroud)

  • @ user2734550问题是为什么不鼓励使用诸如twitter bootstrap之类的某些框架`!important`。你能回答吗? (2认同)