Articulo de referencia

CSS

{{Cite web|title = Minutes Telecon 2024-12-11|url=https://www.w3.org/blog/CSS/2024/12/12/minutes-2024-12-11/|website = CSS WG Blog|publisher=W3C|date=2024-12-12|access-date=2025...

Las hojas de estilo en cascada ( CSS ) son un lenguaje de hojas de estilo que se utiliza para especificar la presentación y el estilo de un documento escrito en un lenguaje de marcado , como HTML o XML (incluidos dialectos XML como SVG , MathML o XHTML ). [ 2 ] CSS es una tecnología fundamental de la World Wide Web , junto con HTML y JavaScript . [ 3 ]

CSS está diseñado para permitir la separación del contenido y la presentación , incluyendo el diseño , los colores y las fuentes . [ 4 ] Esta separación puede mejorar la accesibilidad del contenido , ya que este puede escribirse sin preocuparse por su presentación; proporcionar mayor flexibilidad y control en la especificación de las características de presentación; permitir que varias páginas web compartan el formato especificando el CSS relevante en un archivo .css separado, lo que reduce la complejidad y la repetición en el contenido estructural; y permitir que el archivo .css se almacene en caché para mejorar la velocidad de carga de la página entre las páginas que comparten el archivo y su formato.

La separación entre formato y contenido también permite presentar la misma página de marcado con diferentes estilos para distintos métodos de visualización, como en pantalla, en formato impreso, por voz (mediante navegador o lector de pantalla ) y en dispositivos táctiles basados ​​en Braille . CSS también incluye reglas para el formato alternativo si se accede al contenido desde un dispositivo móvil . [ 5 ]

El término "cascada" proviene del esquema de prioridad especificado para determinar qué declaración se aplica si más de una declaración de una propiedad coincide con un elemento en particular. Este esquema de prioridad en cascada es predecible.

Las especificaciones CSS son mantenidas por el Consorcio World Wide Web (W3C). El tipo de medio de Internet ( tipo MIME ) text/cssestá registrado para su uso con CSS por RFC 2318 (marzo de 1998). El W3C opera un servicio gratuito de validación de CSS para documentos CSS. [ 6 ]

Además de HTML, otros lenguajes de marcado admiten el uso de CSS, como XHTML , XML simple , SVG y XUL . CSS también se utiliza en el kit de herramientas de widgets GTK .

Sintaxis

CSS tiene una sintaxis sencilla y utiliza una serie de palabras clave en inglés para especificar los nombres de las distintas propiedades de estilo.

Hoja de estilo

Una hoja de estilo consta de una lista de reglas . Cada regla o conjunto de reglas consta de uno o más selectores y un bloque de declaración .

Selector

En CSS, los selectores declaran a qué parte del código se aplica un estilo, haciendo coincidir las etiquetas y los atributos en el propio código.

Tipos de selector

Los seleccionadores pueden aplicar lo siguiente:

  • todos los elementos de un tipo específico, por ejemplo, los encabezados de segundo nivel h2
  • elementos especificados por atributo , en particular:
    • id : un identificador único dentro del documento, denotado en el lenguaje de selección por un prefijo hash , por ejemplo#id
    • Clase : un identificador que puede anotar varios elementos en un documento, denotado por un prefijo de punto.classname , por ejemplo (la frase "clase CSS", aunque a veces se usa, es un término inapropiado, ya que las clases de elementos —especificadas con el atributo de clase HTML— son una característica de marcado distinta de los subsistemas CSS de los navegadores, y los estándares relacionados del W3C/WHATWG trabajan en estilos de documentos; consulte RDF y microformatos para conocer los orígenes del sistema de "clases" del modelo de contenido web).
  • elementos dependiendo de cómo estén ubicados en relación con otros en el árbol del documento .

Las clases y los identificadores distinguen entre mayúsculas y minúsculas, comienzan con letras y pueden incluir caracteres alfanuméricos, guiones y guiones bajos. Una clase puede aplicarse a cualquier número de instancias de cualquier elemento. Un identificador solo puede aplicarse a un único elemento.

Pseudoclases

Las pseudoclases se utilizan en los selectores CSS para permitir el formato basado en información que no está contenida en el árbol del documento.

Un ejemplo de una pseudoclase ampliamente utilizada es , que identifica el contenido solo cuando el usuario "señala" el elemento visible, generalmente manteniendo el cursor del ratón sobre él. Se añade a un selector como en o .:hovera:hover#elementid:hover

Una pseudoclase clasifica elementos del documento, como o , mientras que un pseudoelemento realiza una selección que puede consistir en elementos parciales, como o . [ 7 ] Nótese la distinción entre la notación de dos puntos dobles utilizada para los pseudoelementos y la notación de dos puntos simples utilizada para las pseudoclases.:link:visited::first-line::first-letter

Combinadores

Se pueden unir varios selectores simples usando combinadores para especificar elementos por ubicación, tipo de elemento, id, clase o cualquier combinación de estos. [ 8 ] El orden de los selectores es importante. Por ejemplo, se aplica a todos los elementos de la clase myClass que están dentro de elementos div, mientras que se aplica a todos los elementos div que están dentro de elementos de la clase myClass. Esto no debe confundirse con identificadores concatenados como que se aplica a elementos div de la clase myClass.div.myClass{color:red;}.myClassdiv{color:red;}div.myClass{color:red;}

Resumen de la sintaxis del selector

La siguiente tabla proporciona un resumen de la sintaxis de los selectores, indicando su uso y la versión de CSS que los introdujo. [ 9 ]

Bloque de declaración

Un bloque de declaración consta de un par de llaves ( {}) que encierran una lista de declaraciones separadas por punto y coma . [ 10 ]

Declaración

Cada declaración consta de una propiedad , dos puntos ( :) y un valor . Opcionalmente, se pueden añadir espacios en blanco alrededor del bloque de declaración, las declaraciones, los dos puntos y los puntos y comas para facilitar la lectura. [ 11 ]

Propiedades

Las propiedades se especifican en el estándar CSS. Cada propiedad tiene un conjunto de valores posibles. Algunas propiedades pueden afectar a cualquier tipo de elemento, y otras se aplican solo a grupos particulares de elementos. [ 12 ] [ 13 ]

Valores

Los valores pueden ser palabras clave, como "center" o "inherit", o valores numéricos, como 200px(200 píxeles), 50vw(50 por ciento del ancho de la ventana gráfica) u 80% (80 por ciento del ancho del elemento padre).

Los valores de color se pueden especificar con palabras clave (por ejemplo, " red"), valores hexadecimales (por ejemplo , también abreviados como ), valores RGB en una escala de 0 a 255 (por ejemplo , ), valores RGBA que especifican tanto el color como la transparencia alfa (por ejemplo, ), o valores HSL o HSLA (por ejemplo , , ). [ 14 ]#FF0000#F00rgb(255,0,0)rgba(255,0,0,0.8)hsl(0100%50%)hsl(0100%50%/0.8)

Los valores numéricos distintos de cero que representan medidas lineales deben incluir una unidad de longitud, que puede ser un código alfabético o una abreviatura, como en 200pxo 50vw; o un signo de porcentaje, como en 80%. Algunas unidades – cm( centímetro ); in( pulgada ); mm( milímetro ); pc( pica ); y pt( punto ) – son absolutas , lo que significa que la dimensión renderizada no depende de la estructura de la página; otras – em( em ); ex( ex ) y px( píxel ) – son relativas , lo que significa que factores como el tamaño de fuente de un elemento padre pueden afectar la medida renderizada. Estas ocho unidades eran una característica de CSS 1 [ 15 ] y se mantuvieron en todas las revisiones posteriores. El Módulo de Valores y Unidades CSS Nivel 3 propuesto, si se adopta como Recomendación del W3C, proporcionará siete unidades de longitud adicionales: ch; Q; rem; vh; vmax; vmin; y vw. [ 16 ]

Usar

Antes de CSS, casi todos los atributos de presentación de los documentos HTML estaban contenidos en el marcado HTML. Es decir, todos los colores de fuente, estilos de fondo, alineaciones de elementos, bordes y tamaños debían describirse explícitamente (a menudo repetidamente) en el HTML. CSS permite a los autores trasladar gran parte de esa información a otro archivo, la hoja de estilos, lo que resulta en un HTML considerablemente más simple. Además, a medida que más y más dispositivos pueden acceder a páginas web adaptables, comienzan a aparecer diferentes tamaños de pantalla y diseños. Personalizar un sitio web para cada tamaño de dispositivo es costoso y cada vez más difícil. La naturaleza modular de CSS significa que los estilos se pueden reutilizar en diferentes partes de un sitio o incluso en diferentes sitios, lo que promueve la coherencia y la eficiencia.

Por ejemplo, los encabezados ( h1elementos), subencabezados ( h2), sub-subencabezados ( h3), etc., se definen estructuralmente mediante HTML. En la impresión y en la pantalla, la elección de la fuente , el tamaño , el color y el énfasis para estos elementos es de presentación .

Antes de CSS, los autores de documentos que querían asignar características tipográficas a, por ejemplo, todos h2los encabezados, tenían que repetir el marcado HTML de presentación para cada aparición de ese tipo de encabezado. Esto hacía que los documentos fueran más complejos, más grandes, más propensos a errores y más difíciles de mantener. CSS permite separar la presentación de la estructura. CSS puede definir el color, la fuente, la alineación del texto, el tamaño, los bordes, el espaciado, el diseño y muchas otras características tipográficas, y puede hacerlo de forma independiente para las vistas en pantalla e impresas. CSS también define estilos no visuales, como la velocidad de lectura y el énfasis para los lectores de texto auditivos. El W3C ha desaconsejado el uso de todo el marcado HTML de presentación. [ 17 ]

Por ejemplo, en HTML anterior a CSS, un elemento de encabezado definido con texto rojo se escribiría de la siguiente manera:

< h1 >< font color = "red" > Capítulo 1. </ font ></ h1 >

Mediante CSS, el mismo elemento puede codificarse utilizando propiedades de estilo en lugar de atributos de presentación HTML:

< h1 style = "color: red;" > Capítulo 1. </ h1 >

Las ventajas de esto pueden no ser evidentes de inmediato, pero el poder de CSS se hace más patente cuando las propiedades de estilo se colocan en un elemento de estilo interno o, mejor aún, en un archivo CSS externo. Por ejemplo, supongamos que el documento contiene el elemento de estilo:

<style> h1 { color : red ; } </style>

Todos h1los elementos del documento se volverán automáticamente rojos sin necesidad de código explícito. Si el autor posteriormente quisiera que h1los elementos fueran azules, podría hacerlo cambiando el elemento de estilo a:

<style> h1 { color : blue ; } </style>

en lugar de tener que revisar laboriosamente el documento y cambiar el color de cada h1elemento individual.

Los estilos también se pueden colocar en un archivo CSS externo, como se describe a continuación, y cargarse utilizando una sintaxis similar a la siguiente:

< link href = "path/to/file.css" rel = "stylesheet" type = "text/css" >

Esto desacopla aún más el estilo del documento HTML y permite modificar el estilo de varios documentos simplemente editando un archivo CSS externo compartido.

Fuentes

CSS, o Hojas de Estilo en Cascada, ofrece una forma flexible de dar estilo al contenido web, con estilos que se originan a partir de la configuración predeterminada del navegador, las preferencias del usuario o los diseñadores web. Estos estilos se pueden aplicar en línea, dentro de un documento HTML, o a través de archivos .css externos para una mayor coherencia. Esto no solo simplifica el desarrollo web al promover la reutilización y la mantenibilidad, sino que también mejora el rendimiento del sitio, ya que los estilos se pueden almacenar en archivos .css dedicados que los navegadores pueden almacenar en caché. Además, incluso si los estilos no se pueden cargar o están deshabilitados, esta separación mantiene la accesibilidad y la legibilidad del contenido, asegurando que el sitio sea utilizable para todos los usuarios, incluidas las personas con discapacidad. Su enfoque multifacético, que incluye consideraciones sobre la especificidad del selector, el orden de las reglas y los tipos de medios, garantiza que los sitios web sean visualmente coherentes y adaptables a diferentes dispositivos y necesidades de los usuarios, logrando un equilibrio entre la intención del diseño y la accesibilidad del usuario.

Varias hojas de estilo

Se pueden importar varias hojas de estilo. Se pueden aplicar diferentes estilos según el dispositivo de salida que se utilice; por ejemplo, la versión para pantalla puede ser muy diferente de la versión impresa, por lo que los autores pueden adaptar la presentación a cada medio.

Cascada

La hoja de estilos con la prioridad más alta controla la visualización del contenido. Las declaraciones que no se establecen en la fuente de mayor prioridad se pasan a una fuente de menor prioridad, como el estilo del agente de usuario. Este proceso se denomina cascada .

Uno de los objetivos de CSS es permitir a los usuarios un mayor control sobre la presentación . Alguien a quien le resulte difícil leer los encabezados en cursiva roja puede aplicar una hoja de estilos diferente. Dependiendo del navegador y del sitio web, un usuario puede elegir entre varias hojas de estilos proporcionadas por los diseñadores, o puede eliminar todos los estilos añadidos y ver el sitio con el estilo predeterminado del navegador, o puede anular solo el estilo de los encabezados en cursiva roja sin alterar otros atributos. Se han creado extensiones de navegador como Stylish y Stylus para facilitar la gestión de estas hojas de estilo de usuario. En el caso de proyectos grandes, se puede utilizar la cascada para determinar qué estilo tiene mayor prioridad cuando los desarrolladores integran estilos de terceros con prioridades conflictivas, y para resolver esos conflictos. Además, la cascada puede ayudar a crear diseños temáticos, lo que permite a los diseñadores ajustar aspectos de un diseño sin comprometer la maquetación general.

Esquema de prioridad CSS

Especificidad

La especificidad se refiere a los pesos relativos de varias reglas. [ 18 ] Determina qué estilos se aplican a un elemento cuando podría aplicarse más de una regla. Según la especificación, un selector simple (por ejemplo, H1) tiene una especificidad de 1, los selectores de clase tienen una especificidad de 1,0 y los selectores de ID tienen una especificidad de 1,0,0. Debido a que los valores de especificidad no se conservan como en el sistema decimal, se utilizan comas para separar los "dígitos" [ 19 ] (una regla CSS con 11 elementos y 11 clases tendría una especificidad de 11,11, no de 121).

De este modo, los selectores de la siguiente regla dan como resultado la especificidad indicada:

Ejemplos

Considere este fragmento HTML:

< ! DOCTYPE html > <html> <head> < meta charset = " utf - 8 " > <style> #xyz { color : blue ; } </style> </head> <body> < p id = " xyz " style = " color : green ; " > Para demostrar especificidad </p> </body> </html>

En el ejemplo anterior, la declaración en el styleatributo anula la del <style>elemento porque tiene una especificidad mayor y, por lo tanto, el párrafo aparece en verde:

Para demostrar especificidad

Herencia

La herencia es una característica clave en CSS; se basa en la relación ancestro-descendiente para funcionar. La herencia es el mecanismo por el cual las propiedades se aplican no solo a un elemento específico, sino también a sus descendientes. [ 18 ] La herencia se basa en el árbol del documento, que es la jerarquía de elementos XHTML en una página basada en el anidamiento. Los elementos descendientes pueden heredar valores de propiedades CSS de cualquier elemento ancestro que los contenga. En general, los elementos descendientes heredan propiedades relacionadas con el texto, pero no sus propiedades relacionadas con el cuadro. Las propiedades que se pueden heredar son color, fuente, espaciado entre letras, altura de línea, estilo de lista, alineación de texto, sangría de texto, transformación de texto, visibilidad, espacio en blanco y espaciado entre palabras. Las propiedades que no se pueden heredar son fondo, borde, visualización, flotación y borrado, altura y anchura, margen, altura y anchura mínima y máxima, contorno, desbordamiento, relleno, posición, decoración de texto, alineación vertical e índice z.

La herencia se puede utilizar para evitar declarar ciertas propiedades una y otra vez en una hoja de estilos, lo que permite escribir CSS más corto.

La herencia en CSS no es igual que la herencia en lenguajes de programación basados ​​en clases , donde es posible definir la clase B como "similar a la clase A, pero con modificaciones". [ 20 ] Con CSS, es posible aplicar estilos a un elemento con "clase A, pero con modificaciones". Sin embargo, no es posible definir una clase CSS B de esa manera, que luego podría usarse para aplicar estilos a múltiples elementos sin tener que repetir las modificaciones.

Ejemplo

Dada la siguiente hoja de estilo:

p { color : azul ; }

Supongamos que hay un elemento ap con un elemento de énfasis ( ) en su interior:<em>

<p> Esto es para <em> ilustrar </em> la herencia </p>

Si no se asigna ningún color al elemento em, la palabra resaltada "illustrate" hereda el color del elemento padre, p. La hoja de estilos p tiene el color azul, por lo tanto, el elemento em también es azul:

Esto sirve para ilustrar la herencia.

Espacio en blanco

Se ignora el espacio en blanco entre propiedades y selectores. Este fragmento de código:

cuerpo { desbordamiento : oculto ; fondo : #000000 ; imagen de fondo : url ( images/bg.gif ); repetición de fondo : sin repetición ; posición de fondo : arriba a la izquierda ; }

es funcionalmente equivalente a este:

cuerpo { desbordamiento : oculto ; color de fondo : #000000 ; imagen de fondo : url ( images/bg.gif ); repetición de fondo : sin repetición ; posición de fondo : arriba a la izquierda ; }

Sangría

Una forma común de formatear CSS para que sea legible es indentar cada propiedad y darle su propia línea. Además de formatear CSS para que sea legible, se pueden usar propiedades abreviadas para escribir el código más rápido, que también se procesa más rápidamente al renderizarse: [ 21 ]

cuerpo { desbordamiento : oculto ; fondo : #000 url ( images/bg.gif ) sin repetición izquierda arriba ; }

En ocasiones, varios valores de propiedades se muestran con sangría en líneas separadas:

@ font-face { font-family : 'Comic Sans' ; font-size : 20px ; src : url ( 'first.example.com' ), url ( 'second.example.com' ), url ( 'third.example.com' ), url ( 'fourth.example.com' ); }

Posicionamiento

CSS  2.1 define tres esquemas de posicionamiento:

Flujo normal
Los elementos en línea se disponen de la misma manera que las letras de las palabras en el texto, uno tras otro a lo largo del espacio disponible hasta que no haya más espacio, y luego comienzan una nueva línea debajo. Los elementos en bloque se apilan verticalmente, como los párrafos y como los elementos de una lista con viñetas. El flujo normal también incluye el posicionamiento relativo de los elementos en bloque o en línea y los cuadros de texto.
Flotadores
Un elemento flotante se extrae del flujo normal y se desplaza hacia la izquierda o hacia la derecha lo máximo posible dentro del espacio disponible. A continuación, el resto del contenido fluye junto al elemento flotante.
Posicionamiento absoluto
Un elemento con posicionamiento absoluto no tiene lugar ni efecto alguno en el flujo normal de otros elementos. Ocupa su posición asignada en su contenedor independientemente de los demás elementos. [ 22 ]

Propiedad de posición

Hay cinco valores posibles de la positionpropiedad. Si un elemento se posiciona de cualquier manera que no sea static, entonces las propiedades adicionales top, bottom, left, y rightse utilizan para especificar desplazamientos y posiciones. El elemento que tiene posición estática no se ve afectado por las propiedades top, bottom, lefto right.

Estático

El valor predeterminado coloca el elemento en el flujo normal .

Relativo

El elemento se coloca en el flujo normal y luego se desplaza o se desplaza de esa posición. Los elementos subsiguientes se disponen como si el elemento en cuestión no se hubiera movido.

Absoluto

Especifica el posicionamiento absoluto . El elemento se posiciona en relación con su antecesor no estático más cercano.

Fijado

El elemento está posicionado absolutamente en una posición fija en la pantalla incluso cuando se desplaza el resto del documento [ 22 ].

Flotar y despejar

La floatpropiedad puede tener uno de tres valores. Los elementos con posicionamiento absoluto o fijo no pueden flotar. Otros elementos normalmente se desplazan alrededor de los elementos flotantes, a menos que su propiedad lo impida clear.

izquierda
El elemento flota a la izquierda de la línea en la que habría aparecido; otros elementos pueden desplazarse a su derecha.
bien
El elemento flota a la derecha de la línea en la que habría aparecido; otros elementos pueden desplazarse a su izquierda.
claro
Fuerza al elemento a aparecer debajo ('clear') de los elementos flotantes a la izquierda ( ), derecha ( ) o ambos lados ( ). [ 22 ] [ 23 ]clear:leftclear:rightclear:both

Historia

Håkon Wium Lie , director técnico de la empresa Opera Software y cocreador de los estándares web CSS.

CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de 1994. [ 24 ] En ese momento, Lie trabajaba con Tim Berners-Lee en el CERN . [ 25 ] Por esas mismas fechas se propusieron otros lenguajes de hojas de estilo para la web, y los debates en listas de correo públicas y dentro del Consorcio World Wide Web dieron como resultado la publicación de la primera Recomendación CSS del W3C (CSS1) [ 26 ] en 1996. En particular, una propuesta de Bert Bos fue influyente; se convirtió en coautor de CSS1 y se le considera cocreador de CSS. [ 27 ]

Las hojas de estilo han existido de una forma u otra desde los inicios del Lenguaje de Marcado Generalizado Estándar ( SGML ) en la década de 1980, y CSS se desarrolló para proporcionar hojas de estilo para la web. [ 28 ] Un requisito para un lenguaje de hojas de estilo web era que estas provinieran de diferentes fuentes en la web. Por lo tanto, los lenguajes de hojas de estilo existentes como DSSSL y FOSI no eran adecuados. CSS, por otro lado, permitía que el estilo de un documento se viera influenciado por múltiples hojas de estilo a través de estilos en cascada. [ 28 ]

A medida que HTML creció, llegó a abarcar una mayor variedad de capacidades estilísticas para satisfacer las demandas de los desarrolladores web . Esta evolución otorgó al diseñador mayor control sobre la apariencia del sitio, a costa de un HTML más complejo. Las variaciones en las implementaciones de los navegadores web , como ViolaWWW y WorldWideWeb , [ 29 ] dificultaron la apariencia consistente del sitio y los usuarios tuvieron menos control sobre cómo se mostraba el contenido web. El navegador/editor desarrollado por Tim Berners-Lee tenía hojas de estilo codificadas directamente en el programa. Por lo tanto, las hojas de estilo no podían vincularse a documentos en la web. [ 25 ] Robert Cailliau , también del CERN, quería separar la estructura de la presentación para que diferentes hojas de estilo pudieran describir diferentes presentaciones para impresión, presentaciones en pantalla y editores. [ 29 ]

Mejorar las capacidades de presentación web era un tema de interés para muchos en la comunidad web y se propusieron nueve lenguajes de hojas de estilo diferentes en la lista de correo www-style. [ 28 ] De estas nueve propuestas, dos fueron especialmente influyentes en lo que se convirtió en CSS: Cascading HTML Style Sheets [ 24 ] y Stream-based Style Sheet Proposal (SSP). [ 27 ] [ 30 ] Dos navegadores sirvieron como bancos de pruebas para las propuestas iniciales; Lie trabajó con Yves Lafon para implementar CSS en el navegador Arena de Dave Raggett . [ 31 ] [ 32 ] [ 33 ] Bert Bos implementó su propia propuesta SSP en el navegador Argo . [ 27 ] Posteriormente, Lie y Bos trabajaron juntos para desarrollar el estándar CSS (la 'H' se eliminó del nombre porque estas hojas de estilo también podían aplicarse a otros lenguajes de marcado además de HTML). [ 25 ]

La propuesta de Lie se presentó en la conferencia " Mosaic and the Web " (más tarde llamada WWW2) en Chicago, Illinois en 1994, y nuevamente con Bert Bos en 1995. [ 25 ] Por esta época, el W3C ya se estaba estableciendo y mostró interés en el desarrollo de CSS. Organizó un taller con ese fin, presidido por Steven Pemberton . Esto resultó en que el W3C añadiera el trabajo sobre CSS a los entregables del comité de revisión editorial de HTML (ERB). Lie y Bos fueron el personal técnico principal en este aspecto del proyecto, con la participación de otros miembros, incluido Thomas Reardon de Microsoft. En agosto de 1996, Netscape Communication Corporation presentó un lenguaje de hojas de estilo alternativo llamado JavaScript Style Sheets (JSSS). [ 25 ] La especificación nunca se terminó y está obsoleta. [ 34 ] A finales de 1996, CSS estaba listo para convertirse en oficial, y la Recomendación CSS nivel 1 se publicó en diciembre.

El desarrollo de HTML, CSS y el DOM se había llevado a cabo en un mismo grupo, el Comité Editorial de Revisión de HTML (ERB). A principios de 1997, el ERB se dividió en tres grupos de trabajo: el Grupo de Trabajo de HTML , presidido por Dan Connolly del W3C; el Grupo de Trabajo del DOM, presidido por Lauren Wood de SoftQuad ; y el Grupo de Trabajo de CSS , presidido por Chris Lilley del W3C.

El Grupo de Trabajo de CSS comenzó a abordar cuestiones que no se habían tratado con el nivel 1 de CSS, lo que dio lugar a la creación del nivel 2 de CSS el 4 de noviembre de 1997. Este se publicó como Recomendación del W3C el 12 de mayo de 1998. El nivel 3 de CSS, que se inició en 1998, todavía se encuentra en desarrollo a fecha de 2014..

En 2005, los Grupos de Trabajo de CSS decidieron aplicar los requisitos de los estándares con mayor rigor. Esto significó que estándares ya publicados como CSS  2.1, CSS  3 Selectors y CSS  3 Text pasaron de la fase de Recomendación Candidata a la de Borrador de Trabajo.

Dificultades con la adopción

La  especificación CSS 1 se completó en 1996. El Internet Explorer 3 de Microsoft [ 25 ] se lanzó ese año, con un soporte limitado para CSS. IE 4 y Netscape 4.x añadieron más soporte, pero generalmente era incompleto y tenía muchos errores que impedían que CSS se adoptara de forma útil. Pasaron más de tres años antes de que algún navegador web lograra una implementación casi completa de la especificación. Internet Explorer 5.0 para Macintosh , lanzado en marzo de 2000, fue el primer navegador en tener soporte completo (mejor que el 99 por ciento) para CSS  1, [ 35 ] superando a Opera , que había sido el líder desde la introducción de su soporte para CSS quince meses antes. Otros navegadores siguieron el ejemplo poco después, y muchos de ellos también implementaron partes de CSS  2.

Sin embargo, incluso cuando los navegadores web posteriores, de la versión 5, comenzaron a ofrecer una implementación bastante completa de CSS, aún presentaban errores en ciertas áreas. Estaban plagados de inconsistencias, errores y otras peculiaridades . Microsoft Internet Explorer 5.x para Windows , a diferencia del muy diferente IE para Macintosh , tenía una implementación defectuosa del modelo de caja CSS , en comparación con los estándares CSS. Estas inconsistencias y variaciones en la compatibilidad de funciones dificultaban a los diseñadores lograr una apariencia consistente en todos los navegadores y plataformas sin el uso de soluciones alternativas denominadas trucos y filtros CSS. Los errores del modelo de caja de IE para Windows eran tan graves que, cuando se lanzó Internet Explorer 6 , Microsoft introdujo un modo de interpretación CSS compatible con versiones anteriores (" modo de peculiaridades ") junto con un "modo estándar" alternativo y corregido. Otros navegadores que no eran de Microsoft también ofrecían la posibilidad de cambiar de modo. Por lo tanto, se hizo necesario que los autores de archivos HTML se aseguraran de incluir un marcador distintivo especial, "CSS conforme a los estándares", para indicar que su intención era que el CSS se interpretara correctamente, de acuerdo con los estándares, en lugar de estar diseñado para el navegador IE5/Windows, ahora obsoleto . Sin este marcador, los navegadores web con la capacidad de activar el "modo de compatibilidad" redimensionarán los objetos en las páginas web como lo haría IE 5 en Windows, en lugar de seguir los estándares CSS.

Los problemas con la adopción irregular de CSS y las erratas en la especificación original llevaron al W3C a revisar los  estándares CSS 2 y convertirlos en CSS  2.1, que se acercó más a una instantánea funcional del soporte actual de CSS en los navegadores HTML. Algunas  propiedades de CSS 2 que ningún navegador implementó con éxito se eliminaron y, en algunos casos, se modificaron comportamientos definidos para alinear el estándar con las implementaciones existentes predominantes. CSS  2.1 se convirtió en Recomendación Candidata el 25 de febrero de 2004, pero  volvió a ser un Borrador de Trabajo el 13 de junio de 2005, [ 36 ] y solo regresó a ser Recomendación Candidata el 19 de julio de 2007. [ 37 ]

Además de estos problemas, la .cssextensión fue utilizada por un producto de software utilizado para convertir archivos de PowerPoint en archivos de presentación de diapositivas compactas, [ 38 ] por lo que algunos servidores web sirvieron todos .css[ 39 ] como tipo MIME application/x-pointplus[ 40 ] en lugar de text/css.

Prefijos de proveedor

En ocasiones, los proveedores de navegadores individuales introdujeron nuevos parámetros antes de su estandarización y universalización. Para evitar interferencias con futuras implementaciones, antepusieron nombres únicos a los parámetros, como por ejemplo -moz-para Mozilla Firefox , -webkit-que recibió el nombre del motor de navegación de Apple Safari , -o-para Opera Browser y -ms-para Microsoft Internet Explorer y las primeras versiones de Microsoft Edge que utilizan EdgeHTML.

En ocasiones, los parámetros con prefijos de proveedor, como -moz-radial-gradienty , -webkit-linear-gradienttienen una sintaxis ligeramente diferente en comparación con sus contrapartes sin prefijo de proveedor. [ 41 ]

Las propiedades con prefijo quedan obsoletas al estandarizarse. Existen programas para añadir automáticamente prefijos a navegadores antiguos e indicar versiones estandarizadas de parámetros con prefijo. Dado que los prefijos se limitan a un pequeño subconjunto de navegadores, eliminarlos permite que otros navegadores reconozcan la funcionalidad. Una excepción son ciertas -webkit-propiedades con prefijo obsoletas, tan comunes y persistentes en la web que otras familias de navegadores han decidido mantener su compatibilidad. [ 42 ]

Instantánea de CSS 2021

CSS cuenta con varios niveles y perfiles. Cada nivel de CSS se basa en el anterior, generalmente añadiendo nuevas características y denotándose [ 43 ] como CSS  1, CSS  2, CSS  3 y CSS  4. Los perfiles suelen ser un subconjunto de uno o más niveles de CSS diseñados para un dispositivo o interfaz de usuario específicos. Actualmente, existen perfiles para dispositivos móviles, impresoras y televisores. Los perfiles no deben confundirse con los tipos de medios, que se añadieron en CSS  2.

CSS 1

La primera especificación CSS que se convirtió en una recomendación oficial del W3C es CSS nivel 1, publicada el 17 de diciembre de 1996. Håkon Wium Lie y Bert Bos son reconocidos como los desarrolladores originales. [ 44 ] [ 45 ] Entre sus capacidades se encuentra el soporte para

  • Propiedades de la fuente, como el tipo de letra y el énfasis.
  • Color del texto, fondos y otros elementos
  • Atributos del texto como el espaciado entre palabras, letras y líneas de texto.
  • Alineación de texto, imágenes, tablas y otros elementos.
  • Margen, borde, relleno y posicionamiento para la mayoría de los elementos.
  • Identificación única y clasificación genérica de grupos de atributos

El W3C ya no mantiene la Recomendación CSS 1. [ 46 ]

CSS 2

La especificación CSS nivel 2 fue desarrollada por el W3C y publicada como recomendación en mayo de 1998. Como superconjunto de CSS  1, CSS  2 incluye una serie de nuevas capacidades como el posicionamiento absoluto, relativo y fijo de elementos y z-index , el concepto de tipos de medios, soporte para hojas de estilo de audio (que posteriormente fueron reemplazadas por los módulos de voz de CSS 3) [ 47 ] y texto bidireccional, y nuevas propiedades de fuente como sombras.

El W3C ya no mantiene la  recomendación CSS 2. [ 48 ]

CSS 2.1

CSS nivel 2 revisión 1, a menudo denominada "CSS 2.1", corrige errores en CSS  2, elimina características con soporte deficiente o que no son totalmente interoperables y añade extensiones de navegador ya implementadas a la especificación. Para cumplir con el proceso del W3C para la estandarización de especificaciones técnicas, CSS  2.1 alternó entre el estado de borrador de trabajo y el de recomendación candidata durante muchos años. CSS 2.1 se convirtió por primera vez en recomendación candidata el 25 de febrero de 2004, pero volvió a ser un borrador de trabajo el 13 de junio de 2005 para su posterior revisión. Regresó a recomendación candidata el 19 de julio de 2007 y luego se actualizó dos veces en 2009. Sin embargo, debido a los cambios y aclaraciones realizados, volvió a ser un borrador de trabajo de última llamada el 7 de diciembre de 2010.

CSS 2.1 pasó a ser una Recomendación Propuesta el 12 de abril de 2011. [ 49 ] Después de ser revisada por el Comité Asesor del W3C, finalmente se publicó como una Recomendación del W3C el 7 de junio de 2011. [ 50 ]

CSS 2.1 estaba previsto como la primera y última revisión del nivel 2, pero en 2015 se empezó a trabajar, con baja prioridad, en CSS 2.2.

CSS 3

A diferencia de CSS  2, que es una única especificación extensa que define diversas características, CSS  3 se divide en varios documentos separados llamados "módulos". Cada módulo añade nuevas capacidades o extiende las características definidas en CSS  2, manteniendo la compatibilidad con versiones anteriores. El trabajo en CSS nivel 3 comenzó aproximadamente al mismo tiempo que la publicación de la  recomendación original de CSS 2. Los primeros borradores de CSS  3 se publicaron en junio de 1999. [ 51 ]

Debido a la modularización, los diferentes módulos tienen diferente estabilidad y estado. [ 52 ]

Algunos módulos tienen el estado de Recomendación Candidata ( CR ) y se consideran moderadamente estables. En la etapa CR , se recomienda a las implementaciones que eliminen los prefijos de proveedor. [ 53 ]

CSS 4

Jen Simmons hablando sobre el estado de CSS en 2019, mientras  se avanzaban varios módulos de CSS 4.

No existe una especificación CSS4, [ 55 ] [ 56 ] porque CSS se ha dividido en muchos módulos separados que se nivelan de forma independiente.

Los módulos que se basan en elementos del nivel 2 de CSS comenzaron en el nivel 3. Algunos de ellos ya han alcanzado el nivel 4 o se están acercando al nivel 5. Otros módulos que definen funcionalidades completamente nuevas, como Flexbox , [ 57 ] han sido designados como nivel 1 y algunos de ellos se están acercando al nivel 2.

El Grupo de Trabajo de CSS a veces publica "Instantáneas", una colección de módulos completos y partes de otros borradores que se consideran lo suficientemente estables como para ser implementados por los desarrolladores de navegadores. Hasta ahora, se han publicado cinco de estos documentos de "mejores prácticas actuales" como Notas, en 2007, [ 58 ] 2010, [ 59 ] 2015, [ 60 ] 2017, [ 61 ] y 2018. [ 62 ]

Dado que estas instantáneas de especificaciones están destinadas principalmente a desarrolladores, ha habido una creciente demanda de un documento de referencia versionado similar dirigido a autores, que presentaría el estado de las implementaciones interoperables tal como se documenta mientras tanto en sitios como Can I Use... [ 63 ] y MDN Web Docs. [ 64 ] Se estableció un Grupo Comunitario del W3C a principios de 2020 para discutir y definir dicho recurso. [ 65 ] El tipo de versionado en sí también está sujeto a debate, lo que significa que el documento, una vez producido, podría no llamarse "CSS4".

Compatibilidad con navegadores

Cada navegador web utiliza un motor de diseño para renderizar páginas web, y la compatibilidad con la funcionalidad CSS no es uniforme entre ellos. Debido a que los navegadores no interpretan CSS a la perfección, se han desarrollado diversas técnicas de codificación para abordar navegadores específicos con soluciones alternativas (conocidas comúnmente como trucos CSS o filtros CSS). La adopción de nuevas funcionalidades en CSS puede verse obstaculizada por la falta de compatibilidad en los principales navegadores. Por ejemplo, Internet Explorer tardó en añadir compatibilidad con muchas características de CSS 3, lo que ralentizó la adopción de dichas características y dañó la reputación del navegador entre los desarrolladores. Además, filteren algunas versiones se utilizó una sintaxis propietaria para la propiedad sin prefijo de proveedor. [ 66 ] Para garantizar una experiencia uniforme para sus usuarios, los desarrolladores web suelen probar sus sitios en múltiples sistemas operativos, navegadores y versiones de navegador, lo que aumenta el tiempo y la complejidad del desarrollo. Se han creado herramientas como BrowserStack para reducir la complejidad del mantenimiento de estos entornos.

Además de estas herramientas de prueba, muchos sitios mantienen listas de compatibilidad de navegadores para propiedades CSS específicas, incluyendo CanIUse y MDN Web Docs . Adicionalmente, CSS 3 define consultas de características, que proporcionan una @supportsdirectiva que permitirá a los desarrolladores seleccionar navegadores compatibles con cierta funcionalidad directamente en su CSS. [ 67 ] El CSS que no es compatible con navegadores antiguos también puede, en ocasiones, ser parcheado mediante polyfills de JavaScript , que son fragmentos de código JavaScript diseñados para que los navegadores se comporten de manera consistente. Estas soluciones alternativas, y la necesidad de admitir funcionalidades de reserva, pueden agregar complejidad a los proyectos de desarrollo y, en consecuencia, las empresas suelen definir una lista de versiones de navegadores que admitirán y las que no.

A medida que los sitios web adoptan estándares de código más recientes que son incompatibles con los navegadores antiguos, estos navegadores pueden quedar inhabilitados para acceder a muchos de los recursos de la web (a veces intencionalmente). [ 68 ] Sin embargo, muchos de los sitios más populares de internet no solo se ven afectados visualmente en navegadores antiguos debido a la escasa compatibilidad con CSS, sino que directamente no funcionan, principalmente debido a la evolución de JavaScript y otras tecnologías web.

Limitaciones

Algunas limitaciones destacadas de las capacidades actuales de CSS incluyen:

No se puede declarar explícitamente un nuevo alcance independientemente de la posición.

Las reglas de alcance para propiedades como z-index buscan el elemento padre más cercano con una declaración `<a> position: absolute` o ` position: relative<b>`. Este acoplamiento extraño tiene efectos no deseados. Por ejemplo, es imposible evitar declarar un nuevo alcance cuando uno se ve obligado a ajustar la posición de un elemento, lo que impide usar el alcance deseado de un elemento padre.

Comportamiento dinámico de pseudoclase no controlable

CSS implementa pseudoclases que permiten cierto grado de retroalimentación del usuario mediante la aplicación condicional de estilos alternativos. Una pseudoclase de CSS, " ", es dinámica (equivalente a "onmouseover" de JavaScript) y tiene potencial para un mal uso (por ejemplo, implementar ventanas emergentes de proximidad del cursor), [ 69 ] pero CSS no tiene capacidad para que un cliente la desactive (no hay una propiedad similar a "disable") o limite sus efectos (no hay valores similares a "nochange" para cada propiedad).:hover

No se pueden nombrar las reglas

No existe una forma de nombrar una regla CSS que permita (por ejemplo) que los scripts del lado del cliente hagan referencia a la regla incluso si su selector cambia.

No se pueden incluir estilos de una regla en otra regla.

Los estilos CSS a menudo deben duplicarse en varias reglas para lograr el efecto deseado, lo que genera mantenimiento adicional y requiere pruebas más exhaustivas. Se propusieron algunas características nuevas de CSS para solucionar esto, pero posteriormente se abandonaron. [ 70 ] [ 71 ] En cambio, los autores pueden obtener esta capacidad utilizando lenguajes de hojas de estilo más sofisticados que se compilan a CSS, como Sass , Less o Stylus .

No se puede seleccionar un texto específico sin modificar el marcado.

Además del pseudoelemento, no se pueden seleccionar rangos de texto específicos sin necesidad de utilizar elementos de marcador de posición.::first-letter

Ventajas

Separación del contenido de la presentación

CSS facilita la publicación de contenido en múltiples formatos de presentación ajustando los estilos según diversos parámetros. Estos parámetros incluyen las preferencias explícitas del usuario (como temas o tamaño de fuente), la compatibilidad con diferentes navegadores web, el tipo de dispositivo utilizado para visualizar el contenido (por ejemplo, ordenador de escritorio, tableta o móvil), la resolución de pantalla, la ubicación geográfica del usuario y muchas otras variables. CSS también permite el diseño responsivo, asegurando que el contenido se adapte dinámicamente a diferentes tamaños y orientaciones de pantalla, mejorando la accesibilidad y la experiencia del usuario en una amplia gama de entornos.

Coherencia en todo el sitio

Cuando CSS se utiliza de forma eficaz, en términos de herencia y "cascada", una hoja de estilo global permite aplicar estilos a todos los elementos del sitio web. Si es necesario modificar o ajustar el estilo de los elementos, estos cambios se pueden realizar editando las reglas de la hoja de estilo global. Antes de CSS, este tipo de mantenimiento era más difícil, costoso y requería mucho tiempo.

Ancho de banda

Una hoja de estilos, interna o externa, especifica el estilo una sola vez para un conjunto de elementos HTML seleccionados por classsu tipo o relación con otros. Esto es mucho más eficiente que repetir la información de estilo en línea para cada aparición del elemento. Una hoja de estilos externa generalmente se almacena en la caché del navegador y, por lo tanto, se puede usar en varias páginas sin recargarlas, lo que reduce aún más la transferencia de datos a través de la red.

Reformateo de página

Con un simple cambio de una línea, se puede usar una hoja de estilos diferente para la misma página. Esto ofrece ventajas en cuanto a accesibilidad, además de permitir adaptar una página o sitio web a diferentes dispositivos. Asimismo, los dispositivos que no pueden interpretar el estilo (como los navegadores antiguos) pueden seguir mostrando el contenido.

Accesibilidad

Sin CSS, los diseñadores web normalmente deben maquetar sus páginas con técnicas como tablas HTML que dificultan la accesibilidad para usuarios con discapacidad visual (véase Diseño web sin tablas §  Accesibilidad ).

Normalización

Marcos de trabajo

Los frameworks CSS son bibliotecas predefinidas que permiten un estilo más sencillo y conforme a los estándares para páginas web mediante el lenguaje de hojas de estilo en cascada (CSS). Algunos frameworks CSS son Blueprint , Bootstrap , Foundation y Materialize. Al igual que las bibliotecas de lenguajes de programación y scripting, los frameworks CSS suelen incorporarse como hojas .css externas referenciadas en el HTML . Proporcionan diversas opciones predefinidas para el diseño y la maquetación de la página web. Aunque muchos de estos frameworks se han publicado, algunos autores los utilizan principalmente para la creación rápida de prototipos o para aprender, y prefieren crear manualmente el CSS adecuado para cada sitio publicado, evitando así la sobrecarga de diseño, mantenimiento y descarga que supone tener muchas funciones sin usar en el estilo del sitio. [ 72 ]<head>

Metodologías de diseño

A medida que aumenta el tamaño de los recursos CSS utilizados en un proyecto, un equipo de desarrollo suele necesitar decidir una metodología de diseño común para mantenerlos organizados. Los objetivos son la facilidad de desarrollo, la facilidad de colaboración durante el desarrollo y el rendimiento de las hojas de estilo implementadas en el navegador. Las metodologías populares incluyen OOCSS (CSS orientado a objetos), ACSS (CSS atómico), CSS (hoja de estilo en cascada orgánica), SMACSS (arquitectura escalable y modular para CSS) y BEM (bloque, elemento, modificador). [ 73 ]

Véase también

Referencias

  1. "Acta de la teleconferencia del 11 de diciembre de 2024" . Blog del Grupo de Trabajo CSS . W3C. 12 de diciembre de 2024. Archivado del original el 16 de enero de 2025. Consultado el 16 de enero de 2025 .
  2. "Guía para desarrolladores de CSS" . MDN Web Docs . Archivado del original el 25/09/2015 . Consultado el 20/04/2026 .
  3. Flanagan, David (18 de abril de 2011). JavaScript: la guía definitiva . Pekín; Farnham: O'Reilly. pág. 1. ISBN  978-1-4493-9385-4OCLC 686709345. JavaScript forma parte de la tríada de tecnologías que todos los desarrolladores web deben aprender: HTML para especificar el contenido de las páginas web, CSS para especificar la presentación de las páginas web y JavaScript para especificar el comportamiento de las páginas web. 
  4. "¿Qué es CSS?" . Consorcio World Wide Web. Archivado del original el 29/11/2010 . Consultado el 01/12/2010 .
  5. Clark, Scott (23 de julio de 2010). "Aplicaciones móviles web del futuro con HTML 5, CSS y JavaScript" . HTML Goodies . HTMLGoodies. Archivado del original el 20 de octubre de 2014. Consultado el 16 de octubre de 2014 .
  6. "Servicio de validación CSS del W3C" . Archivado del original el 14 de febrero de 2011. Consultado el 30 de junio de 2012 .
  7. "Especificación W3C CSS2.1 para pseudoelementos y pseudoclases" . Consorcio World Wide Web. 7 de junio de 2011. Archivado del original el 30 de abril de 2012. Recuperado el 30 de abril de 2012 .
  8. "Selectores" . Especificación de hojas de estilo en cascada, nivel 2, revisión 1 (CSS 2.1) . W3C. Archivado del original el 23 de abril de 2006.
  9. "Selectores Nivel 3" . W3C. Archivado del original el 3 de junio de 2014. Consultado el 30 de mayo de 2014 .
  10. "Módulo de sintaxis CSS Nivel 3" . W3C . Archivado del original el 1 de octubre de 2023. Consultado el 1 de octubre de 2023 .
  11. "Especificación W3C CSS2.1 para conjuntos de reglas, bloques de declaración y selectores" . Consorcio World Wide Web. 7 de junio de 2011. Archivado del original el 28 de marzo de 2008. Consultado el 20 de junio de 2009 .
  12. "Tabla completa de propiedades" . W3C. Archivado del original el 30/05/2014 . Consultado el 30/05/2014 .
  13. "Índice de propiedades CSS" . W3C . Consultado el 9 de agosto de 2020 .
  14. "Color CSS" . MDN Web Docs. 5 de abril de 2024. Archivado del original el 27 de marzo de 2024. Consultado el 5 de abril de 2024 .
  15. "6.1 Unidades de longitud" . Hojas de estilo en cascada, nivel 1. 17 de diciembre de 1996. Archivado del original el 14 de junio de 2019. Recuperado el 20 de junio de 2019 .
  16. "5. Unidades de distancia: el tipo < longitud > " . Módulo de valores y unidades CSS , nivel 3. 6 de junio de 2019. Archivado del original el 7 de junio de 2019. Consultado el 20 de junio de 2019 .
  17. Grupo de Trabajo HTML del W3C. "HTML 5. Un vocabulario y API asociadas para HTML y XHTML" . Consorcio World Wide Web . Archivado del original el 15 de julio de 2014. Recuperado el 28 de junio de 2014 .
  18. 1 2 Meyer, Eric A. (2006). Cascading Style Sheets: The Definitive Guide (3.ª ed.). O'Reilly Media, Inc. ISBN  0-596-52733-0Archivado del original el 15 de febrero de 2014. Consultado el 16 de febrero de 2014 .
  19. "Asignación de valores de propiedad, cascada y herencia" . Archivado del original el 11 de junio de 2014. Consultado el 10 de junio de 2014 .
  20. "¿Puede una clase CSS heredar de una o más clases?" . StackOverflow . Archivado del original el 14-10-2017 . Consultado el 10-09-2017 .
  21. "Propiedades abreviadas" . Tutorial . Desarrolladores de Mozilla. 07/12/2017. Archivado del original el 30/01/2018 . Consultado el 30/01/2018 .
  22. 1 2 3 Bos, Bert; et al. (7 de diciembre de 2010). "9.3 Esquemas de posicionamiento" . Especificación de hojas de estilo en cascada de nivel 2, revisión 1 (CSS 2.1) . W3C. Archivado del original el 18 de febrero de 2011. Recuperado el 16 de febrero de 2011 . 
  23. Holzschlag, Molly E (2005). Introducción a HTML y CSS en primavera . Pearson Education, Inc. ISBN 0-13-185586-7.
  24. 1 2 Lie, Hakon W (10 de octubre de 1994). "Hojas de estilo HTML en cascada: una propuesta" (Propuesta) . CERN. Archivado del original el 4 de junio de 2014. Recuperado el 25 de mayo de 2014 .
  25. 1 2 3 4 5 6 Lie, Håkon Wium ; Bos, Bert (1999). Cascading Style Sheets, designing for the Web . Addison Wesley. ISBN 0-201-59625-3. Consultado el 23 de junio de 2010 .
  26. "Hojas de estilo en cascada, nivel 1" . Consorcio World Wide Web. Archivado del original el 9 de abril de 2014. Consultado el 7 de marzo de 2014 .
  27. 1 2 3 Bos, Bert (14 de abril de 1995). "Hojas de estilo simples para SGML y HTML en la web" . Consorcio World Wide Web. Archivado del original el 23 de septiembre de 2009. Recuperado el 20 de junio de 2010 .
  28. 1 2 3 "Hojas de estilo en cascada" . Universidad de Oslo. Archivado del original el 6 de septiembre de 2006. Consultado el 3 de septiembre de 2014 .
  29. 1 2 Petrie, Charles; Cailliau, Robert (noviembre de 1997). "Entrevista a Robert Cailliau sobre la propuesta de la WWW: "Cómo sucedió realmente"." . Instituto de Ingenieros Eléctricos y Electrónicos . Archivado del original el 6 de enero de 2011 . Consultado el 18 de agosto de 2010 .
  30. Bos, Bert (31 de marzo de 1995). "Propuesta de hoja de estilo basada en flujo" . Archivado del original el 12 de octubre de 2014. Recuperado el 3 de septiembre de 2014 .
  31. Nielsen, Henrik Frystyk (7 de junio de 2002). "Libwww Hackers" . Consorcio World Wide Web. Archivado del original el 2 de diciembre de 2009. Recuperado el 6 de junio de 2010 .
  32. "Yves Lafon" . Consorcio World Wide Web. Archivado del original el 24 de junio de 2010. Recuperado el 17 de junio de 2010 .
  33. "El equipo del W3C: Tecnología y sociedad" . Consorcio World Wide Web. 18 de julio de 2008. Archivado del original el 28 de mayo de 2010. Consultado el 22 de enero de 2011 .
  34. Lou Montulli ; Brendan Eich ; Scott Furman ; Donna Converse ; Troy Chevalier (22 de agosto de 1996). "Hojas de estilo basadas en JavaScript" . W3C. Archivado del original el 27 de mayo de 2010. Recuperado el 23 de junio de 2010 .
  35. "Software CSS" . W3C. Archivado del original el 25/11/2010 . Consultado el 15/01/2011 .
  36. Anne van Kesteren . "CSS 2.1 : blog de Anne" . Archivado desde el original el 10 de diciembre de 2005 . Consultado el 16 de febrero de 2011 . 
  37. "Archivo de noticias del W3C en 2007" . Consorcio World Wide Web . 21 de diciembre de 2007. Archivado del original el 28 de junio de 2011. Consultado el 16 de febrero de 2011 .
  38. Nitot, Tristan (18 de marzo de 2002). "Tipo MIME incorrecto para archivos CSS" . Centro de desarrolladores de Mozilla . Mozilla . Archivado del original el 20 de mayo de 2011. Recuperado el 20 de junio de 2010 .
  39. McBride, Don (27 de noviembre de 2009). "Tipos de archivo" . Archivado del original el 29 de octubre de 2010. Recuperado el 20 de junio de 2010 .
  40. "detalles de la extensión de archivo css" . Base de datos de extensiones de archivo. 12 de marzo de 2010. Archivado del original el 18 de julio de 2011. Consultado el 20 de junio de 2010 .
  41. Kyrnin, Jennifer (12 de noviembre de 2019). "¿Qué son los prefijos de proveedor o navegador CSS?" . Lifewire . Archivado del original el 30 de noviembre de 2020. Consultado el 20 de abril de 2026 .
  42. "Estándar de compatibilidad" . WHATWG . 24 de enero de 2024. Archivado del original el 4 de febrero de 2024.
  43. "CSS Snapshot 2023 – 2.4. Niveles CSS" . W3C . 7 de diciembre de 2023. Archivado del original el 8 de febrero de 2024.
  44. Bos, Bert; Wium Lie, Håkon (1997). Cascading style sheets: designing for the Web (1.ª ed. impresa). Harlow, Inglaterra; Reading, MA: Addison Wesley Longman. ISBN  0-201-41998-X.
  45. W3C : Hojas de estilo en cascada, nivel 1. Archivado el 9 de febrero de 2011 en la especificación CSS 1 de Wayback Machine.
  46. W3C : Especificación de hojas de estilo en cascada de nivel 1. Archivado el 11/02/2011 en Wayback Machine. Especificación de CSS de nivel 1.
  47. "Hojas de estilo auditivas" . W3C. Archivado del original el 26 de octubre de 2014. Consultado el 26 de octubre de 2014 .
  48. W3C : Hojas de estilo en cascada, nivel 2 Archivado el 16/01/2011 en Wayback Machine Especificación CSS 2 (recomendación de 1998) 
  49. W3C : Hojas de estilo en cascada, nivel 2, revisión 1. Archivado el 9 de noviembre de 2011 en Wayback Machine. Especificación CSS 2.1 (Recomendación propuesta por el W3C).
  50. W3C: El estándar de hojas de estilo en cascada presume de una interoperabilidad sin precedentes. Archivado el 10 de junio de 2011 en Wayback Machine.
  51. Bos, Bert (18 de febrero de 2011). "Descripciones de todas las especificaciones CSS" . Consorcio World Wide Web . Archivado del original el 31 de marzo de 2011. Recuperado el 3 de marzo de 2011 .
  52. Bos, Bert (26 de febrero de 2011). "Trabajo actual de CSS" . Consorcio World Wide Web . Archivado del original el 3 de marzo de 2011. Recuperado el 3 de marzo de 2011 .
  53. Etemad, Elika J. (12 de diciembre de 2010). "Instantánea de hojas de estilo en cascada (CSS) 2010" . Consorcio World Wide Web . Archivado del original el 16 de marzo de 2011. Recuperado el 3 de marzo de 2011 .
  54. "Todas las especificaciones CSS" . W3C. 22 de mayo de 2014. Archivado del original el 30 de mayo de 2014. Consultado el 30 de mayo de 2014 .
  55. Atkins, Tab Jr. "Una palabra sobre CSS4" . Archivado del original el 31 de octubre de 2012. Recuperado el 18 de octubre de 2012 .
  56. Andrew, Rachel. "Por qué no existe CSS4: explicación de los niveles CSS" . Archivado del original el 8 de julio de 2025. Consultado el 28 de septiembre de 2025 .
  57. "Módulo CSS Flexible Box Layout Nivel 1" . W3C. 19 de noviembre de 2018. Archivado del original el 19 de octubre de 2012. Recuperado el 18 de octubre de 2012 .
  58. "Instantánea de hojas de estilo en cascada (CSS) 2007" . 12 de mayo de 2011. Archivado del original el 8 de agosto de 2016. Recuperado el 18 de julio de 2016 .
  59. "Instantánea de hojas de estilo en cascada (CSS) 2010" . 12 de mayo de 2011. Archivado del original el 16 de marzo de 2011. Recuperado el 3 de marzo de 2011 .
  60. "CSS Snapshot 2015" . W3C . 13 de octubre de 2015. Archivado del original el 27 de enero de 2017. Consultado el 13 de febrero de 2017 .
  61. "CSS Snapshot 2017" . W3C . 31 de enero de 2017. Archivado del original el 13 de febrero de 2017. Consultado el 13 de febrero de 2017 .
  62. "CSS Snapshot 2018" . W3C . 22 de enero de 2019. Archivado del original el 1 de febrero de 2019. Consultado el 2 de enero de 2019 .
  63. "CSS" . ¿Puedo usar...? Tablas de soporte para HTML5, CSS3, etc. Archivado del original el 19/02/2018 . Recuperado el 26/01/2019 .
  64. "CSS" . MDN Web Docs . 21 de julio de 2023. Archivado del original el 26 de noviembre de 2023.
  65. "Llamada para participar en el grupo comunitario CSS4" . W3C . 24 de febrero de 2020. Archivado del original el 10 de febrero de 2023. Consultado el 27 de febrero de 2020 .
  66. Lazaris, Louis (28-04-2010). "Soluciones CSS3 para Internet Explorer" . Smashing Magazine . Archivado del original el 12-10-2016 . Recuperado el 12-10-2016 .
  67. Simmons, Jen (17 de agosto de 2016). "Uso de consultas de características en CSS" . Mozilla Hacks . Archivado del original el 11 de octubre de 2016. Recuperado el 12 de octubre de 2016 .
  68. Hutchinson, Lee (2019). "Una última mirada a la web con Internet Explorer 6" . Ars Technica . Archivado del original el 12 de octubre de 2016. Consultado el 12 de octubre de 2016 .
  69. "Ventanas emergentes CSS puras" . meyerweb.com. Archivado del original el 9 de diciembre de 2009. Consultado el 19 de noviembre de 2009 .
  70. Pestaña Atkins Jr. "Regla de aplicación CSS" . GitHub. Archivado del original el 22 de febrero de 2016. Consultado el 27 de febrero de 2016 .
  71. "Por qué abandoné @apply — Autocompletado de pestañas" .
  72. Cederholm, Dan; Ethan Marcotte (2009). CSS artesanal: Diseño web más robusto . New Riders. pág. 114. ISBN  978-0-321-64338-4Archivado del original el 20 de diciembre de 2012. Consultado el 19 de junio de 2010 .
  73. Antti, Hiljá. "OOCSS, ACSS, BEM, SMACSS: ¿qué son? ¿Cuál debo usar?" . clubmate.fi . Hiljá. Archivado del original el 2 de junio de 2015 . Consultado el 2 de junio de 2015 .

Lecturas adicionales

  • Meyer, Eric A.; Weyl, Estelle (2023). Cascading Style Sheets: The Definitive Guide, Fifth Edition . O'Reilly Media, Inc. ISBN 978-1-09-811761-0.
  • Grant, Keith J. (2018). CSS en profundidad . Manning Publications Co. ISBN 978-1-61729-345-0.
  • Referencia CSS de MDN
  • MDN Introducción a CSS
  • Sitio web oficialEdita esto en Wikidata
Obtenido de " https://en.wikipedia.org/w/index.php?title=CSS&oldid=1363323587#CSS_3 "