P粉5415653222023-08-14 15:04:39
我不能為此負責,我在一個網站上看到的(我忘了網站的名字,也找不到它了)。
inset
的box-shadow
來填滿內部的白色body { 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; }
<button class="gradient-border">Hello</button>
P粉0662240862023-08-14 09:22:15
2021:如果你想要透明度,我建議使用CSS遮罩方法,因為現在的支援相當不錯
你不能在漸變中使用border-radius
。這裡有另一個想法,你可以依賴多個背景並調整background-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; }
<div class="white-grad"> 这里放置一些文字</div> <div class="white-grad"> 这里放置一些很长很长的文字</div> <div class="white-grad"> 这里放置一些很长很长的文字<br>这里放置一些很长的文字</div>