SlideShare uma empresa Scribd logo
Navegadores insuportados
IE 7–8 IE 9–10
IE 7
+/- 5,34% visitas
Com CSS Sem CSS
Can I use?
caniuse.com
• display: inline-block;
• opacity + PNG semi-transparente
• pseudo-classes
• seletores avançados
• pseudo-elementos
display: inline-block;
• Faz com que um elemento tenha propriedades
de block – largura e altura, por exemplo – mas
siga o fluxo do texto.
• Comportamento um pouco imprevisível.
• No IE 7 só funciona em elementos inline por
padrão. Exemplo: um <span> pode ser inline-
block mas um <div> não.
http://dabblet.com/gist/4234290
Opacity + PNG semi-transparente
• PNGs semi-transparentes funcionam bem no
Internet Explorer 7 e 8…
• …exceto quando se usa a propriedade opacity
ao mesmo tempo.
Correção:
.teste {
background:url(ie8-logo.png) 0 0 no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(
startColorstr=#00FFFFFF, endColorstr=#00FFFFFF
);
}
Obs: funcionamento ainda precisa ser confirmado.
Algumas pseudo-classes
• IE 7 aceita :hover em todos os elementos,
:active somente em links.
• IE 7 suporta :first-child mas não :last-child.
• :first-letter e :first-line funcionam tranquilo.
• :focus não funciona nos formulários do IE 7.
Seletores avançados
seletor [attr]
permite estilizar elementos além de IDs e
classes, usando qualquer atributo.
Exemplos: input[type=button],
a[href*="hotsite"], label[for=email]
Seletores avançados
seletor >
seleciona o elemento filho direto de um outro
elemento.
Exemplo: ul > li, div > p
Seletores avançados
(suportado pelo IE 8 com ressalvas)
seletor +
Seleciona apenas o elemento adjacente ao
primeiro elemento
Exemplo: label + input, p + ul
Seletores avançados
seletor ~
seleciona todos os próximos elementos irmãos
do primeiro
Exemplo: h2 ~ p, .destaque ~ div
:before / :after
• São pseudo-elementos.
• Usados para adicionar conteúdo á pagina
através da propriedade content: " ";
• Não suportado pelo IE 7.
• Obs: não devem comprometer o
funcionamento do site, se não suportados.
(DEBUG)
img:not([width]):not([height]),
img[alt=""], img:not([alt]) {
outline: 2px solid red;
}
a:not([title]) {
background: red;
color: white;
}
http://dabblet.com/gist/4278123
Mas primeiro…
Block
Formatting
Context
(ou, apenas, contexto)
Elementos que criam contextos
• Elemento raiz (<html>)
• Elementos com float diferente de none
• Elemento com overflow diferente de visible
• Elementos com position: absolute ou
position: fixed
• Elementos inline-block
• Células de tabela (display: table-cell)
• Título de tabela (display: table-caption)
Quando um elemento cria um novo
contexto, signfica que ele se torna
responsável pelos elementos dentro dele.
Ou seja, as margens e floats dos elementos
filhos passam a ser contidos corretamente.
E falando em Internet Explorer…
O IE possui uma propriedade similar aos
“contextos” chamada de hasLayout.
Uma forma trivial de ativar o hasLayout é
adicionar o já conhecido zoom: 1; ao CSS.
Enfim, floats…
• Usar com moderação
• “Limpar” floats
• Floats vs. inline-block
• Ordem de empilhamento
• Menus horizontais
Num futuro próximo…
Box model CSS:
largura real = width + border + padding
altura real = height + border + padding
Certo? E se definirmos um elemento como:
.box {
width: 500px;
border: 2px solid #ccc;
padding: 10px;
}
Qual será a largura total do elemento?
.teste {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
margin: 10px;
border: 1px solid #ccc;
}
IE 8+
Ah! Só mais uma coisa:
O código-fonte do projeto normalize.css pode
ajudar a entender melhor algumas das
diferenças de estilo nos navegadores.
/*
* Corrects list images handled incorrectly in IE 7.
*/
nav ul,
nav ol {
list-style: none;
list-style-image: none;
}
Perguntas?
Sugestões?
Partiu polezi?
Links e Referências
• http://www.quirksmode.org/css/contents.html
• http://caniuse.com/#cats=CSS
• http://www.satzansatz.de/cssd/onhavinglayout.html
• http://nicolasgallagher.com/micro-clearfix-hack/
• http://www.css-101.org/articles/floats/
• http://docs.webplataform.org/wiki/css/
• http://stackoverflow.com/a/6199172
• https://github.com/necolas/normalize.css/blob/v1/normalize.css
• http://www.iecss.com/

