>我用CSS类为我的网站创建了一个按钮,我希望它有一个平行四边形的形状,所以我使用了倾斜函数来创建形状。代码是正确的,按钮具有我想要的形状,但按钮内的文本在换行后也出现了偏差。有一种方法可以使文本看起来不像我的按钮内的斜塔?这是 html 代码:
<input type="submit" alt="submit" value="Login" class="button">
这就是按钮类的 CSS:
.button {
float: top;
width: 275px;
height: 40px;
margin-top: 6px;
display: inline-block;
font-family: Impact;
text-align: center;
-webkit-transform: skewX(20deg);
-moz-transform: skewX(20deg);
-o-transform: skewX(20deg);
transform: skewX(20deg);
}
部分借调 Sidharth,我认为您不会绕过包装器元素来应用 CSS 转换,然后为其子元素(提交输入)重置它:
<div class="button-wrapper">
<input type="submit" alt="submit" value="Login">
</div>
Sidharth 的回答意味着你完全隐藏了原始<input>
,并依靠 JavaScript 在单击样式包装器时触发对它的点击,但这里有一个简单的解决方法:在:hover
上设置button-wrapper
样式,并从嵌套的 <input>
-元素中删除所有样式并使其 100% 宽(jsBin 示例):
.button-wrapper {
background: #fff;
border: 1px solid #bbb;
border-color: #ddd #ccc #bbb;
overflow: hidden;
-webkit-transform: skewX(20deg);
-moz-transform: skewX(20deg);
-o-transform: skewX(20deg);
transform: skewX(20deg);
}
.button-wrapper:hover {
background: #efe;
border-color: #090;
}
.button-wrapper input {
background: transparent;
border: 0;
cursor: pointer;
font-size: 20px;
font-weight: bold;
padding: 4px 0;
margin: 0;
width: 100%;
-webkit-transform: skewX(-20deg);
-moz-transform: skewX(-20deg);
-o-transform: skewX(-20deg);
transform: skewX(-20deg);
}
.button-wrapper input:hover {
color: #060;
}
几年过去了,但我刚刚遇到了同样的问题,发现简单地在文本上进行反向倾斜解决了我的问题,在我的代码中如下:
.yellowShape {
background-color: rgba(244,255,88,0.92);
padding: 3px;
-webkit-transform: skew(20deg);
transform: skew(20deg);
}
.yellowShape p {
-webkit-transform: skew(-20deg);
transform: skew(-20deg);
}
为"按钮"创建一个包装器,并将文本放入其中。但是,如果单击文本,则需要使用 javascript 来触发按钮上的"单击",否则它不会"传播"到按钮。