我有一个 SVG,它是用一个用于锚边框的多边形创建的。我遇到的一个问题是我希望按钮支持可变内容 - 允许按钮根据需要水平调整大小以适应,同时限制侧线的角度。
我似乎无法弄清楚是否需要以某种方式处理拆分原始多边形、调整 viewBox 或其他什么。我们很难过。
我使用的内联 SVG 相当基本:
* { box-sizing: border-box; }
.btn {
width: 198px;
display: inline-block;
background: transparent;
margin: 2px 0;
padding: 0;
height: 41px;
text-align: center;
font-size: 10px;
line-height: 41px;
font-weight: 600;
font-family: sans-serif;
text-transform: uppercase;
color: #FFF;
position: relative;
transition: all ease-in-out 0.3s; }
.btn.btnFluid {
width: auto; }
.btn.btnFluid svg {
width: 100%;
height: 41px; }
.btn svg polygon {
fill: #000;
transition: fill 0.3s ease;
stroke: #002b5d;
stroke-width: 2; }
.btn:hover {
color: #000; }
.btn:hover svg polygon {
stroke: #000;
fill: #FFF; }
.btn span {
position: absolute;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: block;
padding: 0 25px; }
svg:not(:root) {
overflow: hidden; }
<a href="#" class="btn">
<svg xmlns="http://www.w3.org/2000/svg" class="btn-svg" viewBox="0 0 386.16 80">
<polygon points="346.14 78 40.02 78 3.19 2 382.97 2 346.14 78"></polygon>
</svg>
<span>Read More</span>
</a>
<br><br>
<a href="#" class="btn btnFluid">
<svg xmlns="http://www.w3.org/2000/svg" class="btn-svg" viewBox="0 0 386.16 80" preserveAspectRatio="none">
<polygon points="346.14 78 40.02 78 3.19 2 382.97 2 346.14 78"></polygon>
</svg>
<span>A much longer cta button label</span>
</a>
我在这里创建了一个可编辑的演示:https ://jsfiddle.net/32wcq1zr/1/——比较第一个按钮和第二个按钮的侧边角度。理想情况下,我希望拥有第二个按钮的功能,但侧线的角度一致。