Mais conteúdo relacionado

Destaque

Agramunt
AgramuntAgramunt
Agramunt
avendre6
 
Paisajes naturales y agrarios
Paisajes naturales y agrariosPaisajes naturales y agrarios
Paisajes naturales y agrarios
Carmen Martínez
 
Apresentação do Curso Introdução à Educação Digital/ 60 Horas
Apresentação do Curso Introdução à Educação Digital/ 60 HorasApresentação do Curso Introdução à Educação Digital/ 60 Horas
Apresentação do Curso Introdução à Educação Digital/ 60 Horas
Norma Meneses de Almeida
 
O Que é Um Barcamp
O Que é Um BarcampO Que é Um Barcamp
O Que é Um Barcamp
Saulo Pratti
 
Projeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60hProjeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60h
Carminha
 
O que é o hagáquê
O que é o hagáquêO que é o hagáquê
O que é o hagáquê
Maria Madalena Pereira
 
Orientações para Criação do NTM - PROINFO
Orientações para Criação do NTM - PROINFOOrientações para Criação do NTM - PROINFO
Orientações para Criação do NTM - PROINFO
Robson Freire
 
Get up stand up (dailys são demais)
Get up stand up (dailys são demais)Get up stand up (dailys são demais)
Get up stand up (dailys são demais)
Saulo Pratti
 
Proinfo Introducao a Educacao Digital - 60f
Proinfo  Introducao a Educacao Digital - 60fProinfo  Introducao a Educacao Digital - 60f
Proinfo Introducao a Educacao Digital - 60f
tecampinasoeste
 
Oficina de produção de texto
Oficina de produção de textoOficina de produção de texto
Oficina de produção de texto
Elia Rejany
 

Destaque (11)

Agramunt
AgramuntAgramunt
Agramunt
 
Paisajes naturales y agrarios
Paisajes naturales y agrariosPaisajes naturales y agrarios
Paisajes naturales y agrarios
 
B-TREE PREPARED BY M V BRAHMANANDA REDDY
B-TREE PREPARED BY M V BRAHMANANDA REDDYB-TREE PREPARED BY M V BRAHMANANDA REDDY
B-TREE PREPARED BY M V BRAHMANANDA REDDY
 
Apresentação do Curso Introdução à Educação Digital/ 60 Horas
Apresentação do Curso Introdução à Educação Digital/ 60 HorasApresentação do Curso Introdução à Educação Digital/ 60 Horas
Apresentação do Curso Introdução à Educação Digital/ 60 Horas
 
O Que é Um Barcamp
O Que é Um BarcampO Que é Um Barcamp
O Que é Um Barcamp
 
Projeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60hProjeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60h
 
O que é o hagáquê
O que é o hagáquêO que é o hagáquê
O que é o hagáquê
 
Orientações para Criação do NTM - PROINFO
Orientações para Criação do NTM - PROINFOOrientações para Criação do NTM - PROINFO
Orientações para Criação do NTM - PROINFO
 
Get up stand up (dailys são demais)
Get up stand up (dailys são demais)Get up stand up (dailys são demais)
Get up stand up (dailys são demais)
 
Proinfo Introducao a Educacao Digital - 60f
Proinfo  Introducao a Educacao Digital - 60fProinfo  Introducao a Educacao Digital - 60f
Proinfo Introducao a Educacao Digital - 60f
 
Oficina de produção de texto
Oficina de produção de textoOficina de produção de texto
Oficina de produção de texto
 

Semelhante a Desenvolvimento CSS Cross-browser

Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
Carlos Rodrigo de Araujo
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
ScrumHalf Tool
 
Html 5 datainfo
Html 5   datainfoHtml 5   datainfo
Html 5 datainfo
Romário J. Santos
 
Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do Design
Iuri Andreazza
 
Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
Simples Consultoria
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
Miguel Alho
 
Curso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JSCurso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JS
Luis Gustavo Almeida
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
Diego Sana
 
CSS
CSSCSS
Ajax para quem_ouviu_falar
Ajax para quem_ouviu_falarAjax para quem_ouviu_falar
Ajax para quem_ouviu_falar
Charleston Anjos
 
