Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Blurry text in Internet Explorer

On my website I have noticed that there is a substantial difference in text quality between Firefox, Chrome, and Internet Explorer. While the text is crystal clear in Chrome, and even more so in Firefox, it seems blurred and out-of-focus in Internet explorer. Here is a picture comparison:

Screenshot comparison of Firefox and IE

Personally I think it is not aesthetically pleasing to the eye. I would like to find a solution without asking users to use plugins like Microsoft Silverlight, as not all users will want to install a plugin just to view 1 website. I don't understand how websites like Facebook and StackOverflow don't have this problem (or at least less of a problem).

I've tried using CSS filters, different font-rendering properties, and using different units for font-size, but I'm seeing no effect. I know I haven't tried all possible CSS property combinations so this could still be the answer.

I've been scouring the web and StackOverflow for hours now, and have yet to find a solution. There are other similar questions here but they remain unanswered.

Any help, or idea of where to go or what to do, is very much welcomed. Run this Snippet in different browsers if you can't see the image or website:

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>

Strangely, the Snippet looks similar in different browsers: but looking carefully there are definite differences though. Chrome (Version 44.0.2403.125 m) seems to have a sharp edge effect. IE (11) seems to have a slight blur. Whereas Firefox (38.0.1), as explained by @user4749485, seems to have selected the best of both worlds to achieve the best legibility. Is there a way to manually calculate and adjust the font for IE only? (Another possible method to fix it.)

I'm not sure where the rest blur is coming from (the Snippet's text seems clearer here, than the text on my website). If we can uncover where this difference comes from then perhaps this will be easier to solve. (I have been adding/removing CSS to the Snippet so forgive all the edits)

TL:DR, and just to elaborate the question: I would like the text to look clear in IE like it does in Firefox or Chrome.


Comparison for Sergey Denisov's answer:

Chrome and IE before and after picture comparison While I could use Srikanth Pullela's answer to apply this CSS transform to IE only, I am curious as to whether there is an all browser fix. Edit: I'll use method mentioned above as the proposed fix causes this to happen meaning I can't rely on GPU rendering to render it correctly:

Bugged look of the popup

like image 733
jaunt Avatar asked Jul 26 '15 15:07

jaunt


People also ask

Why is my Internet Explorer blurry?

Related. If you are using an older version of Internet Explorer in your company, you may experience blurry graphics in Web pages. This is due to Clear Type, a feature which is activated by default in Internet Explorer 8 and earlier versions.

Why does my screen text look blurry?

Adjusting screen resolution on a monitor corrects fuzzy text appearance. Fuzzy text on a monitor is normally a sign the display settings are not set correctly. Adjusting the monitor's resolution, which determines the clarity of text and images displayed on the screen will often correct this problem.


2 Answers

The only thing I suggest is to use the code below and write separate CSS, so when opened in IE it will take that css only.

This will target only earlier versions of IE8:

 <!--[if lt IE 8]> <link href="./Content/ie7.css" rel="stylesheet" />   <![endif]--> 

If you want to target all IE versions, use this:

<!--[if IE]> <link rel="stylesheet" type="text/css" href="all-ie-only.css" /> 

like image 64
Srikanth Pullela Avatar answered Sep 20 '22 22:09

Srikanth Pullela


Did you try to add translateZ(0) for your popup? In your case it could be:

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

In IE11 on Windows 8.1 the font looks better: Popup with translateZ(0) hack

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. Added -webkit-filter: blur(0) to fix blurring text in Chrome 44 on Windows 7/8.1 from this post.

like image 39
sergdenisov Avatar answered Sep 22 '22 22:09

sergdenisov