• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Phear99

Discussão - O porquê das dores de cabeça...

69 mensagens neste tópico

CSS é motivo de muitas dores de cabeça para todos (acho que até o lendário JC arrancava os cabelos) os programadores que tentam construir páginas web universalmente compatíveis, i. e., em que o código CSS funciona na perfeição senão em todos, pelo menos nos maiores browsers (IE*, Firefox, Opera, Safari, Chrome, ...)

No entanto, isto não tem motivo de ser, pois a W3C (www.w3.org) criou standards muito precisos para as regras de estilização de páginas.

Ora, o que me intriga é, porque raio é que, existindo um e um só standard, cada um vai para seu lado e interpreta CSS como lhe dá na real gana??

O IE é o principal amigo das regras quebradas. Simples regras que em todos os browsers funcionam, no IE recusam-se a funcionar, ou pelo menos não o fazem sem que seja necessário um hack especial. O Firefox por seu lado, também tem, entre outras, a mania que as forms merecem uma margem inferior (apesar de isso ser muito fácil de ultrapassar). O Safari também é conhecido por ter uns episódios assim, apesar de não ter experiência com este. O Opera então não se fala; é muito certinho até que se lembre de nos "virar do avesso" ao mostrar uma página com um código que ele não goste. O Chrome, menino da Google e novato na corrida, é, ainda assim, na minha opinião, aquele que mais respeito tem pelos senhores do W3C.

Partilhem ideias por favor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque o HTML e CSS são standards muito complexos, e porque a maioria das páginas tem código que não é válido, e cada browser interpreta como quer porque não existe forma standard de lidar com código inválido (o HTML 5 vai trazer melhorias em relação a isto).

Já agora, o IE6 é mau, mas isso é porque já é um browser muito antigo. Para altura em que saiu era um browser bastante decente. A Microsoft já lançou mais 2 versões do IE com compatibilidade melhorada, e também enviou uma carrada de testcases para o CSS (http://blogs.msdn.com/ie/archive/2009/01/27/microsoft-submits-thousands-more-css-2-1-tests-to-the-w3c.aspx).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas as questões de compatibilidade mais complicadas mantiveram-se do IE6 para o IE7 e agora para o IE8 (que é o que uso para testes). O IE continua a recusar grande parte dos standards do CSS 2.0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito antes antes do IE8 ser lançado, li uma notícia em que dizia que a MS ia passar a usar método de renderização das páginas semelhante ao que a maior parte dos browser actuais usavam, e que finalmente o problemas de compatibilidade do IE iriam desaparecer (pelo menos grande parte deles). Não sei se isto sempre se verificou ou não.

Não faço assim tantas páginas web quanto isso, mas devo confessar que nunca tive grande dores de cabeça. Por vezes tinha alguns problemas com os valores default que cada browser usa, mas bastava especificar os valores no CSS para resolver o problema. Mas a verdade é que nunca me preocupei muito IE... Se a página fosse mostrada correctamente no Firefox, Safari, e Opera, para mim era suficiente. Nunca me dei ao trabalho de tentar resolver os problemas com o IE (que também penso que só eram significativos no IE6).

Mas tal como o Triton disse, estamos a falar de standards bastante complexos, que certamente que têm situações omissas que fazem com que diferentes browsers actuem de modo diferente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quer o Firefox, quer o Opera, quer o Safari e o Chrome. Têm um rendering bastante bom no que toca ao respeito pelos standards, e apesar de usarem 3 motores de rendering diferentes, suportam os standards de forma bastante semelhante.

Já o ie é uma desgraça, suporta pouco e suporta mal. Tem melhorado! É um facto, mas ainda está bastante longe do nível dos outros. O ie 8 é uma melhoria significativa, mas ainda não está ao nível dos outros.

O ie 6 não é mau por ser antigo. É mau porque foi feito sem qualquer interesse em respeitar os standards. Porque com a market share que tinha a m$ podia fazer o que lhe aptecesse e éra isso que "toda a gente ia seguir", porque não só não podia dar-se ao luxo de não suportar o ie, como tendo um share de mais de 95% os outros nem valiam a pena o trabalho.

Foram apresentados e aceites como prova em tribunal vários memorandos internos da m$, nos quais se dizia que o desrespeito pelos standards e pela interoperatibilidade era propositado pois fazia com que devido à importância do ie, a experiência de utilização de browsers concorrentes parecesse degradada.

Eu utilizo CSS há vários anos para fazer coisas complexas e a minha opinião é que para além das razões que apresentei anteriormente, outras diferenças entre a implementação da m$ e o que os standards dizem, são delibradas. A m$ simplesmente achou que o standard, não tinha a forma correcta de fazer as coisas e fez da forma que achou melhor.

Mas tal como o Triton disse, estamos a falar de standards bastante complexos, que certamente que têm situações omissas que fazem com que diferentes browsers actuem de modo diferente.

Nem por isso!

Não sei se já leste os documentos de especificação... Eu já os tenho usado para tirar dúvidas. Acho que são bastante completos, têm explicações dos modelos utilizados, tutoriais, recomendações, requisitos, definições, referências, etc.... E é por isso que são tão extensos. Mas para além disso, os developers têm ainda a possibilidade de acompanhar e/ou participar no processo da criação dos standards, nos quais se debate extensivamente todos os aspectos pelo que o que não falta é documentação, referências e até testes. De forma geral as especificações são de muito boa qualidade. As suas insuficiências são mais ao nível das coisas que não prevê, porque ou não se chegou a acordo, ou então por ainda não serem coisas que faziam parte do estado da arte quando os documentos foram aprovados.

As diferenças entre os browsers que lideram, são menores e esbatem-se com o tempo. O que demonstra que o problema não está nos standards, está na falta de vontade em os cumprir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nem por isso!

Todos os vendors dos browsers dizem o contrário, mas tinhas de vir tu dizer o contrário (assumo que não tens qualquer experiência em implementar um browser de raiz).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Todos os vendors dos browsers dizem o contrário, mas tinhas de vir tu dizer o contrário (assumo que não tens qualquer experiência em implementar um browser de raiz).

Dizem? Onde?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dizem? Onde?

Google it. Além disso é o que a realidade demonstra. Se fosse uma tarefa trivial como tu fazes parecer, não tinhamos incompatibilidades entre browsers.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não costumo ter problemas com css cross-browser. A partir do momento que se conhece os browsers, versões e manhas de cada um, já se consegue construir páginas num browser e o resultado final ser igual em todos. Indirectamente a respeito do tema, até ajuda cada browser ter interpretações das mesmas regras css, pois evita um bocado que programadores que fazem do xhtml / css a sua vida de perderem para qualquer pessoa que se meta a isso com o objectivo de ganhar uns trocos. xhtml / css qualquer pessoa que se meta a isso minimamente faz um site ... claro que a qualidade nunca é a mesma de um profissional, mas cliente leigo toma qualquer coisa que lhe pareça coerente como trabalho profissional, quando desconhece o resto.

Em relação ao não seguimento na íntegra dos standards pelos browsers, não me parece que seja desleixo das empresas por detrás desses mesmos browsers .. É mais uma questão de marketing. Se a M$ por exemplo lança-se amanhã um site com regras suficientemente diferentes das "genéricas" que se encontram agora no activo, o que provavelmente aconteceria seria uma percentagem dos utilizadores do browser deles considerar mudar para a concorrência, simplesmente. Os users normais não querem saber de regras para nada, querem é ver as coisas bonitas e coerentes quando acedem a elas. Se entram num site e as coisas passaram a estar de forma diferente, e ao falarem entre si perceberem que o mal é do modo como lhes acedem (browser), começam a mudar. Tal como já foi dito acima também, tais standards levam tempo a sair, a existir concordância no seu uso ou a sequer serem postos na mesa de discussão, e as empresas por detrás dos browsers não podem esperar que uma organização decida o que se deve usar e como, e lançam as suas próprias interpretações dos mesmos casos ... Claro que podiam discutir entre si, essas empresas, sobre o que deveriam fazer nos mais variados casos, mas está também em jogo a reputação dessas empresas, a popularidade dos browsers, cotas de mercado, etc ... O IE por exemplo, sendo o browser mais usado estatisticamente, pode-se dar por enquanto ao luxo de manter a sua interpretação do markup / css, pois será o ponto de referência e comparação aos restantes browsers existentes.

Um conselho a quem tem problemas cross-browser com css : usem um "css reset", que limpe certas definições dos browsers para melhor compatibilidade, e façam testes, muitos testes :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um conselho a quem tem problemas cross-browser com css : usem um "css reset", que limpe certas definições dos browsers para melhor compatibilidade, e façam testes, muitos testes :)

