【发布时间】:2016-11-09 09:59:28
【问题描述】:
我目前正在建立一个网站,但遇到了transform: scale 的问题。我有一个按钮,当用户将鼠标悬停在它上面时,会发生两件事:
- 背景“扫过”对角线
- 按钮标签颜色改变
- 按钮略微增大
我已经完成了这项工作,它看起来非常不错,但是在实施第 3 点之后,当按钮变大时,我看到左侧有一个奇怪的间隙。
这是我的代码:click for demo
HTML
<a href="#" class="button">Hover</a>
CSS
body {
text-align: center;
padding-top: 10%;
}
.button {
display: inline-block;
text-transform: uppercase;
font-size: 1.1em;
font-weight: 600;
background: transparent;
transition: all ease .25s;
border: 3px solid green;
color: green;
position: relative;
overflow: hidden;
z-index: 2;
font-family: sans-serif;
padding: 20px 35px;
text-decoration: none;
}
.button:before {
content: ' ';
transition: all ease-out .25s;
width: 200%;
height: 100%;
position: absolute;
top: 0;
left: 0;
transform-origin: 0 0;
z-index: -1;
transform: skewX(-45deg) translateX(-100%);
background: green;
}
.button:hover:before {
transform: translateX(0);
}
.button:hover {
color: white;
transform: scale(1.1);
}
这是我看到的差距的屏幕截图。这个问题出现在 Chrome 和 Safari 中(我没有测试过 Firefox 或 IE,因为我无法在工作中下载它们)。
【问题讨论】: