Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La versión en inglés de esta especificación es la única con valor normativo y puede encontrarse en:
http://www.w3.org/Style/LieBos2e/enter/
Capítulo 2
CSS
Este es el capítulo 2 del libro Cascading Style Sheets, designing for the Web, escrito por Håkon
Wium Lie y Bert Bos (2da edición, 1999, Addison Wesley, ISBN 0-201-59625-3)
Para comenzar a utilizar Existen dos maneras de crear CSS. Puede utilizar un editor de texto
CSS, ni siquiera tiene que normal y escribir las hojas de estilo "a mano" o utilizar una herramienta
escribir hojas de estilo. El
dedicada, por ejemplo una aplicación de diseño de página web, que admita
capítulo 16 le mostrará
cómo señalar hojas de estilo CSS. Las herramientas dedicadas le permiten crear hojas de estilo sin aprender
existentes en la Web. la sintaxis del lenguaje CSS. Sin embargo, en muchas casos, el diseñador
querrá retocar la hoja de estilo a mano posteriormente; por lo tanto, le
recomendamos que aprenda a escribir y a editar CSS a mano. ¡Comencemos!
H1 { color: green }
Lo que usted ve arriba es una sencilla regla de CSS que contiene una regla.
Una regla es una declaración sobre un aspecto estilístico de uno o más
elementos. Una hoja de estilo es un conjunto de una o más reglas que se
www.spanish-translator-services.com/espanol/t/CSS.htm 1/17
1/2/2021 Capítulo 2 CSS
Figura 2.1
ESPECIFICACIONES
Cascading Style Sheets (Hojas de estilo en cascada) se describe formalmente
DE CSS en dos especificaciones desde W3C: CSS1 y CSS2. CSS1 se emitió en
www.spanish-translator-services.com/espanol/t/CSS.htm 2/17
1/2/2021 Capítulo 2 CSS
http://www.w3.org/TR/REC-CSS2
Figura 2.2Esquema de
una regla.
www.spanish-translator-services.com/espanol/t/CSS.htm 3/17
1/2/2021 Capítulo 2 CSS
Todas las declaraciones deben estar incluidas dentro del par de llaves. El punto
y coma separa las declaraciones y también puede aparecer, aunque no tiene
porqué, al final de la última declaración. Asimismo, a fin de facilitar la lectura de
su código, le sugerimos ubicar a cada una de las declaraciones en su propia
línea, tal como lo hicimos aquí. (Los navegadores no lo tomarán en cuenta;
simplemente ignorarán todos los espacios en blanco adicionales y las
divisiones de líneas).
Ahora ya conoce los conceptos básicos sobre cómo crear hojas de estilo y
reglas de CSS. Sin embargo, aún no ha terminado. Para que la hoja de estilo
tenga algún efecto, usted tiene que "pegar" su hoja de estilo al documento
HTML.
Para que la hoja de estilo afecte al documento HTML, ésta debe estar "pegada"
al documento. Es decir, la hoja de estilo y el documento HTML deben
combinarse de modo que puedan trabajar en conjunto para presentar el
documento. Esto se puede hacer de cuatro maneras:
</HTML>
Observe que el elemento style se coloca después del elemento title y antes del
elemento body. El título del documento no aparece en el lienzo, de modo que
los estilos de CSS no le afectan.
El contenido de un elemento style constituye una hoja de estilo. Sin
embargo, mientras que el contenido de dichos elementos como h1, p y ul
aparece en el lienzo, el contenido de un elemento style no aparece en éste. En
su lugar, lo que aparece en el lienzo es el efecto del contenido del elemento
style, la hoja de estilo. Por lo tanto, no ve "{ color: green }" en su pantalla; en
cambio, ve dos elementos h1 de color verde. No se agregaron reglas que
afecten a los demás elementos, de modo que esos elementos aparecen con el
color predeterminado del navegador.
NAVEGADORES Y CSS
www.spanish-translator-services.com/espanol/t/CSS.htm 5/17
1/2/2021 Capítulo 2 CSS
Para conocer las Para que CSS funcione tal como se describe en este libro, debe utilizar un
generalidades actualizadas navegador mejorado con CSS, es decir, un navegador que admita CSS. El
de los navegadores
navegador mejorado con CSS reconocerá el elemento style como un
disponibles, consulte la
página de generalidades de contenedor de la hoja de estilo y presentará el documento en consecuencia. La
W3C mayoría de los navegadores que se distribuyen en la actualidad admiten CSS,
por ejemplo Microsoft Internet Explorer 4 (IE4), Netscape Navigator 4 (NS4) y
Opera 3.5 (O3.5). Según cálculos prudentes, más de la mitad de las personas
que navegan en la Web utilizan un navegador mejorado con CSS y las cifras
aumentan sin parar. Es probable que las personas con las que se comunica
tengan navegadores mejorados con CSS. De no ser así, déles un motivo para
actualizarse.
La mejor fuente de Desafortunadamente, no todas las implementaciones de CSS son
información sobre cómo los perfectas. Cuando comience a experimentar con las hojas de estilo, pronto
diferentes navegadores
observará que cada navegador viene con un conjunto de errores y limitaciones.
admiten CSS son los
cuadros de WebReview En general, los navegadores más recientes funcionan mejor que los más
antiguos. IE4 y O3.5 se encuentran entre los mejores y el próximo ofrecimiento
de Netscape, Gecko con nombre de código, también promete brindar una
compatibilidad con CSS notablemente mejorada.
Aquellos que no utilizan navegadores mejorados con CSS pueden, no
obstante, leer páginas que usan hojas de estilo. CSS fue diseñado con mucha
atención para que todo el contenido permanezca visible incluso si el navegador
no conoce nada sobre CSS. Algunos navegadores, como la versión 2 y 3 de
Navigator de Netscape, no admiten hojas de estilo, pero conocen lo suficiente
sobre el elemento style como para ignorarlo por completo. Después de la
compatibilidad con las hojas de estilo, éste es el comportamiento correcto.
Sin embargo, otros navegadores que no conocen el elemento style, como
Navigator 1 de Netscape y Microsoft Internet Explorer 2, ignorarán las etiquetas
style pero mostrarán el contenido del elemento style . Por lo tanto, el usuario
terminará con la hoja de estilo impresa en la parte superior del lienzo. Al
momento de la escritura, únicamente un bajo porcentaje de usuarios de la Web
experimentarán este problema. A fin de evitarlo, puede colocar su hoja de estilo
dentro de un comentario HTML, que analizamos en el capítulo 1. Dado que los
comentarios no se muestran en la pantalla, si coloca su hoja de estilo dentro de
un comentario HTML, evitará que los navegadores más antiguos muestren el
contenido del elemento style. Los navegadores mejorados con CSS conocen
esta trampa y tratarán el contenido del elemento style como una hoja de estilo.
Recuerde que los comentarios HTML comienzan con <!-- y finalizan con --
>. A continuación, se incluye un extracto del ejemplo de códigos anterior que
muestra cómo se escribe una hoja de estilo en un comentario HTML. El
comentario encierra el contenido del elemento style únicamente:
<HTML>
<BODY>
..
</BODY>
</HTML>
CSS también tiene su propio
conjunto de comentarios
También resulta necesario comunicarle al navegador que usted está trabajando
que usted puede utilizar con hojas de estilo CSS. Actualmente, CSS es el único lenguaje de hojas de
www.spanish-translator-services.com/espanol/t/CSS.htm 6/17
1/2/2021 Capítulo 2 CSS
dentro de la hoja de estilo. estilo que está en uso con documentos HTML y no se espera que esto cambie.
El comentario de CSS En el caso de XML, la situación podría ser diferente. Pero así como existe más
comienza con "/*" y finaliza
de un formato de imagen (se nos ocurren GIF, JPEG y PNG), podría haber más
con "*/." (Aquellos que están
familiarizados con el de un lenguaje de hoja de estilo. Por lo tanto, comunicarles a los navegadores
lenguaje de programación C que están tratando con CSS constituye un buen hábito. (De hecho, HTML se lo
los reconocerán). Las reglas exige). Esto se realiza con el atributo type del elemento style. El valor de type
de CSS que se encuentran indica qué tipo de hoja de estilo se está usando. En el caso de CSS, ese valor
dentro de un comentario de es "text/css". A continuación, se incluye un extracto del documento de muestra
CSS no tendrán ningún
anterior que indica cómo escribiría esto (en combinación con el uso del
efecto sobre la presentación
del documento. comentario HTML):
<HTML>
..
</BODY>
</HTML>
<BODY>
<H1>Página de inicio de Bach</H1>
<P>Johann Sebastian Bach fue un
<STRONG>compositor</STRONG> prolífico. Entre sus
obras, se incluyen:
<UL>
www.spanish-translator-services.com/espanol/t/CSS.htm 7/17
1/2/2021 Capítulo 2 CSS
<LI>el Oratorio de Navidad
</UL>
</BODY>
</HTML>
Sin embargo, la mayoría de los documentos HTML son más complejos que
nuestro documento de muestra y su hoja de estilo pronto se extenderá. Existe
una manera mejor y más corta. En lugar de configurar el estilo de cada tipo de
elemento, lo configuramos en su antecesor en común, el elemento body:
<STYLE TYPE="text/css">
Dado que otros elementos heredan propiedades del elemento body, todos ellos
heredarán el color verde (figura 2.4).
www.spanish-translator-services.com/espanol/t/CSS.htm 8/17
1/2/2021 Capítulo 2 CSS
ANULACIÓN DE LA HERENCIA
En el ejemplo anterior, a todos los elementos se les asignó el mismo color por
medio de la herencia. A veces, sin embargo, los hijos no se parecen a sus
padres. No es sorprendente que CSS también explique esto. Supongamos que
le gustaría que los elementos h1 sean azules mientras que el resto permanezca
en verde. Esto se expresa fácilmente en CSS:
<STYLE TYPE="text/css">
BODY { color: green }
H1 { color: navy }
</STYLE>
Dado que h1 es un elemento hijo de body (y, por lo tanto, hereda de body), las
dos reglas de la hoja de estilo anterior entran en conflicto. El primero de ellos
configura el color del elemento body y mediante ello también el color de h1 por
medio de la herencia, mientras que el segundo configura el color
específicamente en el elemento h1. ¿Qué regla ganará? Vamos a descubrirlo:
(pruébelo)
El motivo por el que la segunda regla gana es que es más específica que la
primera. La primera regla es muy general; afecta a todos los elementos que
aparecen en el lienzo. La segunda regla afecta únicamente a los elementos h1
del documento y es, por lo tanto, más específica.
Si CSS hubiera sido un lenguaje de programación, el orden en el cual las
reglas se hubieran especificado determinaría cuál de ellas ganaría. CSS no es
un lenguaje de programación y el orden es irrelevante en el ejemplo anterior. El
resultado es exactamente el mismo si utilizamos esta hoja de estilo:
<STYLE TYPE="text/css">
H1 { color: navy }
BODY { color: green }
</STYLE>
CSS ha sido diseñado para resolver conflictos entre las reglas de hojas de
estilo como la anterior. La especificación es un aspecto de eso. Puede
encontrar más información en el capítulo 15: "Función en cascada y herencia".
www.spanish-translator-services.com/espanol/t/CSS.htm 9/17
1/2/2021 Capítulo 2 CSS
Como regla general, las propiedades en CSS heredan de los elementos padre
a los elementos hijo tal como se describe en los ejemplos anteriores. Sin
embargo, algunas propiedades no heredan y siempre existe un buen motivo
para ello. Usaremos la propiedad background (descrita en el capítulo 11) como
ejemplo de una propiedad que no hereda.
Digamos que quiere configurar una imagen de fondo para una página. Este
es un efecto común en la Web. En CSS, puede escribir:
<HTML>
(pruébelo)
www.spanish-translator-services.com/espanol/t/CSS.htm 10/17
1/2/2021 Capítulo 2 CSS
La regla anterior configura la fuente para los elementos h1. La primera parte del
valor (36pt) configura el tamaño de la fuente en 36 puntos. Un "punto" es una
unidad de medida tipográfica que ha sobrevivido a la era digital. En el próximo
capítulo, le comentaremos por qué debe usar la unidad "em" en lugar de "pt",
pero por ahora centrémonos en los puntos. La segunda parte del valor (serif) le
comunica al navegador que utilice una fuente con serifs (los pequeños ganchos
que aparecen al final de los trazos, el capítulo 5 brindará información sobre
ello). Las fuentes serif más decoradas se adaptan muy bien a la página de
inicio de Bach, dado que las modernas fuentes de sans serif (fuentes sin trazos
terminales) no se utilizaban en su tiempo. Este es el resultado:
(pruébelo)
A veces, sólo quiere configurar uno de éstos. Por ejemplo, quizás desee
inclinar el texto en algunos elementos. Aquí incluimos un ejemplo:
UL { font-style: italic }
www.spanish-translator-services.com/espanol/t/CSS.htm 11/17
1/2/2021 Capítulo 2 CSS
(pruébelo)
(pruébelo)
</HTML>
(pruébelo)
Como puede ver, el navegador ha agregado espacio en todos los lados del
texto citado. En CSS, este espacio se denomina "márgenes" y todos los
elementos tienen márgenes en los cuatro lados. Las propiedades se
denominan: margin-top (margen superior), margin-right (margen derecho),
margin-bottom (margen inferior) y margin-left (margen izquierdo). Puede
cambiar la forma en que el elemento blockquote se muestra al escribir una
pequeña hoja de estilo:
BLOCKQUOTE {
margin-top: 1em;
margin-right: 0em;
margin-bottom: 1em;
margin-left: 0em;
font-style: italic;
}
www.spanish-translator-services.com/espanol/t/CSS.htm 13/17
1/2/2021 Capítulo 2 CSS
(pruébelo)
Así como font es una propiedad de atajo que sirve para configurar de una sola
vez varias propiedades relacionadas con las fuentes, margin es una propiedad
de atajo que configura todas las propiedades de los márgenes. Por lo tanto, el
ejemplo anterior puede escribirse así:
BLOCKQUOTE {
margin: 1em 0em 1em 0em;
font-style: italic;
}
La primera parte del valor (1em) se asigna al margen superior. Desde ahí, se
disponen en el sentido de las agujas del reloj: 0em se asigna a margin-right,
1em se asigna a margin-bottom y 0em se asigna a margin-left.
Al configurar el margen izquierdo en cero, el texto citado requiere de un
mayor estilo para configurarlo de manera separada al resto del texto. La
configuración de font-style en cursiva resulta útil y el agregado de un color de
fondo amplía además la cita:
BLOCKQUOTE {
margin: 1em 0em 1em 0em;
font-style: italic;
background: #EDB;
}
El resultado es:
(pruébelo)
el área de los márgenes, no utiliza el color de fondo del elemento. CSS tiene
otro tipo de espacio, que se denomina padding (relleno) y que utiliza el color de
fondo del elemento. En otros sentidos, las propiedades padding se asemejan a
las propiedades de márgenes: agregan espacio alrededor del elemento.
Agreguemos algo de padding a la cita:
BLOCKQUOTE {
margin: 1em 0em 1em 0em;
font-style: italic;
background: #EDB;
padding: 0.5em;
}
(pruébelo)
www.spanish-translator-services.com/espanol/t/CSS.htm 15/17
1/2/2021 Capítulo 2 CSS
(pruébelo)
Los enlaces están subrayados, tal como lo hemos especificado, pero también
aparecen en color azul, que no lo hemos especificado. Cuando los autores no
especifican todos los estilos posibles, los navegadores utilizan estilos
predeterminados para completar las diferencias. La interacción entre los estilos
de los autores, los estilos predeterminados del navegador y los estilos de los
usuarios (las propias preferencias del usuario) es otro ejemplo de las reglas de
resolución de conflictos de CSS. Se denomina la cascada (la "C" de CSS).
Analizaremos la cascada a continuación.
El selector (A:link) se merece una consideración especial. Es probable que
reconozca "A" como un elemento HTML, pero la última parte es nueva. ":link"
es una de las tantas denominadas pseudo-clases de CSS. Las pseudo-clases
se utilizan para darle estilo a elementos basados en la información que aparece
por fuera del propio documento. Por ejemplo, el autor del documento no puede
saber si un determinado enlace será visitado o no. Las pseudo-clases se
describen en detalle en el capítulo 4 y daremos únicamente algunos ejemplos
aquí:
A:visited { text-decoration: none }
Esta regla le da estilo a los enlaces visitados, tal como A:link dio estilo a los
enlaces no visitados. A continuación, incluimos un ejemplo un poco más
complejo:
A:link, A:visited { text-decoration: none }
A:hover { background: cyan }
(pruébelo)
Una función fundamental de CSS consiste en que más de una hoja de estilo
puede influenciar la presentación de un documento. Esta función se conoce
como en cascada porque se piensa que las diferentes hojas de estilo vienen en
serie. En cascada es una función fundamental de CSS, porque nos dimos
cuenta de que es muy probable que cualquier documento puede terminar con
hojas de estilo de múltiples fuentes: el navegador, el diseñador y posiblemente
el usuario.
En el último grupo de ejemplos, vio que el color del texto de los enlaces se
tornó azul sin que eso se especificase en la hoja de estilo. Asimismo, el
navegador sabía cómo dar formato a los elementos blockquote y h1 sin que se
lo comunicasen de manera explícita. Todo lo que el navegador conoce acerca
del formato se almacena en la hoja de estilo predeterminada del navegador y
se fusiona con las hojas de estilo de los autores y de los usuarios cuando se
muestra el documento.
Hemos sabido durante años que los diseñadores quieren desarrollar sus
propias hojas de estilo. Sin embargo, descubrimos que los usuarios también
quieren tener la opción de influenciar la presentación de sus documentos.
Gracias a CSS, pueden hacerlo mediante el suministro de una hoja de estilo
personal que se fusionará con las hojas de estilo del navegador y del
diseñador. El navegador resuelve todo tipo de conflicto entre las distintas hojas
de estilo. Por lo general, la hoja de estilo del diseñador será el reclamo más
fuerte en el documento, seguida por el valor predeterminado del usuario y luego
del navegador. Sin embargo, el usuario puede argumentar que una regla es
muy importante y que después anulará los estilos de los autores y de los
navegadores.
Tratamos en detalle la función en cascada en el capítulo 15: "Función en
cascada y herencia". Antes de eso, queda mucho por aprender sobre las
fuentes, el espacio y los colores.
www.spanish-translator-services.com/espanol/t/CSS.htm 17/17