Tragam-me aspirinas que isto é uma dor de cabeça... xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma dúvida, eu tenho testado algumas coisas que dão habitualmente erro no IE 6 e até 7, mas o IE 8 tem-se comportado bem com CSS, é o Internet Explorer que está a melhorar ou está apenas a acompanhar com atraso e outras soluções já dão erro ou vão dar no futuro?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma dúvida, eu tenho testado algumas coisas que dão habitualmente erro no IE 6 e até 7, mas o IE 8 tem-se comportado bem com CSS, é o Internet Explorer que está a melhorar ou está apenas a acompanhar com atraso e outras soluções já dão erro ou vão dar no futuro?

Eu diria que o IE está a acompanhar com atraso. A Microsoft considera-se demasiado importante para seguir as mesmas regras que toda a gente. Quanto à tua segunda questão, não percebi muito bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu diria que o IE está a acompanhar com atraso. A Microsoft considera-se demasiado importante para seguir as mesmas regras que toda a gente.

Não acho que seja esse o caso... Quando o IE estava na moda, o IE tinha que percentagem de utilização? Onde andava o Firefox? O Opera se calhar até já existia mas ninguém queria saber dele...

Quando o IE mandava no mercado ninguém queria saber dos standards para nada, "havia um browser" e que mais era preciso se não funcionar nesse mesmo browser?

Entretanto é que começaram a aparecer as alternativas, a Microsoft deixou de se preocupar com o browser pois fazia o que era necessário, até ao dia em que um grupo de pessoas se fartou da falta de inovação e do desenvolvimento inexistente do IE e virou o mercado de pernas par o ar, ou aos poucos o vão fazendo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu diria que o IE está a acompanhar com atraso. A Microsoft considera-se demasiado importante para seguir as mesmas regras que toda a gente. Quanto à tua segunda questão, não percebi muito bem.

Era só uma questão, basicamente estava a perguntar se o IE 8 já é comparável em termos de respeito pelas regras com o Firefox, por exemplo, ou apenas não dá os erros que me estão a dar em versões anteriores porque já corrigiram esses, mas futuramente irão aparecer outros com novas situações.

Ou seja, respeitam apenas o necessário para a actualidade ou já estão a entrar em conformidade?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não acho que seja esse o caso... Quando o IE estava na moda, o IE tinha que percentagem de utilização? Onde andava o Firefox? O Opera se calhar até já existia mas ninguém queria saber dele...

Eu uso o Opera desde os meus 13/14 anos, e digo-te porquê: desde que comecei a saber andar na net que descobri que tinha um buraco para ratos no lugar do browser ao utilizar o IE. Mudei para o Opera e só voltei a mudar quando chegou o Firefox. Duvido que tenha sido o único ;)

Quando o IE mandava no mercado ninguém queria saber dos standards para nada, "havia um browser" e que mais era preciso se não funcionar nesse mesmo browser?

Concordo, mas isso foi o que deixou o IE no meio da auto-estrada à espera de ser atropelado. Na informática, se parou, morreu.

Entretanto é que começaram a aparecer as alternativas, a Microsoft deixou de se preocupar com o browser pois fazia o que era necessário, até ao dia em que um grupo de pessoas se fartou da falta de inovação e do desenvolvimento inexistente do IE e virou o mercado de pernas par o ar, ou aos poucos o vão fazendo...

Na minha humilde opinião, não só virou como no caminho deu um valente arreal de porrada à MS. O boom do Firefox foi exponencial e ainda não conheço ninguém que alguma vez tenha usado o firefox que me tenha dito que preferia o IE.

