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).

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