Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IE8 e suas peripécias

IE8 e suas peripécias

Feliz é aquele que não precisa dar suporte ao IE, mais ainda aquele que nem ouviu falar do IE8. Mas nem todos possuem essa sorte e vivem no inferno do IE8. Para esses, vamos ligar o ar condicionado e ajudar prever e solucionar alguns problemas comuns.

* Rápido review de CSS que não funciona no IE8.
* Rápido review de JS que não funciona no IE8.
* Pseudo elementos no IE8.
* Checkbox e Label no IE8.
* IE8 e responsividade(simples, não tem, maas tome cuidado com as media queries).

Avatar for Ulisses Almeida

Ulisses Almeida

April 29, 2014
Tweet

More Decks by Ulisses Almeida

Other Decks in Programming

Transcript

  1. Fatos da Wikipedia • Nascido em dia 19 de Março

    2009 • Primeira versão passar no Acid2 • A maior versão que funciona no Windows XP • Pode existir no XP, Server 2003, Vista, Server 2008, 7.
  2. CSS :( • gradients • animations • media queries! •

    rgb(), hsl(), rgba(), hsla() • pointer-events • text-shadow • ttf/otf fonts! • calc() • multiple backgrounds • svg in backgrounds • box-shadow • border-radius • transforms • nth- child(), :last- child, :first-of- type • opacity caniuse.com
  3. JS :( • web sockets • file api! • web

    workers • XMLHttpRequest 2 • matches e queries DOM • geolocation • getComputedStyle • Cross-Origin Resource Sharing • Cross-document messaging (only frames e frames) • bind caniuse.com
  4. HTML5 :( • Sério, quase nada funciona. • Do pouco

    que funciona:! • data-* attributes • contenteditable attribute • Hashchange event (url#foo -> url#bar) caniuse.com
  5. Media queries //default .super-cool-class { display: block; background-color: red; }

    ! @media @desktop { .super-cool-class { font-size: 42px; width: 600px; } } ! @media @tablet { .super-cool-class { color: green; } } ! @media @phone { .super-cool-class { font-size: 16px; color: green; } }
  6. Media queries .super-cool-class { display: block; background-color: red; font-size: 42px;

    width: 600px; } ! @media @desktop { .super-cool-class { font-size: 42px; width: 600px; } } ! @media @tablet { .super-cool-class { color: green; width: 100%; font-size: inherit; } } ! @media @phone { .super-cool-class { font-size: 16px; color: green; width: 100%; }
  7. Vamos fazer o trabalho dele então :muscle: // if ie8

    var handler = function(e) { e.preventDefault(); e.stopPropagation(); ! var checkbox = $(e.target).closest('label').find('.checkbox'); ! checkbox.click(); }; ! $('span').on('click', handler); $('.image-wrapper').on('click', handler);
  8. Hora de botar o bicho .image-wrapper:after { content: ''; display:

    block; background-image: url('product-add-icon.png'); height: 20px; width: 20px; } ! label:hover .image-wrapper:after { background-image: url('product-add-icon-hover.png'); }
  9. Contorno técnico label:hover .image-wrapper:after { content: 'bilubilu'; background-image: url('product-add-icon-hover.png'); !

    /* Image replacement things */ text-indent: 100%; white-space: nowrap; overflow: hidden; }
  10. Solução • z-index negativo (no way!!!) • Ou simplesmente: <div

    class='image-wrapper'> <img class='image' src='justin.jpg' width="300" /> <span class='marker'></span> </div> • e joga fora toda aquele código de pseudo elemento