Ou seja, respeitam apenas o necessário para a actualidade ou já estão a entrar em conformidade?

Quanto ao 7, eu diria que respeita apenas o necessário. Já o 8 espantou-me porque parece que pela primeira vez a MS lembrou-se que já alguém tinha inventado uma roda, e, ao contrário da deles, esta é mesmo redonda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não interessa se foste o único ou deixaste de ser, o que importa é que apenas foste um dos 5% que usava uma alternativa ao IE. Qual era o webdesigner que se ia preocupar em ter um site compatível com 5% da população que usa um browser diferente do IE? Era um completo desperdício de tempo na altura e sem haver necessidade para mudar, ninguém o ia fazer. Entretanto apareceu o Firefox e o IE deixou de ser tão popular e ai sim, a necessidade de seguir os standards veio à tona.

Isto só para justificar que acho errado acusar que a Microsoft se acha demasiado importante para seguir as mesmas regras que toda a gente. Quando "toda a gente" é praticamente a Microsoft, com que mais tem ela de se preocupar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Isto só para justificar que acho errado acusar que a Microsoft se acha demasiado importante para seguir as mesmas regras que toda a gente. Quando "toda a gente" é praticamente a Microsoft, com que mais tem ela de se preocupar?

O Phear99 devia ter referido regras da W3C e não regras de toda a gente. Já agora, convém não esquecer o browser mais usado já foi o Netscape. Por isso, já há muitos anos que se justifica a existência de regras universais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vai dar ao mesmo, "toda a gente" ou "da "W3C"... Pode ter sido o mais usado em tempos, mas quanto tempo é que isso durou? Qual era o impacto que a Internet tinha na vida da sociedade nessa altura para que valesse a pena alguém preocupar-se com isso na altura? Pouca gente usava à Internet, dessa pouca gente, 95% usava o IE.

Atenção que não estou a dizer que acho correcto, mas na altura não havia ninguém para competir com a Microsoft e não havia necessidade e se estarem a chatear com isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

De acordo com estatísticas que vi, entre 1994 e 1999, o IE não controlava 95% do mercado. Antes de 2000, nem sequer aos 80% deve ter chegado, e durante a maior parte desse tempo, esteve abaixo dos 50%. Pouco tempo depois, começou o crescimento do Firefox, e de acordo com várias estatísticas, em 2005 o IE já estava abaixo dos 90%. Por isso, se calhar o domínio do Netscape não foi assim tão insignificante, nem os 95% do IE duraram assim tanto tempo.

Mas a partir do momento em que não há só um browser que domine o mercado, faz sentido que se criem standards, que todos os browsers devem seguir. Ou seja, se a competição entre browsers só tivesse começado agora, e se só agora é que começassem a haver standards, até podia aceitar os teus argumentos. Mas tendo em conta que já houve um período de tempo significativo em que houve concorrência a sério, e que já nessa altura houve necessidade dos standards, não concordo muito que se diga que só agora é que a MS tem de cumprir os standards. De referir ainda que o HTML 4 e o CSS 2 chegaram a recomendação da W3C numa altura em que o Netscape tinha mais de 50% do mercado.

Resumindo, esta coisa dos standards não é assim tão recente quanto isso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A primeira versão do Firefox só foi lançada em 2004 e até lá, o IE sempre dominou o mercado. A quota de mercado do Netscape, a meu ver, sempre foi demasiado insignificante.

E depois, eu nunca disse que "só agora é que a Microsoft tem de cumprir os standards", aliás, eu nunca levantei a esse ponto. Mas já que tu levantaste, eu faço o meu comentário... A Microsoft deveria ter comprido SEMPRE os standards, seja ela a dominar o mercado ou não, por mais insignificante que a concorrência seja, deveria haver sempre standards. Mas em tudo, não é só nos browsers.

Eu falei numa questão de "preocupação" e no sentido de a Microsoft pensar que manda em tudo e em todos que era essa a mensagem que estava a pensar. Eu só acho esse pensamento errado. Eles simplesmente não estavam preocupados nem havia grandes razões para se preocuparem (apenas numa estão moral e ética, mas eu não estou a entrar por aí, mas por aí, já dei a minha opinião no paragrafo anterior) quando a concorrência era pouca.

