I have the following CSS:
a.btn.white-grad { background: $lgrey; color: #313149 !important; border: 1px solid #000; border-image-source: linear-gradient(to right, #9c20aa, #fb3570); border-image-slice: 20; float: left; @include font-size(26); margin: 75px 0; } Adding border-radius: 5px doesn't seem to have any effect. I think this is because I'm using a border gradient... Is there a way to achieve the desired 5px border radius?
2023 - Single element, no pseudo-elements, no SVG, no masks.
I can't be responsible for this, I saw it on a website (I forgot the name of the website and can't find it).
insetbox-shadowto fill the inner whitebody { background: aliceblue; } .gradient-border { border-radius: 24px; padding: 6px 12px; background-image: linear-gradient(90deg, red 0%, blue 100%); /* 填充内部白色 */ background-origin: border-box; box-shadow: inset 0 1000px white; /* 透明边框,所以按钮的边缘可以透过来显示 */ border: 2px solid transparent; }2021: If you want transparency, I recommend using the CSS mask method as the support is pretty good now
You cannot use
border-radiusin gradients. Here's another idea, you can rely on multiple backgrounds and adjustbackground-clip:.white-grad { background: linear-gradient(#ccc 0 0) padding-box, /*这是你的灰色背景*/ linear-gradient(to right, #9c20aa, #fb3570) border-box; color: #313149; padding: 10px; border: 5px solid transparent; border-radius: 15px; display: inline-block; margin: 75px 0; }