Capítulo 20
A saga das CSS

Original version: http://www.w3.org/Style/LieBos2e/history/ 
Tradutor: Frugal minded, Web coupon codes

Por favor, teña en conta que: Este documento é unha tradución e pode conter erros. O documento orixinal en inglés no sitio web de W3C é o documento oficial.

Este é o capítulo 20 do libro Cascading Style Sheets, designing for the Web, escrito por Håkon Wium Lie e Bert Bos (2da edición, 1999, Addison Wesley, ISBN 0-201-59625-3)

A saga das CSS comeza en 1994. Un dos autores deste libro traballa en CERN - o berce da Web - e comezaba entón a utilizarse a Web como plataforma para a publicidade electrónica. Con todo, aínda faltaba unha parte fundamental para unha plataforma publicitaria: non había forma de darlles estilo aos documentos: Por exemplo, non había maneira de describir unha diagramación similar á dun xornal nunha páxina Web. Despois de traballar en presentacións personalizadas para xornais no Laboratorio de Medios MIT, Håkon advertiu a necesidade de contar cunha linguaxe de follas de estilo para a Web.

As follas de estilo dos exploradores non eran unha idea totalmente nova. A separación da estrutura do documento da diagramación do documento fora un obxectivo de HTML dende a súa concepción en 1990. Tim Berners-Le deseñou o seu explorador/editor NeXT de maneira tal que podía determinar o estilo cunha simple folla de estilo. Con todo, non publicou a sintaxe para as follas de estilo, xa que consideraba que cada explorador debía decidir a forma de mostrar mellor as páxinas aos seus usuarios. Outros exploradores, incluído Viola de Pei Wei (1992) e o explorador Harmony (1993) ( o sistema Hyper-G (Hyper-G system) foi un dos primeiros competidores da Web) para o sistema Hyper-G contaban con linguaxes de estilo similares. 

Con todo, en lugar das follas de estilo máis avanzadas, os exploradores ofrecían aos seus usuarios cada vez menos opcións para personalizar o estilo. En 1993, apareceu NCSA Mosaic, o explorador que fixo popular á Web. No entanto, dende o punto de vista do estilo, foi un paso cara atrás, xa que só lles permitía aos usuarios modificar determinadas cores e fontes

Mentres tanto, os deseñadores de páxinas Web queixábanse de que non podían incidir demasiado no aspecto que tiñan as súas páxinas. Unha das primeiras preguntas dun autor principiante para a Web foi como cambiar as fontes e as cores dos elementos. Naquel entón, HTML non brindaba esta funcionalidade, e con toda razón. O seguinte extracto dunha mensaxe enviada á lista de correo www-talk a principios do ano 1994 brinda unha noción das tensións que existían entre os autores e os implementadores:

(Esta mensaxe está dispoñible en www-talk archive.)

De feito, foi unha fonte constante de satisfacción para min durante o último ano dicirlles a miles (literalmente) de persoas que desexan -- suxéitense ben, aquí vén -- controlar o aspecto dos seus documentos de maneiras que parecerían triviais en TeX, Microsoft Word, e en calquera outra contorna común de procesamiento de texto: "Laméntoo, non hai nada que facer." 

O autor da mensaxe era Marc Andreessen, un dos programadores detrás de NCSA Mosaic. Máis tarde, converteuse no cofundador de Netscape e, para ese entón, as súas opinións -se é que nalgún momento foron as súas opinións- con referencia ao formato cambiaran. O 13 de outubro de 1994, Marc Andreessen anunciou a www-talk que o primeiro lanzamento beta de Mozilla (que posteriormente se converteu en Netscape Navigator) estaba dispoñible para a súa avaliación. Entre as novas etiquetas que o novo explorador admitía atopábase centrar e ao pouco tempo apareceron máis etiquetas.

Tres días antes de que Netscape anunciase a dispoñibilidade do seu novo explorador, HÃ¥kon publicou o primeiro borrador das Follas de estilo en fervenza HTML (first draft of Cascading HTML Style Sheets). Detrás de bastidores, Dave Raggett (o principal arquitecto de HTML 3.0) suxerira que o lanzamento do borrador se realizase antes que a conferencia que levaría a cabo proximamente "Mosaic and the Web" (a conferencia "Mosaic and the Web" tivo lugar do 17 ao 20 de outubro de 1995. Foi a segunda conferencia do que máis tarde se convertería na Serie de Conferencias WWW ) en Chicago. Dave advertira que HTML ía converterse nunha linguaxe de descrición de páxinas, e nunca debería facelo, e que se necesitaba un mecanismo máis específico para satisfacer os requirimentos dos autores. Aínda que á primeira versión do documento faltáballe terminar de madurar, serviu como base para a análise.

