我根据不同的动作有不同的css类。一切都运行良好,但是当我根据条件应用activeBackground
类时,它会使div background-color
变为绿色,但border-left-color
不会变为绿色,它仍然使用.arrow-div
类。如何解决此问题并在需要时应用.activebackground
课程?
HTML
<div class="text-arrow" ng-class="{'activeBackground': applyActiveFile, 'completeBackground':applyComplete}">File Selection
<span class="arrow-div"></span>
</div>
CSS
.text-arrow {
background-color:#BABABA;
color:#fff;
display:inline-block;
padding-left:45px;
}
.arrow-div {
border-style: dashed;
border-color: transparent;
border-width: 0.15em;
display: -moz-inline-box;
display: inline-block; /* Use font-size to control the size of the arrow. */
font-size: 100px;
height: 0;
line-height: 0;
position: relative;
vertical-align: middle;
width: 0;
background-color:#fff; /* change background color acc to bg color */
border-left-width: 0.2em;
border-left-style: solid;
border-left-color: #BABABA;
left:0.25em;
}
.activeBackground{
background-color: green;
border-left-color: green !important;
}
答案 0 :(得分:4)
在我看来,您已将.arrow-div
和.activeBackground
应用于不同的元素,以及编写代码的方式,.activeBackground
无法覆盖{{ 1}}因为它被应用于不同的元素(父元素)。要影响子元素(包含箭头的范围),您需要设置一个直接针对.arrow-div
的任何子.arrow-div
的css规则。
我的解决方案是简单地修改你的css,提供一种方法来改变箭头div:
.activeBackground
这里有一个小提琴: https://jsfiddle.net/cupno5g9/