【问题标题】:How do you completely remove a style from bootstrap by overriding it如何通过覆盖从引导程序中完全删除样式
【发布时间】:2015-07-27 22:10:53
【问题描述】:

所以我完全熟悉使用我自己的Style.css 在引导程序中覆盖样式。但是,假设 bootstrap 具有放在桌子上的样式或标准 html 元素的样式。让我们使用标签,因为这是一个相当简短的示例。我们首先假设除了以下css代码之外,没有其他任何地方的标签样式或标签元素样式:

label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}

现在,如果我想在我的 Style.css 文件中覆盖此样式并更改边距和粗细,我可以这样做:

label {
  margin-bottom: 3px;
  font-weight: normal;
}

很简单,这将改变这两个项目并允许其他样式级联。但是,如果我想完全删除引导程序为元素标签添加的任何样式怎么办。有没有一种简单的方法可以做到这一点而不必做类似的事情:

label {
  display: inline;
  max-width: None;
  color: none;
  margin-bottom: 0;
  font-weight: normal;
}

或者基本上逐行将每个样式属性更改为无或正常或其他什么?同时保持原始 Bootstrap 文件处于未触及状态,并且不对其进行任何注释。

顺便说一句,如果 JavaScript 简洁易用,我也可以使用它?

【问题讨论】:

    标签: html css twitter-bootstrap dom overriding


    【解决方案1】:

    这取决于您要支持的浏览器。你可以使用

    label {
      all: initial; // or all: unset
    }
    

    但请注意,它还没有真正得到广泛支持。它适用于 IE 11、Firefox、Opera 和 Chrome,但不适用于 Safari 或大多数移动浏览器。不过,知道它是否以及何时得到更广泛的支持是一件好事:)

    【讨论】:

    • 我将在一个测试项目中尝试这个。这很有趣。
    【解决方案2】:

    如果它已经包含,则否,覆盖它的唯一方法是给它像none 这样的属性,或者处理它的最佳方法是使用它们的 SASS/LESS 实现并且根本不包含该组件。

    【讨论】:

    • 当然,我确实使用他们的 ala carte 方式加载组件,我通常开始一个项目,所有组件都在 SASS 或我的 bundle.config 中注释掉,并且只在需要时取消注释它们,但我想知道是否有办法说“嘿,CSS,我想完全删除任何可能已分配给'label'元素的样式,就好像它一开始就没有设置一样”,我不想逐行进行。
    • 如果有 label { !removeAll; } 之类的东西就好了,哈哈...
    • 这将是一个坏主意,原因有两个:您必须清除样式然后重新应用 css,如果有人接管您的代码,将来很难维护
    • 它看起来像是从引导程序或基础之类的东西中轻松删除样式的唯一方法,假设所有基于表格元素的样式就是将其注释掉。这样我就不会逐行更改样式。我只需要在某个地方记录它正在完成的事情,以防我们将来想要更新框架,以便我们知道在那里也可以这样做。你说这是真的吗?
    • 是的,因为未来的更新将更新 bootstrap.less 以包含所有内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多