Entre as persoas que responderon ao primeiro borrador de CSS atopábase Bert Bos, o coautor deste libro. Nese momento, estaba a deseñar Argo (o explorador Argo formaba parte dun proxecto para lograr que Internet fose accesible para os estudiosos de Humanidades. Incluía complementos ("plug-ins", tamén denominados "applets") antes de que Netscape os agregase ) e un explorador que podía personalizarse en gran medida con follas de estilo, e decidiu unirse á iniciativa de HÃ¥kon. As dúas propostas eran distintas á actual CSS, pero non é difícil identificar os conceptos orixinais.

Unha das características da linguaxe de estilo Argo era que era o suficientemente xeral como para aplicarse a outras linguaxes de etiquetas ademais de HTML. Este tamén se converteu nun obxectivo de deseño en CSS e, ao pouco tempo, eliminouse "HTML" do título da especificación. Argo posuía tamén outras funcións avanzadas que non o convertían en CSS nivel 1, particularmente, selectores de atributos e texto xerado. Ambas as funcións debían esperar a CSS2.

A linguaxe de estilo "Follas de estilo en fervenza" (CSS) non era a única linguaxe proposta nese momento. Tamén estaba a linguaxe de Pei Wei do explorador Viola e Robert Raisch da editorial Ou'Reilly escribira outro, xa en xuño de 1993. Ademais, estaba tamén DSSSL, unha linguaxe de estilo e transformación complexo que se estaba a desenvolver niso para a impresión de documentos SGML. Era concebible que DSSSL se aplicase a HTML tamén. Con todo, CSS tiña unha función que o distinguía do resto dos outros linguaxes: tiña en conta que, na Web, nin o autor nin o lector podían deseñar por si sós o estilo dun documento, senón que os seus desexos debían combinarse ou "caer en fervenza" dalgún modo; e, de feito, non só os desexos do lector e do autor debían facelo, senón tamén as capacidades do dispositivo de visualización e do explorador.

Tal como estaba previsto, presentouse a proposta inicial de CSS na conferencia da Web en Chicago en novembro de 1994. A presentación no Día do Desarrollador orixinou un gran debate. En primeiro lugar, o concepto dun equilibrio entre as preferencias do autor e do usuario era novo. Unha captura de pantalla ficticia mostraba un deslizador coa etiqueta "usuario" dun lado e a etiqueta "autor" do outro. Ao axustar o deslizador, o usuario podería cambiar a combinación das súas propias preferencias e as do autor. En segundo lugar, algúns consideraron que as CSS eran demasiado simples para a tarefa para as que foron deseñadas. Sostiñan que para poder dar estilo aos documentos, necesitábase a potencia dunha linguaxe de programación completo. As CSS ían exactamente no sentido contrario, facendo fincapé en que constituían un formato simple, declarativo.

Na seguinte conferencia WWW, realizada en abril de 1995, presentáronse novamente as CSS (WWW3, a terceira conferencia de sériea WWW, levou a cabo do 10 ao 14 de abril de 1995, en Darmstadt, Alemaña). Tanto Bert como HÃ¥kon estiveron presentes (de feito, esta era a primeira vez que se reunían persoalmente) e esta vez tamén puidemos mostrar implementacións. Bert presentou o soporte para as follas de estilo en Argo e HÃ¥kon mostrou unha versión do explorador Area que fora modificado para admitir as CSS. Area fora descrita por Dave Raggett como un banco de probas para novas ideas, e unha delas eran as follas de estilo. O que comezou como presentacións técnicas, terminou en debates políticos achega do equilibrio entre o autor e o lector. Os representantes que apoiaban ao "autor" sostiñan que correspondía ao autor decidir en última instancia como se presentaban os documentos. Por exemplo argumentouse que poderían existir requisitos legais sobre como debían imprimirse as etiquetas de advertencia e que o usuario non debería poder reducir o tamaño de fonte para tales advertencias. Do outro lado, no que se atopan os autores deste libro, argumentouse que o usuario, cuxos ollos e oídos teñen que decodificar en última instancia a presentación, debería ter a última palabra en caso de xurdir conflitos.

