您可以考虑多个背景和渐变:
.button {
display:inline-block;
padding:20px 25px;
background:
linear-gradient(grey,grey) top left /80% 3px,
linear-gradient(grey,grey) bottom right/80% 3px,
linear-gradient(grey,grey) 0 calc(100% - 8px)/90% 3px,
linear-gradient(grey,grey) 100% 8px /90% 3px,
linear-gradient(to bottom,grey 50%,transparent 50%,transparent 80%,grey 0) left top /3px calc(100% - 8px),
linear-gradient(to top,grey 50%,transparent 50%,transparent 80%,grey 0) right bottom/3px calc(100% - 8px);
background-repeat:no-repeat;
}Run Code Online (Sandbox Code Playgroud)
<div class="button">
Discover
</div>Run Code Online (Sandbox Code Playgroud)
并使用一些CSS变量以获得更大的灵活性:
.button {
display:inline-block;
padding:20px 25px;
background:
linear-gradient(grey,grey) top left /80% var(--w,3px),
linear-gradient(grey,grey) bottom right/80% var(--w,3px),
linear-gradient(grey,grey) 0 calc(100% - var(--d,8px))/90% var(--w,3px),
linear-gradient(grey,grey) 100% var(--d,8px) /90% var(--w,3px),
linear-gradient(to bottom,grey calc(60% - var(--s,25%)),transparent calc(60% - var(--s,25%)),transparent calc(60% + var(--s,25%)),grey 0) left top /var(--w,3px) calc(100% - var(--d,8px)),
linear-gradient(to top,grey calc(60% - var(--s,25%)),transparent calc(60% - var(--s,25%)),transparent calc(60% + var(--s,25%)),grey 0) right bottom/var(--w,3px) calc(100% - var(--d,8px));
background-repeat:no-repeat;
}Run Code Online (Sandbox Code Playgroud)
<div class="button">
Discover text
</div>
<div class="button" style="--w:5px;--d:16px;--s:5%">
Discover more and more text
</div>
<div class="button" style="--w:8px;--d:12px;--s:10%">
Discover<br>text
</div>
<div class="button" style="--w:2px;--d:5px;--s:20%">
Disco
</div>Run Code Online (Sandbox Code Playgroud)