webkit浏览器中的CSS转换填充故障

use*_*457 7 css webkit google-chrome css3 css-transitions

当我在css过渡中使用填充时,webkit浏览器(safari osx,Chrome osx和Chrome窗口)在每个过渡的开始和结束时都会有一点小故障,导致在动画元素之后放置1px元素.

http://jsfiddle.net/QG4QV/19/

HTML

test test test <span class="test">Hover me</span> test test test test
Run Code Online (Sandbox Code Playgroud)

CSS

.test{
  color:#FFF;
  background:#000;
  padding:4px 4px 4px 30px;
  transition: padding 0.5s linear;
}

.test:hover{
  padding:4px 30px 4px 4px;
}
Run Code Online (Sandbox Code Playgroud)

我搜索并尝试了各种解决方案,但没有解决这个例子的问题?! CSS过渡故障 CSS过渡效果使图像模糊/移动图像1px,在Chrome?

(示例填写了可能的解决方案:http://jsfiddle.net/QG4QV/18/,但没有任何作用)

and*_*dyb 5

我不知道是否有另一个故障的解释.我猜想填充值的动画在转换过程中会导致舍入不一致,这会影响.test元素的整体宽度.

我发现以下CSS在Chrome33中为我修复了它.

test {
    display:inline-block;
}
Run Code Online (Sandbox Code Playgroud)

演示

编辑:那么看在元素的Chrome DevTools,没有display:inline-block"悬停我"文本本身就具有width=autoheight=auto计算样式.

随着inline-block文本的计算风格width=60height=20.我认为正是这种计算风格阻止了过渡故障.