Á marxe das batallas políticas, o traballo técnico seguiu o seu curso. En maio de 1995, creouse a lista de correo www-style ( www-style mailing list), e os debates que xurdiron alí, a miúdo, influenciaron o desenvolvemento das especificacións de CSS. Tres anos máis tarde, xa había máis de 4.000 mensaxes nos arquivos da lista de correo.

En 1995, o Consorcio da World Wide Web (W3C) tamén se volveu operativo. As compañías uníanse ao Consorcio a gran velocidade e creouse a organización. Considerábase que os talleres sobre varios temas eran unha maneira exitosa para que os membros e o persoal de W3C se reunisen e analizasen o desenvolvemento técnico futuro. Por tanto, decidiuse que debía organizarse outro taller e esta vez as Follas de estilo serían o tema. O persoal técnico de W3C que traballaba nas follas de estilo (a saber, os dous autores deste libro) atopábase agora en Sophia-Antipolis no sur de Francia, onde W3C establecera o seu sitio europeo. O sur de Francia non é o peor lugar para atraer a participantes a talleres, pero dado que moitos dos posibles participantes atopábanse nos EE. UU., decidiuse realizar o taller en París, xa que alí chegaban máis voos internacionais. O taller tamén era un experimento para determinar se era posible para W3C organizar eventos fóra da EE. UU. Efectivamente, resultou posible, e o taller foi decisivo para asegurarlles ás follas de estilo un lugar lexítimo na Web. Entre os participantes, atopábase Thomas Reardon de Microsoft, quen prometeu incorporar soporte CSS nas próximas versións de Internet Explorer.

A fins do ano 1995, W3C estableceu a Xunta de Revisión Editorial de HTML (HTML ERB) para ratificar as futuras especificacións de HTML. Dado que as follas de estilo se atopaban dentro da esfera de interese dos membros do novo grupo, a especificación de CSS tomouse como un elemento de traballo co obxectivo de transformala nunha Recomendación. Entre os membros da HTML ERB, atopábase Lou Montulli de Netscape. Unha vez que Microsoft indicou que agregaría soporte CSS no seu explorador, era importante tamén lograr que Netscape se sumase. Pola contra, podería suceder que a Web tomase distintos camiños con exploradores que admitisen distintas especificacións. Aínda que as batallas dentro da HTML ERB foron longas e duras, CSS nivel 1 finalmente xurdiu como unha Recomendación de W3C en decembro de 1996.

En febreiro de 1997, CSS obtivo o seu propio grupo de traballo dentro de W3C e o novo grupo dispúxose a traballar nas funcións que CSS1 non incluía. O grupo estaba dirixido por Chris Lilley, un escocés recrutado por W3C da Universidade de Manchester. CSS nivel 2 converteuse nunha Recomendación en maio de 1998, e probablemente seguiralle o nivel 3 a fins de 1999. Mentres tanto, non só HTML depende de CSS para a súa presentación. Moitos formatos baseados en XML tamén necesitan CSS, e os exploradores que aparecen a fins de 1998 mostran os primeiros pasos, aínda que aínda son algo limitados, cara á presentación de datos XML.

