2

我已经为我的网站创建了一个带有 CSS 类的按钮,并且我希望它具有平行四边形形状,因此我使用了 skew 函数来创建形状。代码是正确的,按钮具有我想要的形状,但按钮内的文本在其换行后也出现了倾斜。有一种方法可以使文本看起来不像按钮内的斜塔?这是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);
}
4

3 回答 3

4

部分支持 Sidharth,我认为您不会绕过包装元素来应用 CSS 转换,然后为其子元素(提交输入)重置它:

<div class="button-wrapper">
  <input type="submit" alt="submit" value="Login">
</div>

Sidharth 的回答意味着您完全隐藏原始<input>文件并在单击样式包装器时依赖 JavaScript 来触发对其的单击,但这里有一个简单的解决方法:设置样式并从嵌套元素中删除所有样式并将button-wrapper其设为 100 % 宽(jsBin 示例)::hover<input>

.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;
}
于 2012-10-07T01:46:30.873 回答
1

我知道几年过去了,但我刚刚遇到了同样的问题,发现只需对文本进行反向倾斜就可以解决我的问题,如下所示:

.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); 
}
于 2014-07-16T03:08:40.833 回答
0

为“按钮”创建一个包装器并将文本放入其中。但是,如果单击文本,则需要使用 javascript 触发按钮上的“单击”,否则它不会“传播”到按钮。

于 2012-10-07T01:04:05.493 回答