<p>Ich habe derzeit das Bedürfnis, so etwas zu machen. </p>
<p>Mein erster Gedanke war, Clip-Path zu verwenden, aber die abgerundeten Ecken lassen sich nur schwer umsetzen, und es ist schwierig, 22,5 Grad beizubehalten, wenn die Breite der Schaltfläche aufgrund ihres Inhalts geändert wird. </p>
<p>Am Ende habe ich jede Schaltfläche als zwei <em>Divs</em> erstellt, wobei ein Div um 22,5 Grad geneigt war und das reguläre rechteckige Div überlappte. Dann habe ich beiden einen Randradius hinzugefügt.</p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">body {
Zeilenhöhe: 0;
Schriftgröße: 16px;
Hintergrundfarbe: schwarz;
}
.cta-button-group {
Anzeige: Flex;
Lücke: 2rem;
align-items: center;
}
.button-angular-wrapper-left {
Anzeige: Flex;
Isolation: isolieren;
Position: relativ;
Höhe: 40px;
Breite: fit-content;
}
.button-angular-wrapper-left .button-angular-main {
Randradius: 7px 0 0 7px;
Höhe: 100 %;
Anzeige: Inline-Grid;
Ortselemente: Mitte;
padding-inline: 8px 16px;
Rand rechts: 13px;
Übergang: Hintergrundfarbe 50 ms;
}
.button-angular-wrapper-left .button-angular-slant {
Randradius: 0 7px 7px 0;
Höhe: 100 %;
Breite: 24px;
Position: absolut;
rechts: 0;
oben: 0;
unten: 0;
Z-Index: -1;
Übergang: Hintergrundfarbe 50 ms;
}
.button-angular-wrapper-left .button-angular-slant.back-slash {
transformieren: skewX(22,5deg);
}
.button-angular-wrapper-left .button-angular-slant.forward-slash {
transform: skewX(-22,5deg);
}
.button-angular-wrapper-left.button-angular-color-solid-white .button-angular-main,
.button-angular-wrapper-left.button-angular-color-solid-white .button-angular-slant {
Hintergrund: weiß;
Rand: 3 Pixel einfarbig weiß;
Farbe blau;
}
.button-angular-wrapper-left.button-angular-color-solid-white .button-angular-main {
border-right: keine;
}
.button-angular-wrapper-left.button-angular-color-solid-white .button-angular-slant {
border-left: keine;
}
.button-angular-wrapper-right {
Anzeige: Flex;
Isolation: isolieren;
Position: relativ;
Höhe: 40px;
Breite: fit-content;
}
.button-angular-wrapper-right .button-angular-main {
Randradius: 0 7px 7px 0;
Höhe: 100 %;
Anzeige: Inline-Grid;
Ortselemente: Mitte;
padding-inline: 8px 16px;
Rand links: 13px;
}
.button-angular-wrapper-right .button-angular-slant {
Randradius: 7px 0 0 7px;
Höhe: 100 %;
Breite: 24px;
Position: absolut;
links: 0;
oben: 0;
unten: 0;
Z-Index: -1;
}
.button-angular-wrapper-right .button-angular-slant.back-slash {
transformieren: skewX(22,5deg);
}
.button-angular-wrapper-right .button-angular-slant.forward-slash {
transform: skewX(-22,5deg);
}
.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main,
.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-slant {
Rand: 3 Pixel einfarbig weiß;
}
.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main {
border-left: keine;
}
.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main .icon-call {
Farbe weiß;
}
.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main .cta-text {
Farbe weiß;
}.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-slant {
border-right: keine;
}</pre>
<pre class="brush:html;toolbar:false;"><div class="cta-button-group">
<div class="button-angular-wrapper-left button-angular-color-solid-white" href="">
<div class="button-angular-main">
<span class="cta-text">
Erfahren Sie noch heute mehr
</span>
</div>
<div class="button-angular-slant Back-slash">
</div>
</div>
<div class="button-angular-wrapper-right button-angular-color-outline-white" href="">
<div class="button-angular-main">
<span class="cta-text tel-link-no">
1800-1-5555
</span>
</div>
<div class="button-angular-slant Back-slash">
</div>
</div>
</div></pre>
<p><br /></p>
<p>CodePen:https://codepen.io/katylar/pen/yLRjKaO</p>
我已经用伪元素尝试过这种方法。该形状的左侧是一个
::before
元素,为了实现悬停效果,我将按钮和伪元素上的特定边设为不可见,并更改了特定角的边框半径。