IE 11 sub-pixel 渲染溢出
IE 11 sub-pixel rendering overflow
在 Internet Explorer 11 上,我遇到 sub-pixel 渲染导致元素溢出的问题。
如您所见,在 IE11 上,仪表的红色部分似乎 "peeking" 超出了底部,而在其他 2 个主要浏览器 Chrome 和 FireFox 上似乎没有问题。
如果我们放大 IE 中的问题,我们可以看到发生了什么:
它似乎在遮罩上渲染 sub-pixel。
header "Temperature" 呈现为高度为 34.5px 的元素,导致其下方的所有元素向下移动 .5px,从而导致此问题。
仪表盘是这样建立的:JSFiddle
<div id="temperature-gauge" class="gauge-control" data-percentage="0">
<div class="header">Temperature</div>
<div class="gauge-elements">
<div class="gauge">
<div class="inner"></div>
<div class="spinner temp"></div>
</div>
<div class="pointer"></div>
<div class="pointer-knob"></div>
</div>
<div class="indicator">60° C</div>
</div>
除了给 header 一个静态高度之外,还有什么办法可以解决这个问题,以确保下面的所有元素都在 full-pixel 上吗?
我建议尝试将 line-height
设置为与元素的 font-size
相同,并确保它们都是整数且以像素为单位。也可以尝试使用 pt
而不是使用 px
设置字体大小,看看是否有帮助。
这是我认为最好的方法。我们可以 避免 both IE 错误,方法是将仪表的 3 种颜色组合成一个 div,然后转换整个事物。 demo(针头还是分开的)。它也比您原来的方式更简单。
在 Internet Explorer 11 上,我遇到 sub-pixel 渲染导致元素溢出的问题。
如您所见,在 IE11 上,仪表的红色部分似乎 "peeking" 超出了底部,而在其他 2 个主要浏览器 Chrome 和 FireFox 上似乎没有问题。
如果我们放大 IE 中的问题,我们可以看到发生了什么:
它似乎在遮罩上渲染 sub-pixel。
header "Temperature" 呈现为高度为 34.5px 的元素,导致其下方的所有元素向下移动 .5px,从而导致此问题。
仪表盘是这样建立的:JSFiddle
<div id="temperature-gauge" class="gauge-control" data-percentage="0">
<div class="header">Temperature</div>
<div class="gauge-elements">
<div class="gauge">
<div class="inner"></div>
<div class="spinner temp"></div>
</div>
<div class="pointer"></div>
<div class="pointer-knob"></div>
</div>
<div class="indicator">60° C</div>
</div>
除了给 header 一个静态高度之外,还有什么办法可以解决这个问题,以确保下面的所有元素都在 full-pixel 上吗?
我建议尝试将 line-height
设置为与元素的 font-size
相同,并确保它们都是整数且以像素为单位。也可以尝试使用 pt
而不是使用 px
设置字体大小,看看是否有帮助。
这是我认为最好的方法。我们可以 避免 both IE 错误,方法是将仪表的 3 种颜色组合成一个 div,然后转换整个事物。 demo(针头还是分开的)。它也比您原来的方式更简单。