【发布时间】:2019-01-18 00:54:26
【问题描述】:
首先,我搜索了类似的问题,有很多但没有一个具有以下确切要求。
我正在尝试使用纯 css 创建下面的按钮。
它有以下要求。
- 它有一个水平渐变的 1 像素边框。
- 必须是透明的。
- 它必须有圆角
- 它将有一个透明的边框切口。
- 必须是可变宽度和高度
- 它应该适用于所有现代浏览器(不是 IE)
我创建了一个代码沙箱,除了边界半径之外,它都正确无误。我使用多边形剪辑路径进行剪切,并使用边界图像作为渐变,这就是边界半径不起作用的原因。
body {
font-family: sans-serif;
background-color: #232837;
}
.button {
cursor: pointer;
display: inline-block;
height: 40px;
line-height: 40px;
padding: 0 10px;
color: white;
background-color: transparent;
border: solid 1px;
border-radius: 6px;
border-image: linear-gradient(to left, #743ad5 0%, #d53a9d 100%);
border-image-slice: 1;
clip-path: polygon(0 0, 12px 0, 12px 1px, 24px 1px, 24px 0, 100% 0, 100% 100%, 0 100%);
}
<div style="padding:40px;">
<a class="button">This is a button</a>
</div>
https://codesandbox.io/s/kw9p9k5073
到目前为止,我已经设法避免使用 svg,因为我对它们的理解还不够好,无法正确实施解决方案,但如果我必须走这条路,我会的。
非常感谢任何建议。
【问题讨论】:
-
请始终将示例代码添加到问题本身以避免链接失效
-
好电话,忘了这样做,但看起来你已经为我做了。
标签: css svg linear-gradients