如何创建这个CSS效果?

时间:2017-08-28 19:33:14

标签: css css3

我需要创建一个如下所示的按钮,但是如果不使用图像就很难获得边框效果:

see button here

具体来说,我所看到的边框效果从未产生斜角效果 - 它几乎就像我需要两个边框一样。按钮的颜色,形状和其他方面不是问题。

这是我迄今为止所拥有的,非常接近:



button {
    border: 1px solid gray;
    border-radius: 4px;
    text-align: center;
    display: inline-block;
    padding: 5px 10px;
    background: linear-gradient(to bottom, #f9fcff 0%,#93a0c6 100%);
}

<button>OK</button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:5)

您可以使用background: linear-gradient,双borderborder-radius来使用一个元素实现此效果。

要将背景应用于边框的透明中间部分,请增加背景的大小(即140%)并调整其位置。

button {
  background: linear-gradient(to bottom, #fff 0%, #8ab 100%);
  background-size: 140%;
  background-position: 0 50%;
  border: 4px double #23538a;
  border-radius: 6px;
  padding: 5px 8px;
  color: #23538a;
}
<button>OK</button>

答案 1 :(得分:0)

这会让你走近。使用box-shadowpadding和&#39; border-radius`的组合:

.btn-container {
  display:inline-block;
  border: solid 1px #224488;
  border-radius: 4px;
  padding: 2px;
  background:#acd;
  box-shadow:0px 4px 6px #cde inset;
}
.btn {
  display:inline-block;
  border: solid 1px #224488;
  border-radius: 4px;
  padding: 2px;
  background:#acd;
  box-shadow:0px 5px 10px #e0f0ff inset;
}

<div>
  <span class='btn-container'>
    <span class='btn'>Click here!</span>
  </span>
</div>

小提琴:https://jsfiddle.net/oqqpccmf/