O grupo de traballo de W3C, cuxo nome oficial é "Grupo de traballo sobre follas de estilo en fervenza e propiedades de formato" ("Cascading Style Sheets and Formatting Properties Working Group), xa que se ocupa de moito máis que das CSS, conta con ao redor de 15 membros, delegados polas compañías e as organizacións que son membros de W3C. Proceden de todas partes do mundo, polo que as "reunións" xeralmente realízanse telefonicamente, e duran aproximadamente unha hora todas as semanas. Aproximadamente catro veces por ano, reúnense en algures do mundo. As sedes máis recentes foron Provo, Redmond, San Francisco e París. En París, a reunión realizouse nas oficinas de EDF-GDF, a compañía francesa de gas e electricidade. Nesa reunión, ofrecéuselle ao grupo unha cea fabulosa: Cociña francesa con vista á cidade de París e ao río Sena -uno dos poucos momentos glamorosos na historia dun grupo de traballo técnico moi traballador. Todos os franceses deben sentirse celosos; normalmente non reciben nada gratis do seu provedor de gas e electricidade.

Exploradores

A saga das CSS non está completa se non se inclúe unha sección sobre os exploradores. Se non fose polos exploradores, as CSS quedarían como unha nobre proposta de interese académico unicamente. O primeiro explorador comercial que admitiu ás CSS foi Internet Explorer 3 de Microsoft, que foi lanzado en agosto de 1996. Nese momento, a especificación de CSS1 aínda non se converteu nunha Recomendación de W3C, e os debates dentro da HTML ERB darían como resultado cambios que os desenvolvedores de Microsoft, liderados por Chris Wilson, non poderían anticipar. IE3 admite de maneira confiable a maioría das propiedades de cor, fondo, fonte e texto, pero non implementa moito do modelo de caixa.

O seguinte explorador que anunciou que admitía ás CSS foi Netscape Navigator, versión 4.0. Dende o principio, Netscape mantívose escéptico con respecto ás follas de estilo e a primeira implementación que realizou a compañía resultou ser un intento pouco entusiasta para evitar que Microsoft reclamase que cumpría máis que eles cos estándares. A implementación de Netscape admite unha ampla gama de funcións: por exemplo, os elementos flotantes; con todo, os desenvolvedores de Netscape non tiveron suficiente tempo para avaliar todas as funcións supostamente admitidas. O resultado é que moitas propiedades das CSS non poden utilizarse en Navigator 4.

Netscape implementou as CSS internamente ao traducir as regras das CSS a recortes de Javascript, que logo se executaban xunto con outros sistemas de escritura. Así mesmo, a compañía decidiu permitir que os desenvolvedores escribisen con follas de estilo baseadas en Javascript (JSSS), pasando así por encima das CSS por completo. Se as JSSS fóran exitosas, a Web tería unha folla de estilo máis do necesario. Afortunadamente para as CSS, isto non sucedeu.

Mentres tanto, Microsoft continuaba os seus esforzos por desprazar a Netscape do trono dos exploradores reinantes. En Internet Explorer 4, o motor de visualización do explorador -que entre outras cousas é responsable de representar CSS- foi substituído por un módulo cuxo nomee de código era "Trident". Aínda que Trident eliminou moitas das limitacións de IE3, tamén trouxo consigo o seu propio conxunto de erros e limitacións. IE4 non admite por completo CSS1, algo que o Proxecto de Estándares da Web (WaSP) sinalou en novembro de 1998 ao publicar "Os 10 problemas principais con CSS de IE" (IE's Top 10 CSS Problems) (Figura 20.1).

Figura 20.1 O proxecto WaSP avalía se os exploradores cumpren coas Recomendacións de W3C. Unha das súas primeiras revisións foi determinar a admisión de CSS en Microsoft Internet Explorer.

Screendump of WaSP page about M

Ademais de presentar documentos estáticos, Trident tamén é capaz de cambiar de forma dinámica as propiedades estilísticas. Por exemplo, os elementos poden aparecer con animación na pantalla, se se cambian de maneira continua as súas propiedades na parte superior e esquerda, creando deste xeito o "HTML dinámico" (DHTML). En principio, o DHTML é moi similar a JSSS (ambos utilizan linguaxes de escritura para establecer propiedades estilísticas); con todo, o DHTML nunca se comercializou como unha linguaxe de follas de estilo alternativo. De feito, a linguaxe CSS é unha parte integral de DHTML.

O terceiro explorador que se aventurou á linguaxe CSS foi Opera. O explorador da pequena compañía norueguesa foi noticia en 1998 por ser pequeno (cabe nun diskette) e poder ser modificado polo usuario, ao mesmo tempo que admite a maioría das funcións incluídas en ofertas de maior tamaño de Microsoft e Netscape. Opera 3.5 foi lanzado en novembro de 1998 e admite a maior parte de CSS1. Os desarrolladores de Opera (a saber, Geir Ivarsøe) tamén tiveron tempo para avaliar a súa implementación antes de enviala. O conxunto de probas de CSS1, desenvolvido por Eric Meyer coa colaboración doutros tantos voluntarios, logrou que fose moito máis fácil para os implementadores avaliar e mellorar os seus produtos.

Ao momento de escribir o presente texto, tanto Netscape como Microsoft atópanse tamén traballando arduamente para presentar rapidamente os seus próximos exploradores. Netscape decidiu substituír o motor de visualización de Navigator por "nglayout", que foi escrito dende o principio con CSS como unha das súas bases. O seu novo explorador leva o nome de código "Gecko" e pódense descargar versións beta desde http://www.mozilla.org. Microsoft estivo lanzando versións en vista previa de Internet Explorer 5. Xa conta con algunhas melloras nas CSS, e prevese que a iniciativa WaSP lembraralle á compañía que aínda queda traballo por facer antes de que CSS1 sexa admitido por completo.

O sitio web deste libro incluirá punteiros para os últimos exploradores con CSS.