Html5
Html5Html5
#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5
Leandro Santos
 
04 02 novos elementos
04 02 novos elementos04 02 novos elementos
04 02 novos elementos
Vasco Ferreira
 
Minicurso javascript
Minicurso javascriptMinicurso javascript
Minicurso javascript
Lucas Aquiles
 
Html5 em 15 minutos
Html5 em 15 minutosHtml5 em 15 minutos
Html5 em 15 minutos
José Willams
 
Play svg! Utilizando vetores na web
Play svg! Utilizando vetores na webPlay svg! Utilizando vetores na web
Play svg! Utilizando vetores na web
Willian Justen de Vasconcellos
 
jQuery mobile
jQuery mobilejQuery mobile
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
ScrumHalf Tool
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
Vanessa Me Tonini
 

Semelhante a Desenvolvimento CSS Cross-browser (20)

Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
 
Html 5 datainfo
Html 5   datainfoHtml 5   datainfo
Html 5 datainfo
 
Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do Design
 
Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Curso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JSCurso de HTML5 CSS3 e JS
Curso de HTML5 CSS3 e JS
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
CSS
CSSCSS
CSS
 
Ajax para quem_ouviu_falar
Ajax para quem_ouviu_falarAjax para quem_ouviu_falar
Ajax para quem_ouviu_falar
 
Html5
Html5Html5
Html5
 
#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5
 
04 02 novos elementos
04 02 novos elementos04 02 novos elementos
04 02 novos elementos
 
Minicurso javascript
Minicurso javascriptMinicurso javascript
Minicurso javascript
 
Html5 em 15 minutos
Html5 em 15 minutosHtml5 em 15 minutos
Html5 em 15 minutos
 
Play svg! Utilizando vetores na web
Play svg! Utilizando vetores na webPlay svg! Utilizando vetores na web
Play svg! Utilizando vetores na web
 
jQuery mobile
jQuery mobilejQuery mobile
jQuery mobile
 
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 

Mais de Saulo Pratti

Trajetos – itinerários de ônibus com pontos de referência
Trajetos – itinerários de ônibus com pontos de referênciaTrajetos – itinerários de ônibus com pontos de referência
Trajetos – itinerários de ônibus com pontos de referência
Saulo Pratti
 
Mobile Web: Aqui e Agora
Mobile Web: Aqui e AgoraMobile Web: Aqui e Agora
Mobile Web: Aqui e Agora
Saulo Pratti
 
Desenvolvimento mobile na Wine
Desenvolvimento mobile na WineDesenvolvimento mobile na Wine
Desenvolvimento mobile na Wine
Saulo Pratti
 
CSS com classe
CSS com classeCSS com classe
CSS com classe
Saulo Pratti
 
Localizador de Amigos
Localizador de AmigosLocalizador de Amigos
Localizador de Amigos
Saulo Pratti
 
A produção de sentidos sobre a imagem do corpo
A produção de sentidos sobre a imagem do corpoA produção de sentidos sobre a imagem do corpo
A produção de sentidos sobre a imagem do corpo
Saulo Pratti
 
Look Video Locadora
Look Video LocadoraLook Video Locadora
Look Video Locadora
Saulo Pratti
 

Mais de Saulo Pratti (7)

Trajetos – itinerários de ônibus com pontos de referência
Trajetos – itinerários de ônibus com pontos de referênciaTrajetos – itinerários de ônibus com pontos de referência
Trajetos – itinerários de ônibus com pontos de referência
 
Mobile Web: Aqui e Agora
Mobile Web: Aqui e AgoraMobile Web: Aqui e Agora
Mobile Web: Aqui e Agora
 
Desenvolvimento mobile na Wine
Desenvolvimento mobile na WineDesenvolvimento mobile na Wine
Desenvolvimento mobile na Wine
 
CSS com classe
CSS com classeCSS com classe
CSS com classe
 
Localizador de Amigos
Localizador de AmigosLocalizador de Amigos
Localizador de Amigos
 
A produção de sentidos sobre a imagem do corpo
A produção de sentidos sobre a imagem do corpoA produção de sentidos sobre a imagem do corpo
A produção de sentidos sobre a imagem do corpo
 
Look Video Locadora
Look Video LocadoraLook Video Locadora
Look Video Locadora
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (6)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

