Planeando los estilos CSS
Ejemplos de uso de CSS y como planear su uso en nuestros sitios
En primer lugar, re-definiremos las etiquetas
html necesarias. Esto consiste en dar ciertos atributos a determinada etiqueta,
digamos, <h2>, que
se mantendrán siempre que la utilicemos. Podemos definir, por ejemplo, que todo
el texto contenido en las etiquetas <h2>
sea de color rojo, en negrita, subrayado, con una fuente arial,
helvetica, sans-serif, de un tamaño de 22 píxeles, y centrado.
Cada vez que incluyamos código como:
<h2>Título aquí</h2>
éste se mostrará de esa forma:
Título aquí
La buena noticia es que no sólo podemos
definir etiquetas de este tipo, sino aquéllas exclusivamente estructurales,
como <body>, que ofrece
la ventaja de que no tendremos que usar atributos propietarios para establecer
los márgenes del documento, por ejemplo. No habrá que recurrir a la conocida
solución “cross-browser” de incluir
los atributos marginwidth y marginheight, propietarios de
Netscape, o leftmargin, rightmargin, bottommargin
o topmargin, propietarios de Internet Explorer.
Esto arrojará los respectivos errores de “etiquetas no válidas” al
utilizar una herramienta de validación del documento, como la de la W3C.
Sencillamente establecemos una regla margin: 0px;
para <body>.
Además, no tendremos que escribir una regla de tamaño
de fuente para todos los estilos, siempre y cuando la escribamos una sola vez
para <body>: los demás elementos,
puesto que están subordinados a <body>, lo heredarán. Así,
si hay que especificar un tamaño diferente al de <body>, éste se hará individualmente para cada caso.
He aquí las redefiniciones (notar que no
hace falta incluir una etiqueta de apertura de la hoja de estilo como <style
type:”text/css”>, ni tampoco la etiqueta de comentario
que usualmente le sigue a ésta, como <!–; de hecho, sería un error):
body { font-family: arial, helvetica, sans-serif; font-size: 12px; margin: 0px; } a:link { color: #0000cc; font-weight: bold; text-decoration: none; } a:visited { color: #990099; font-weight: bold; text-decoration: none; } a:active { color: #ff9900; font-weight: bold; text-decoration: none; } a:hover { color: #3333ff; text-decoration: underline; } u { color: #ff0000; text-decoration: none; } i { font-size: 11px; text-decoration: oblique; } em { font-weight: bold; color: #666666; text-decoration: none; }
Podríamos dividir estos estilos en tres
grupos. En primer lugar, el ya notado body. En segundo, la serie de a, que apuntan
a los links, los anchors. Estos estilos se llaman “seudoclases” (pseudo-classes). Especifican los colores
de los links, es decir, todas las etiquetas <a href=” “>,
con a:link; los colores de los
links visitados, con a:visited;
los de los activos (al momento de hacerles click) con a:active;
y a:hover es un pequeño truco
que cambia el color del link cuando posamos el mouse sobre él, al modo de las
“imágenes de sustitución” con Javascript. Para todos, notar la regla text-decoration.
Los navegadores suelen tener la opción predeterminada de mostrar los links siempre
subrayados (aunque se lo podemos cambiar). Al especificar text-decoration:
none; obviamos esta opción, y los links se mostrarán sin subrayado,
pero, al posar el mouse sobre ellos, la regla
text-decoration: underline; de a:hover volverá a subrayarlos, dejándolos como antes si sacamos el mouse de ellos. Es
un efecto que se usa mucho en la Web, y lo recomiendo porque queda muy bien.
El tercer grupo son las redefiniciones de
las etiquetas HTML de énfasis
de texto, u, i, y em. En este caso, podemos utilizarlas con fines propios.
Por ejemplo, en este caso redefino u para que sirva como énfasis de color, como
en este documento se usa para resaltar los nombres de navegadores y palabras
en inglés. Notar que otra vez text-decoration
se usa para evitar el subrayado predeterminado que por ley le corresponde a
la etiqueta html <u>. A
i la utilizo para una tipografía del tipo “nota al pie”. Notar
que incluye un tamaño menor al general. Finalmente, em la utilizo para una tipografía especial de tono gris y en negrita. La incluyo
como ejemplo del uso que le podemos dar a este tipo de redefiniciones: éstas
son muy útiles para dar variedad a la tipografía sin necesidad de usar elementos
de bloque. u puede ser usada en
cualquier contexto, como elemento “hijo” de otro que tenga cualesquiera tamaño
de fuente: u sólo se aplicará
a aquél fragmento deseado, cambiándole sólo el color y heredando tamaño y otros
atributos del elemento de bloque al que pertenezca. i
y em, al contrario, están pensados
para elementos de bloque (como en este documento pasa con, por ejemplo, la nota
aclaratoria bajo el título principal: ver el principio de este documento), aunque
pueden ser usados de esa forma, o no.
Ahora, las clases:
.comCuerpoIzq { margin: 3px; text-align: left; } .comCuerpoCentr { margin: 3px; text-align: center; } .comCuerpoDer { margin: 3px; text-align: right; } .titulo { font-size: 13px; font-weight: bold; } .subTitulo { color: #666666; font-weight: bold; } .epigrafe { font-size: 10px; } .navPie { font-size: 10px; color: #666666; font-weight: bold; } .navTop { font-size: 10px; color: #ffffff; font-weight: bold; } .barrNav { font-size: 11px; text-align: left; margin: 0px; } .bloqueAzulOscuro { font-size: 17px; font-weight: bold; color: #ffffff; background-color: #0066ff; text-align: center; margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; border-color: #ff3300; border-style: solid; border-width: 1px; } .bloqueAzulClaro { font-size: 12px; text-align: right; background-color: #99ccff; margin-top: 5px; margin-right: 20px; margin-bottom: 5px; margin-left: 20px; padding: 10px; }
Las clases podemos dividirlas en dos grupos. Tipográficas,
todas excepto las dos últimas, que son, más bien, gráficas. Para las tipográficas,
invito al lector a que deduzca, de acuerdo al nombre del selector y a las reglas
que contienen, el propósito y el por qué (ver, por ejemplo, por qué algunas
contienen tamaños de fuente y otras no); esto fue explicado más arriba.
Y, finalmente, las gráficas. Garantizo que estos estilos
son correctamente visualizados en Internet Explorer 4
en adelante, y Netscape 6. Las he escrito con saltos
de línea entre cada regla para facilitar su examen, dado que estas reglas no
las hemos visto aún.
Estas dos clases han sido pensadas para
aplicar a elementos que soporten características gráficas, como por ejemplo, <div> (no confundir con
<span>;
sus comportamientos gráficos son muy diferentes). El resultado será a algo similar
que especificar colores de fondo y espaciados a las celdas de una tabla, sólo
que esta solución es más flexible y maleable. En una tabla no tendríamos tanto
control sobre los márgenes, no podríamos variar la alineación de texto sin grandes
rodeos, y no podríamos usar bordes. Aún si lo lográramos, lo haríamos a costa
de hacer el código muy pesado, por medio de mucho más trabajo poco gratificante.
Éste sería el resultado con los dos estilos CSS gráficos bloqueAzulOscuro
y bloqueAzulClaro, y la mágica etiqueta <div>
(personalmente, mi preferida) :
Encabezado aquí |
CSS (Cascading Style Sheets, u Hojas de Estilo en Cascada) es la tecnología desarrollada por el World Wide Web Consortium (W3C) con el fin de separar la estructura de la presentación. A pesar de que la recomendación oficial del grupo de trabajo de la W3C ya había alcanzado la estabilidad requerida para que fuera soportada por los principales navegadores comerciales, como Netscape e Internet Explorer, tan tempranamente como en el año 1998, la situación de entonces, comúnmente conocida como la “guerra de los navegadores”, hacía que los intereses comerciales de las dos compañías en lucha por el mercado de usuarios de Internet se interpusieran en el camino de las CSS. |
Sólo con dos etiquetas <div>,
logramos lo mismo que si hubiésemos tenido que utilizar una tabla entera (con
al menos diez veces más de código), y si hubiésemos tenido que lograr esa
exactitud en los márgenes (que, de hecho, no hubiésemos podido), hubiésemos
tenido que usar o bien cellpadding o cellspacing, atributos no recomendables
(por eso siempre se especifican a “0”) porque no pueden ser usados en el contexto
de un “layout” más complejo. Habría que haber recurrido a utilizar celdas
vacías como márgenes, que es la solución más usual, con lo que el código se
hubiese incrementado aún muchísimo más.
Espero que ésta, aunque algo extensa, haya
sido una buena introducción al mundo, por cierto mucho más rico de lo que aquí pudimos ver, de las CSS. Recomiendo
a quienes quieran profundizar más sobre el tema, visiten este sitio sobre las CSS: http://www.sidar.org/recur/desdi/mcss/index.php.
Allí encontrarán un manual sobre las CSS
que nos introduce en el mundo de las especificaciones oficiales de la W3C,
además de una traducción al español de éstas, y un ejemplo de las enormes posiblidades
de las CSS al ser combinadas con
lenguajes de programación: el elegir entre varias hojas de estilo para cambiar
la presentación de un sitio dinámicamente.
Muy fácil de entender, Gracias. Agrega más…
Me parecio bueno el articulo, aunque la liga ya no funciona
Excelente trabajo
muy buena página
es un articulo muy util.
Execelente para ser una introduccion
hola,
muchas gracias a todos por los comentarios…
con respecto al link del final, sí hace tiempo que no anda. pensaba que se trataba de algo temporal pero aparentemente no está más online ese website. voy a tratar de averiguar si cambió la dirección, o sino veré de algún otro sitio que incluya materiales como el que ése tenía y lo publico acá.
ese website tenía algo muy bueno que era la recomendación de la w3c traducida al español, en formato de microsoft help (muy cómoda de ver y navegar, como la ayuda de un programa). no me acuerdo en este momento si existe ese formato para bajarse del sitio de la w3c.
bueno, veré si puedo actualizar este artículo o mejor hacer otro que no sea introducción, y subirlo a una web personal, pero todavía estoy viendo el asunto de tener una web personal (con un blogger ¿? todavía no sé) así que no estará sino dentro de varios días o semanas… les aviso cuando esté en línea
saludos…
Esta bien para iniciarse, pero el ultimo enlace a la web de carlos benavidez no funciona…
El artículo me parece que está bien para iniciarse en el tema aunque me gustaría corregir una cosa. No me parece correcto llamar a un estilo como “bloqueAzulOscuro” ya que puede ocurrir que ese bloque cuando hagamos cambios en el diseño sea de cualquier otro color, por eso considero mucho más correcto llamarlo “bloqueEncabezado” por ejemplo.
Hola a todos.
He visto a varios interesados en la página de Carlos Benavidez (creo que con razón porque es muy interesante) así que dejo el enlace donde se encuentra ahora:
Carlos Benavidez
Como dice sci-fi, se puede descargar las recomendacións de la w3c en español, lo cual resulta muy útil.
Saludos, :adios:
Muy bueno el articulo, lo q necesitio saber es, que compatibilidad tiene CSS con ASP y como introducirlo, otra duda q tengo es si se puede insertar Flash..
MUY BUENO
Pues como que se quedaron cortos, la verdad, no esta basico, esta super basico.
Otro detalle es que solo tienen el link CAPITULO SIGUIENTE, estaria bien que pusieran a que pagina quiero ir.
Saludos!!!
Saludos Megaman,
Creo que este tipo de artículos, que a veces parecen tan básicos son los que ofrecen los cimientos para comprender los pormenores de una técnica o una tecnología.
Conozco desarrolladores que se saben de memoria los más avanzados “hacks” de CSS pero no tienen idea de lo que es un child node, selector, pseudo-elemento, pseudo-classe y otros aspectos básicos de CSS… A ellos les faltó leer las cosas básicas y se saltaron a los trucos avanzados. Y cuando llega el momento de PLANEAR una guia de estilos no tienen idea de como hacerlo de una forma lógica y profesional, simplemente se “sueltan” a escribir sus ya conocidos hacks.
La diferencia entre una hoja de estilos planificada y una escrita “al vuelo” pueden ser muchos bytes (y algunos dolores de cabeza).
😉
Vale que casi todos seamos Windozer’s pero creo que Carlos Benavidez no ha entendido la filosofía del W3C en el momento en el que añade en la web el como cambiar el color de las barras de desplazamiento en IE. Además lo justifica diciendo que como está tan extendido…… Repito, mucho de nosotros usamos Windows, de los que usamos Windows, muchos usamos el IE, pero quien lleva las riendas del HTML es el W3C y no M$oft, por lo que no me parece muy seria una página que pueda decir que ya que se usa mucho, hala! todos a usar códigos propietarios!!! pues va totalmente en contra de la filosofía del W3C y en particular de separar CSS y HTML (que es el tema que nos incumbe).
Un saludo, Cz.
Es bastante útil, claro y didáctico el tema expuesto. Personalmente me ha ayudado a terminar de entender (ahora si del todo) esto de las hojas de estilo. La recomiendo.
Slds.
MUCHAS FELISIDADES POR ABER PUBLCADO MUY BUEN ARTICULO
Pues vaya, estaría bien el artículo, si realmente dijera como substituit las tablas con css…
esta bien para comensar a entender este lenguage crear paginas.
Excelente trabajo y muy pedagógico. Es un placer leera los que entienden en profundidad un tema tan interesante como éste, y lo desarrollan de modo tan claro. Nuevamente felicitaciones y espero que sigas aportando tu conocimiento!
no es bueno elarticulo
faltan ejemplos
muy bueno!, recien pude entender esto de las herencias (¡¡ Y TENGO 2 HIJOS !!!!)
Saludos, mi pregunta es la siguiente se muy bien q se le puede agregar un estilo a una etiqueta especifica directamente, pero CSS nos permite agregarle un estilo a una etiqueta cuando tiene un atributo especifico?
estoy de acuerdo