【问题标题】:I can't understand why I'm not able to override a Bootstrap style with my own style sheet in this particular case我不明白为什么在这种特殊情况下我不能用我自己的样式表覆盖 Bootstrap 样式
【发布时间】:2015-11-12 00:23:04
【问题描述】:

我正在使用 bootstrap 构建一个简单的站点,并尝试修改警报框的样式。

在头部,我链接到 Bootstrap CSS、Bootstrap 可选主题,然后是我的自定义样式表(按此顺序)。这是我正在尝试自定义的警报框:

<div id="success" class="alert alert-success">Success</div>

在我的自定义样式表中,我有:

#success {
    color: white;
    background-color: black;
    border-color: red;
}

发生的情况是字体颜色和边框颜色分别变为白色和红色,但背景没有。

在花费大量时间搜索并尝试不同的方法后,我注意到如果我不使用可选的 Bootstrap 主题,那么背景颜色会变为我指定的颜色。但是我不完全明白为什么。我一直在查看此警报框的可选主题 CSS:

alert-success {
  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  background-image:      -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
  background-repeat: repeat-x;
  border-color: #b2dba1;
}

我看到这里多次提到了坚持不变成黑色的颜色(绿色#dff0d8)。我认为在使用可选的 CSS 主题时我无法更改警报成功框的背景颜色的原因是因为使用此主题时背景不再是“背景颜色:黑色”中的“纯色” ;"但变成了 webkit 渐变(不管是什么)。我是否正确理解这一点?有没有一种简单的方法可以在我的自定义 CSS 表中为这个特定的警报框覆盖这个或打开这个渐变。

我是新手,我还没有完全理解 CSS 表中的 webkit 规则。提前致谢。


更新

感谢下面每个人的帮助,我能够理解问题并纠正它。这里是:

我使用的可选引导主题通过“背景图像”创建背景,而不是像我试图做的那样“背景颜色”。因此,即使我正确更改了背景颜色,也会在其之上创建背景图像。有很多方法可以在这里做我想做的事: - 添加“背景图片:无;”在自定义 CSS - 更改“背景颜色:黑色;”到“背景:黑色;”在自定义 CSS 规则中

谢谢大家。

【问题讨论】:

  • 您在 CSS 中尝试过div#success.alert-success 吗?越具体越好
  • 您确定您的 CSS 正在加载吗?你能分享更多你的html吗?也许将问题重现到 jsfiddle 中?或引导?您的代码应该可以工作,请参阅小提琴:jsfiddle.net/sn5jsskf
  • CSS 正在加载。我可以更改边框颜色和字体颜色。只是不是背景颜色。另一张海报(Houdmont)的回答帮助我理解。我认为在你的小提琴中你没有像我一样使用可选的引导主题(bootstrap-theme.css)。主题通过“背景图像”而不是“背景颜色”创建背景,就像我试图做的那样。因此,即使我正确更改了背景颜色,也会在其之上创建背景图像。我可以通过添加“背景图像:无;”来做我想做的事。在我的 CSS 中。

标签: css twitter-bootstrap


【解决方案1】:

尝试删除 background-image 属性以及设置背景颜色。

#success {
    color: white;
    background-color: black;
    background-image: none;
    border-color: red;
}

【讨论】:

  • 嗨。谢谢回答。删除 background-image 属性有效!所以我理解正确。我正确设置了背景颜色,但是 webkit 在可选引导样式表上设置了背景图像。非常感谢。我想我现在明白了。
【解决方案2】:

您可以尝试使用 !important 的混乱解决方案

#success {
color: white;
background-color: black !important;
border-color: red;
}

您也可以尝试更具体地选择:

div#success.alert-success {
color: white;
background-color: black !important;
border-color: red;
}

【讨论】:

  • 嗨。谢谢回答。使用 !important 是我的第一个想法,但在这里不起作用。我不明白为什么。我刚刚尝试使用 div#success.alert-success 作为选择器,但它不起作用。
  • 这种情况下不需要使用!important
【解决方案3】:

尝试在您的自定义 CSS 规则中将 background-color: black; 更改为 background: black;

#success {
  color: white;
  background: black;
  border-color: red;
}
.alert-success {
  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
  background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
  filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
  background-repeat: repeat-x;
  border-color: #b2dba1;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div id="success" class="alert alert-success">Success</div>

【讨论】:

  • 嗨。谢谢回答。这也有效。我现在有太多可行的解决方案,并且完全理解了这个问题。非常感谢。
猜你喜欢
  • 2015-03-07
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 2016-02-12
  • 2010-10-16
  • 2016-04-08
相关资源
最近更新 更多