在我的网站上,我注意到Firefox,Chrome和Internet Explorer之间的文本质量存在很大差异。尽管Chrome中的文字清晰明了,而Firefox中的文字更清晰明了,但Internet Explorer中的文字似乎模糊不清。这是图片比较:

html - Internet Explorer中的文字模糊-LMLPHP

我个人认为这在美学上并不令人满意。我想找到一种不要求用户使用Microsoft Silverlight之类的插件的解决方案,因为并非所有用户都希望安装插件只是为了查看1个网站。我不了解Facebook和StackOverflow之类的网站如何不会出现此问题(或至少没有问题)。

我尝试过使用CSS过滤器,不同的字体呈现属性以及对字体大小使用不同的单位,但是我没有看到任何效果。我知道我还没有尝试所有可能的CSS属性组合,所以这仍然可能是答案。

我一直在搜索Web和StackOverflow数小时,但尚未找到解决方案。这里还有其他类似的问题,但仍未得到解答。

我们非常欢迎您提供任何帮助或关于去哪里或做什么的想法。如果看不到图片或网站,请在不同的浏览器中运行此代码段:

html,body{
  margin:0;
  height:100%;
  font: normal 14px/24px "Lucida Sans Unicode","Lucida Grande", "Arial", sans-serif;
}
.popup{
  position:relative;
  top:50%;
  left:50%;
  text-align: center;
  vertical-align: middle;
  display: inline-block;
  white-space: nowrap;
  background-color:rgb(28, 31, 37);
  color:white;
  padding:1em;
  z-index:2;
  transform: translate(-50%,-50%);

  -webkit-box-shadow: 0px 0px 14px -2px rgba(0,0,0,0.75);
  -moz-box-shadow: 0px 0px 14px -2px rgba(0,0,0,0.75);
  box-shadow: 0px 0px 14px -2px rgba(0,0,0,0.75);
}
p{
  font-size: small;
}
input{
  padding: 16px 12px;
  width: 250px;
  border: 0;
  background: #0A0A0A;
  color: #eee;
  font-size: 14px;
  font-family: "Open Sans",sans-serif;
  -webkit-box-shadow: inset 0 0 0 1px #323742;
  -moz-box-shadow: inset 0 0 0 1px #323742;
  box-shadow: inset 0 0 0 1px #323742;
}
#blackout {
  background: rgba(17,19,23,.5);
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  cursor: pointer;
}
<div id="blackout"></div>
<div class="popup">
  <h1>Compare this text</h1>
  <p>And this text as well</p>
  <input type="text" placeholder="Even placeholders are blurry">
</div>


奇怪的是,该片段在不同的浏览器中看起来很相似:但是仔细看,仍然存在一定的差异。 Chrome (版本44.0.2403.125 m)似乎具有明显的边缘效果。 IE(11)似乎略有模糊。而@ user4749485解释的Firefox(38.0.1)似乎已经选择了两全其美的方式来实现最佳易读性。有没有一种方法可以仅手动为IE计算和调整字体? (另一种可能的修复方法。)

我不确定其余的模糊来自哪里(与我网站上的文字相比,此处的摘录文字看起来更清晰)。如果我们能够发现差异的根源,那么可能会更容易解决。 (我一直在向代码段添加/删除CSS,因此请原谅所有修改)

TL:DR,仅说明问题:我希望IE中的文本看起来像Firefox或Chrome中一样。

Sergey Denisov的答案比较:

html - Internet Explorer中的文字模糊-LMLPHP
虽然我可以使用Srikanth Pullela的答案仅将此CSS转换应用于IE,但我对是否存在所有浏览器修复感到好奇。
编辑:我将使用上述方法,因为建议的修复会导致这种情况发生,这意味着我不能依靠GPU渲染来正确渲染它:

html - Internet Explorer中的文字模糊-LMLPHP

最佳答案

您是否尝试为弹出窗口添加translateZ(0)?在您的情况下,可能是:

.popup {
    ...
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);
    ...
}

在Windows 8.1的IE11中,字体看起来更好:
html - Internet Explorer中的文字模糊-LMLPHP

html, body {
    margin: 0;
    height: 100%;
    font: normal 14px/24px "Lucida Sans Unicode", "Lucida Grande", "Arial", sans-serif;
}

.popup {
    position: relative;
    top: 50%;
    left: 50%;
    text-align: center;
    vertical-align: middle;
    display: inline-block;
    white-space: nowrap;
    background-color: rgb(28, 31, 37);
    color: white;
    padding: 1em;
    z-index: 2;

    -webkit-filter: blur(0);
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);

    -webkit-box-shadow: 0px 0px 14px -2px rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0px 0px 14px -2px rgba(0, 0, 0, 0.75);
    box-shadow: 0px 0px 14px -2px rgba(0, 0, 0, 0.75);
}

p {
    font-size: small;
}

input {
    padding: 16px 12px;
    width: 250px;
    border: 0;
    background: #0A0A0A;
    color: #eee;
    font-size: 14px;
    font-family: "Open Sans", sans-serif;

    -webkit-box-shadow: inset 0 0 0 1px #323742;
    -moz-box-shadow: inset 0 0 0 1px #323742;
    box-shadow: inset 0 0 0 1px #323742;
}

#blackout {
    background: rgba(17, 19, 23, 0.5);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    cursor: pointer;
}
<div id="blackout"></div>
<div class="popup">
    <h1>Compare this text</h1>
    <p>And this text as well</p>
    <input type="text" placeholder="Even placeholders are blurry">
</div>


P.S. 添加了-webkit-filter: blur(0)以修复this post在Windows 7 / 8.1的Chrome 44中模糊的文本。

关于html - Internet Explorer中的文字模糊,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31638488/

10-13 01:42