在背景下继承颜色

时间:2017-06-11 19:07:10

标签: css button colors background background-color

我想制作一个继承背景颜色的虚线按钮。 Here what I want(但我真的希望能够在不改变短划线背景的情况下更改按钮颜色。) 这是我的代码:

body {
  font-family:"Open Sans", sans-serif;
}
.btn {
  display: inline-block;
  padding: 0.5em 0.8em;
  vertical-align: top;
  border-radius: 5px;
  position: relative;
}
.btn.red {
  background-color:#dd2c2c;
  color:#f4f4f4;
}
.btn.blue {
  background-color:#2c84dd;
  color:#f4f4f4;
}
.btn.dash {
  background: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0) 10px,
    rgba(255, 255, 255, 0.2) 10px,
    rgba(255, 255, 255, 0.2) 20px),
    inherit;
 }
<div class="btn dash red">Red Button</div>
<div class="btn dash blue">Blue Button</div>

使用此代码我无法看到虚线部分。但是,如果我将“继承”更改为“真实”值(如#dd2c2c),它就可以了!我该怎么做才能保持原始的背景色值,但是用虚线悬停?

1 个答案:

答案 0 :(得分:1)

由于repeating-linear-gradient创建了一个图片,而不是一种颜色,您可以使用background-color进行设置,而您在第二个类中定义的background-color也会生效。< / p>

&#13;
&#13;
body {
  font-family:"Open Sans", sans-serif;
}
.btn {
  display: inline-block;
  padding: 0.5em 0.8em;
  vertical-align: top;
  border-radius: 5px;
  position: relative;
}
.btn.red {
  background-color:#dd2c2c;
  color:#f4f4f4;
}
.btn.blue {
  background-color:#2c84dd;
  color:#f4f4f4;
}
.btn.dash {
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0) 10px,
    rgba(255, 255, 255, 0.2) 10px,
    rgba(255, 255, 255, 0.2) 20px
    );
 }
&#13;
<div class="btn dash red">Red Button</div>
<div class="btn dash blue">Blue Button</div>
&#13;
&#13;
&#13;

在你的情况下它没有用,因为这不是背景的正确格式:

  background: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0) 10px,
    rgba(255, 255, 255, 0.2) 10px,
    rgba(255, 255, 255, 0.2) 20px), /** remove the comma **/
    inherit
 }

这是正确的定义:

  background: inherit repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0) 10px,
    rgba(255, 255, 255, 0.2) 10px,
    rgba(255, 255, 255, 0.2) 20px);
 }

然而,在这种情况下background更强大&#34; background-colorinherit将替换您定义的background-color。由于父母没有background-color,因此也不会有效。