Desenvolvimento CSS Cross-browser

  • 1.
  • 2.
  • 3. Navegadores insuportados IE 7–8 IE 9–10 IE 7 +/- 5,34% visitas
  • 5. Can I use? caniuse.com • display: inline-block; • opacity + PNG semi-transparente • pseudo-classes • seletores avançados • pseudo-elementos
  • 6. display: inline-block; • Faz com que um elemento tenha propriedades de block – largura e altura, por exemplo – mas siga o fluxo do texto. • Comportamento um pouco imprevisível. • No IE 7 só funciona em elementos inline por padrão. Exemplo: um <span> pode ser inline- block mas um <div> não.
  • 8. Opacity + PNG semi-transparente • PNGs semi-transparentes funcionam bem no Internet Explorer 7 e 8… • …exceto quando se usa a propriedade opacity ao mesmo tempo.
  • 9. Correção: .teste { background:url(ie8-logo.png) 0 0 no-repeat; filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=#00FFFFFF, endColorstr=#00FFFFFF ); } Obs: funcionamento ainda precisa ser confirmado.
  • 10. Algumas pseudo-classes • IE 7 aceita :hover em todos os elementos, :active somente em links. • IE 7 suporta :first-child mas não :last-child. • :first-letter e :first-line funcionam tranquilo. • :focus não funciona nos formulários do IE 7.
  • 11. Seletores avançados seletor [attr] permite estilizar elementos além de IDs e classes, usando qualquer atributo. Exemplos: input[type=button], a[href*="hotsite"], label[for=email]
  • 12. Seletores avançados seletor > seleciona o elemento filho direto de um outro elemento. Exemplo: ul > li, div > p
  • 13. Seletores avançados (suportado pelo IE 8 com ressalvas) seletor + Seleciona apenas o elemento adjacente ao primeiro elemento Exemplo: label + input, p + ul
  • 14. Seletores avançados seletor ~ seleciona todos os próximos elementos irmãos do primeiro Exemplo: h2 ~ p, .destaque ~ div
  • 15. :before / :after • São pseudo-elementos. • Usados para adicionar conteúdo á pagina através da propriedade content: " "; • Não suportado pelo IE 7. • Obs: não devem comprometer o funcionamento do site, se não suportados.
  • 16. (DEBUG) img:not([width]):not([height]), img[alt=""], img:not([alt]) { outline: 2px solid red; } a:not([title]) { background: red; color: white; } http://dabblet.com/gist/4278123
  • 17.
  • 19. Elementos que criam contextos • Elemento raiz (<html>) • Elementos com float diferente de none • Elemento com overflow diferente de visible • Elementos com position: absolute ou position: fixed • Elementos inline-block • Células de tabela (display: table-cell) • Título de tabela (display: table-caption)
  • 20.
  • 21.
  • 22. Quando um elemento cria um novo contexto, signfica que ele se torna responsável pelos elementos dentro dele. Ou seja, as margens e floats dos elementos filhos passam a ser contidos corretamente.
  • 23. E falando em Internet Explorer… O IE possui uma propriedade similar aos “contextos” chamada de hasLayout. Uma forma trivial de ativar o hasLayout é adicionar o já conhecido zoom: 1; ao CSS.
  • 24. Enfim, floats… • Usar com moderação • “Limpar” floats • Floats vs. inline-block • Ordem de empilhamento • Menus horizontais
  • 25. Num futuro próximo… Box model CSS: largura real = width + border + padding altura real = height + border + padding Certo? E se definirmos um elemento como: .box { width: 500px; border: 2px solid #ccc; padding: 10px; } Qual será a largura total do elemento?
  • 26. .teste { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 100%; margin: 10px; border: 1px solid #ccc; } IE 8+
  • 27. Ah! Só mais uma coisa: O código-fonte do projeto normalize.css pode ajudar a entender melhor algumas das diferenças de estilo nos navegadores. /* * Corrects list images handled incorrectly in IE 7. */ nav ul, nav ol { list-style: none; list-style-image: none; }
  • 29. Links e Referências • http://www.quirksmode.org/css/contents.html • http://caniuse.com/#cats=CSS • http://www.satzansatz.de/cssd/onhavinglayout.html • http://nicolasgallagher.com/micro-clearfix-hack/ • http://www.css-101.org/articles/floats/ • http://docs.webplataform.org/wiki/css/ • http://stackoverflow.com/a/6199172 • https://github.com/necolas/normalize.css/blob/v1/normalize.css • http://www.iecss.com/