.myButton {
float: right;
border-top: 40px solid pink;
border-left: 40px solid transparent;
border-right: 0px solid transparent;
width: 25%;
}

<div class="myButton">
Submit
</div>
&#13;
以上是我的代码。正如您所看到的,我想设计一个如下图所示的形状,但我希望单词Submit
位于中心,但它会被向下推。
有人知道解决方案吗?
答案 0 :(得分:5)
您可以使用linear-gradient
背景。 Techique基于设置固定高度,然后应用padding
等于height
乘以√2
:
.my-button {
border: 0;
height: 40px;
background: linear-gradient(45deg, transparent 40px, pink 40px);
padding-left: 56.5691px; /* 40 × √2 ≈ 56.5691 */
}
&#13;
<button class="my-button">Submit</button>
&#13;
你也可以通过绝对位置伪元素来实现这个目的:
.my-button {
background-color: pink;
position: relative;
height: 40px;
margin-left: 40px;
border: 0;
}
.my-button:after {
content: "";
position: absolute;
top: 0;
left: 0;
/* Move pseudoelement to the left to 100% of its width */
transform: translateX(-100%);
border-top: 40px solid pink;
border-left: 40px solid transparent;
border-right: 0px solid transparent;
}
&#13;
<button class="my-button">Submit</button>
&#13;
答案 1 :(得分:0)
你所拥有的问题是你使用的是顶部边框而不是背景,所以你的文字自然不会看起来像你的形状的中心。您可以做的是使用定位在形状内手动移动文本:
.myButton {
float: right;
border-top: 40px solid pink;
border-left: 40px solid transparent;
border-right: 0px solid transparent;
width: 25%;
position: relative;
}
.inner {
position: absolute;
top: -30px;
left: 40px;
}
&#13;
<div class="myButton">
<div class="inner">Submit</div>
</div>
&#13;