【发布时间】:2016-10-25 01:02:35
【问题描述】:
我有一个带有 input 和 textarea 元素的表单的页面。我正在使用引导程序和我自己的 site.css。 site.css 在标记中的 boostrap.css 之前。我在站点 css 中有一个 css 规则,如下所示:
.formcontainer input, textarea {
background-color: lightgray;
}
表单元素还应用了来自引导程序的表单控制类。问题是输入元素优先考虑我的站点 css 中的规则并正确应用背景颜色。但是,对于 textarea 元素,引导类优先于我的 site.css 中的规则。所有表单元素都包装在相同的 div 容器中,并应用了相同的类。我无法理解为什么元素以不同的方式获得规则的优先级。
这是一个标记示例,其中输入获取背景颜色但文本区域没有:
<div id="formpart2" class="formcontainer">
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Email</label>
<div class="input-group">
<input type="text" class="form-control invalid" fieldrequired>
</div>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Contact Instructions</label>
<div class="input-group">
<textarea type="text" class="form-control" rows="10" cols="15" fieldrequired></textarea>
</div>
</div>
</div>
【问题讨论】:
-
我在使用 Bootstrap 时遇到过一些类似的事情。它来自 CSS 属性 '!important'。这可以添加到级联列表中的样式中,并且在向下工作时不会被覆盖。 Bootstrap 有一些被标记为重要的东西,因此具有优先权。尝试添加您自己的 !important。这是一个小提琴的例子。 jsfiddle.net/0fqsm8jq
-
@Dean You 不要使用
!important。你的建议真的很糟糕,我的意思是 really 。确实存在使用!important合法的情况。我敢打赌你从来没有遇到过他们中的任何一个。建议使用!important解决 CSS 加载优先级问题是您可能给 OP 的最糟糕的建议。 -
@HisDivineShadow 你可能想要这个选择器而不是
.formcontainer input, .formcontainer textarea { ... }。否则,您的规则针对任何input元素,它是类.formcontainer的元素和元素的后代,除此之外,任何文本区域(此处不需要具有特定类的父级)。另请注意,这会使 textarea 的规则不太具体。 -
我考虑过使用 !important 但决定不使用它。这真的是一种懒惰的黑客/最后的手段。
-
@connexo 你说对了,我的语法错了。您应该将其作为答案提交。
标签: css twitter-bootstrap