变换 - 仅倾斜锚标记背景

Transform - Skew anchor tag background only

如何在不更改 HTML 的情况下使文本笔直,同时仅在背景上保持倾斜?

https://jsfiddle.net/z4ms6k07/1/

.btn {
  transform: skewX(-59deg);
  background-color: yellow;
}

.btn a {
  transform: skewX(59deg);
}
<div class="wrapper">
  <div class="btn btn-one">
    <a href="#">BTN ONE</a>
  </div>
  <div class="btn btn-two">
    <a href="#">BTN TWO</a>
  </div>
</div>

您可以向后倾斜文本。由于 transform 不适用于非块元素,并且 a 是内联标签,因此您需要将 a 标签 display 更改为 inline-blockblock :

.btn {
  transform: skewX(-59deg);
  background-color: yellow;
}

.btn a {
  display: inline-block;
  transform: skewX(59deg);
}
<div class="wrapper">
  <div class="btn btn-one">
    <a href="#">BTN ONE</a>
  </div>
  <div class="btn btn-two">
    <a href="#">BTN TWO</a>
  </div>
</div>

如果您将 display: block;display: inline-block; 添加到 a 标签,这将使其与 transform 属性 一起使用。因此,为了使用 transform: skew(-59deg),您必须将 display: block;display: inline-block; 添加到 a 标签

.btn {
    display: inline-block;
    padding: 10px 30px;
    margin: 5px;
    transform: skewX(-59deg);
    background-color: yellow;
}
.btn a {
    transform: skewX(59deg);
    display: inline-block;
}
<div class="wrapper">
  <div class="btn btn-one">
        <a href="#">BTN ONE</a>
  </div>
  <div class="btn btn-two">
        <a href="#">BTN TWO</a>
  </div>
</div>