【发布时间】:2016-11-07 21:00:27
【问题描述】:
我正在尝试将一个元素固定在页面的右侧,使用 transform rotate CSS 属性将其旋转 90 度,然后在悬停时我希望元素使用缓慢的过渡向左滑出。但是,当我在 Chrome 中尝试对此进行基本实现时,会出现难看的振动顶部边框。
该问题似乎仅在元素中输入文本时发生,并且仅在使用该文本动态调整元素大小时发生。这让我相信 transform 属性在悬停过渡期间上下舍入一个像素,导致元素在轻松过渡期间不规则地调整大小。
我可以通过在元素上设置固定宽度来解决此问题,但在这种情况下固定元素的宽度不是可接受的解决方案,因为文本可以在此固定元素内变化。
有没有人有预防或解决此问题的想法?谢谢!
HTML
<a id="right_fixed_element">
Fixed Side Button
</a>
CSS
#right_fixed_element {
/* vibrating border bug goes away with fixed width */
/* width: 150px; */
position: fixed;
top: 40%;
right: 0;
padding: 10px;
color: white;
background-color: red;
border: 1px solid #777;
transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
transition: all .5s ease;
-moz-transition: all .5s ease;
-webkit-transition: all .5s ease;
-o-transition: all .5s ease;
-webkit-backface-visibility: hidden;
-webkit-transform: rotate(-90deg) translateZ(0) scale(1.0, 1.0);
}
#right_fixed_element:hover {
right: 10px;
}
【问题讨论】: