css中的变换是否会由于计算到半像素而导致模糊?

css中的变换是否会由于计算到半像素而导致模糊?,css,css-transforms,blurry,subpixel,Css,Css Transforms,Blurry,Subpixel,假设您使用此代码使元素垂直居中 .element { position: relative; top: 50%; transform: translateY(-50%); } (这个问题不是关于对齐的,所以请不要对对齐提出任何建议) 这会导致元素变得模糊吗 提到使用translate可以将元素定位为半像素值,从而在某些浏览器上造成模糊。浏览器是否仍在这样做,或者它们是否已被修补为不模糊?如果使用百分比作为参数进行转换,百分比是否可以计算为非整数像素值(从而允许模糊的可能性),或者是

假设您使用此代码使元素垂直居中

.element {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}
(这个问题不是关于对齐的,所以请不要对对齐提出任何建议)

这会导致元素变得模糊吗


提到使用translate可以将元素定位为半像素值,从而在某些浏览器上造成模糊。浏览器是否仍在这样做,或者它们是否已被修补为不模糊?如果使用百分比作为参数进行转换,百分比是否可以计算为非整数像素值(从而允许模糊的可能性),或者是否可以进行四舍五入?例如:如果使用66%,这会导致分数像素值吗?声称可以设置
变换样式:preserve-3d在元素的父元素上,以避免模糊,但评论中有人声称它对他不起作用。。它真的有效吗?

一个解决方案(不是最好的)是设置模糊:0。但也有一些边缘情况。

是的,浏览器仍然会这样做。在Chrome版本61.0.3163.100上存在此问题


变换样式:preserve-3d也无法解决此问题。我听说使用flexbox不会导致这个问题

浏览器只是其中的一部分。进行转换时,设备通常会硬件加速(缓存)元素。根据我的经验,这是造成这个模糊问题的最大原因。我甚至遇到过这样一种设备,当硬件加速时,它实际上会使样本下降;