CSS:border-color:inherit

时间:2016-07-14 06:41:40

标签: html css

我有一个带有边框的按钮在右边和底部,当我悬停时,两个边框都被隐藏,并在顶部和左边显示边框,颜色与背景颜色相同,在父按钮上,我想要像3D按钮效果,但它不起作用。

当我将鼠标悬停在

时,这就像我的按钮一样

enter image description here

我想要的是边框颜色是红色,如果父背景颜色是绿色,边框颜色是绿色

这是我的代码

.cta {
    display: inline-block;
    padding: 10px 30px;
    font-family: 'courier new' !important;
    font-size: 19px !important;
    background: #1d85bf;
    color:#fff;
    border:3px solid #0b527a;
    border-top:0;
    border-left: 0;
    border-radius:3px;
    text-transform:uppercase; 
    display: block;
    overflow: hidden;
    white-space: nowrap;
}

.cta:hover {
    border:3px solid #dbdbdb;
    border-color:inherit !important;
    border-bottom: 0;
    border-right: 0;
    border-top-left-radius: 3px !important;
    color:#fff;
}

这是我的小提琴https://jsfiddle.net/evpsthx3/

3 个答案:

答案 0 :(得分:2)

问题是您的父母没有设置边框颜色。所以只需将边框颜色设置为父级。这样的事情:https://jsfiddle.net/evpsthx3/9/

<div class="parent red">
<a class="cta">BUTTON</a>
</div>

<div class="parent green">
<a class="cta">BUTTON</a>
</div>



.parent.red {
  background-color: red;
  border-color: red;
}

.parent.green {
  background-color: green;
  border-color: green;
}

答案 1 :(得分:1)

你可以通过添加以下css代码来实现这种效果,希望它能够获得这种效果。

.cta:hover {box-shadow: #000 5px 5px 5px;}

答案 2 :(得分:1)

你可以尝试这个:

.parent {
  width:300px;
  height:60px;
  padding:30px;
}

.cta {
    display: inline-block;
    padding: 10px 30px;
    font-family: 'courier new' !important;
    font-size: 19px !important;
    background: #1d85bf;
    color:#fff;
    border:3px solid #0b527a;
    border-top:0;
    border-left: 0;
    border-radius:3px;
    text-transform:uppercase; 
    display: block;
    overflow: hidden;
    white-space: nowrap;
}

.cta:hover {
    border:3px solid #dbdbdb;
    border-color:inherit !important;
    border-bottom: 0;
    border-right: 0;
    border-top-left-radius: 3px !important;
    color:#fff;
    box-shadow: #242729 6px 6px 6px;
}

DEMO HERE