我正在寻找一种简单的方法,只需要一个标签(只有
我知道可以使用内部或外部的标签来实现,但我不想在页面上添加额外的、几乎没有意义的HTML。
以下是示例:
<a>
)就可以在边框上创建倾斜效果,但保持文本不变。我知道可以使用内部或外部的标签来实现,但我不想在页面上添加额外的、几乎没有意义的HTML。
以下是示例:
<a>
)就可以在边框上创建倾斜效果,但保持文本不变。<div class="btn">
<button><div class="btn-text">Click</div></button>
</div>
20deg
,那么我们应该将子元素倾斜 -20deg
,如下所示:.btn {
-ms-transform: skewX(20deg); /* IE 9 */
-webkit-transform: skewX(20deg); /* Safari */
transform: skewX(20deg);
}
.btn-text {
-ms-transform: skewX(-20deg); /* IE 9 */
-webkit-transform: skewX(-20deg); /* Safari */
transform: skewX(-20deg);
padding: 20px;
}
.skewed_button {
background: #32CD32;
color: #000;
text-decoration: none;
font-size: 20px;
display: inline-block;
height: 30px;
margin-left: 15px;
padding: 6px 10px 0;
}
.skewed_button::before {
content: "";
float: left;
margin: -6px 0 0 -25px;
border-left: 15px solid transparent;
border-bottom: 36px solid #32CD32;
height: 0px;
}
.skewed_button::after {
content: "";
float: right;
margin: -6px -25px 0 0 ;
border-left: 15px solid #32CD32;
border-bottom: 36px solid transparent;
height: 0px;
}
<a href="#some_url" class="skewed_button">Some Text</a>
clip-path: polygon(14px 0%,100% 0%,calc(100% - 14px)100%,0% 100%);
.skewed_button {
background: yellow;
text-decoration: none;
display: inline-block;
padding: 10px 20px;
clip-path: polygon(14px 0%, 100% 0%, calc(100% - 14px) 100%, 0% 100%);
}
<a href="" class="skewed_button">Some Text</a>
:before
和 :after
上使用 CSS 三角形。这种解决方案可以保持最干净的 HTML。
这个 jsfiddle 示例演示了该方法。
.is-skewed {
width: 80px;
height: 40px;
background-color: #f07;
display: block;
color: #fff;
margin-left: 40px;
}
.is-skewed:before,
.is-skewed:after {
content: '';
width: 0;
height: 0;
}
.is-skewed:before {
border-bottom: 40px solid #f07;
border-left: 20px solid transparent;
float:left;
margin-left: -20px;
}
.is-skewed:after {
border-top: 40px solid #f07;
border-right: 20px solid transparent;
float:right;
margin-right: -20px;
}
:hover
状态。.is-skewed:hover {
background-color: #40f;
}
.is-skewed:hover:after {
border-top-color: #40f;
}
.is-skewed:hover:before {
border-bottom-color: #40f;
}
background-color
和border-color
,并且在所有相关选择器中:hover
首先出现。如果鼠标悬停在第二个位置,将会发生什么。
<a class='skew-outer'><span class='skew-inner' ...
- Toni Leigh