De qualquer maneira, acho que já nos estamos a desviar um pouco do tópico e eu já não tenho mais nada a adiantar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo bem, mas os meus outros argumentos continuam válidos porque nessa altura os sites pouco mais eram que umas simples páginas de texto. Os problemas que existem hoje com os standards, não os estou a ver a existir em 1998 e a provocar as dores de cabeça que hoje em dia provoca. Podia dar chatices, mas acho que não se comparava...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nazgulled, isto não é uma resposta directa aos teus argumentos, que desde já agradeço, tens ajudado muito a discussão.

Eu sou há já algum tempo um "revolucionário anti-microsoft". Mal tenha dinheiro adiro à Apple e nunca mais pego no Windows a não ser numa virtual machine por causa de teste de software, ou jogos eventualmente. Daí que fui à procura de uma coisa que li à coisa de um mês:

Quem define as CSS

As CSS (...) são uma recomendação da World Wide Web Consortium (www.w3c.org), uma estrutura que integra a Microsoft, a Apple, Macromedia, Adobe, (...).

O objectivo da W3C é estabelecer padrões e protocolos para a Internet, de modo a garantir a interoperabilidade entre as diversas plataformas.

in CSS, Criação Inovadora de Sites, de Vico Ughetto, FCA, Agosto 2006, p. 5

Isto é comprovado em http://www.w3.org/Consortium/Member/List, a Microsoft é membro do W3C.

Partindo então do princípio que o senhor Ughetto não aldrabou, a MS pertencia à W3C já em Agosto de 2006. Já havia, então, compreendido que precisava de andar da mesma forma que todos os outros.

A W3C já havia lançado o CSS 2 em 1998 (ver aqui). Em Abril de 2006, lançava o segundo "working draft" do CSS 2.1 (que havia começado em Agosto de 2002), logo nem o CSS 2 era novidade, nem o 2.1, muito menos seria para um membro da organização, ainda que recente.

Ainda em Novembro de 2006, sai um o terceiro "working draft" do CSS 2.1, que, muito ou pouco, já teria sido criado com alguma influência ou conhecimento da MS.

No entanto, em Outubro de 2006, a MS lançou o IE7 (wiki). Nesta altura, a MS participava no W3C, e mesmo assumindo que só havia entrado em 2006, já tinha conhecimento de que estaria para sair o CSS 2.1. Ainda assim, optou por lançar o IE7 antes desta versão (isto, claramente, ou foi um gesto de demência ou uma tentativa desesperada de apanhar os restantes browsers).

Já o IE6 foi lançado em 2001, e segundo este mesmo site,

(...) Microsoft implemented tools that support Platform for Privacy Preferences (P3P), a technology under development by the World Wide Web Consortium (W3C).

Ora, isto prova que, se a MS não era membro da organização, então conhecia bem o seu trabalho e a necessidade de seguir as suas recomendações.

Meus amigos, se isto não mostra o "sadismo" e arrogância da MS, então não sei o que o fará.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Phear99, numa frase :

A Microsoft tem o seu negócio direccionado para o lucro, não para o que o cliente merece. Por essa mesma razão eles estão-se a "c@g@r" para o que sai da W3C, porque não lhes trás lucro adicional e ainda lhes traz despesas .. Quem usa IE, e eles sabem bem disso, desconhece os outros browsers ou nem sequer pensa em mudar por hábito, daí que não lhes interessa andarem a ser "os melhores", limitam-se apenas a não perder demasiado avanço para a concorrência.

Empresas movidas pelo dinheiro como a M$ nunca neste mundo farão algo de realmente útil, estável e actualizado. Já o OpenSource tem dado cartas, e cada vez mais surpreende o que as pessoas conseguem fazer quando têm gosto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Supostamente a MS perdeu porque o share do IE tem diminuído muito. Só uma questão: de onde vêm as principais fontes de rendimento dos brownsers (dos que têm lucro em vista)?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora