CSS ("Cascading Style Sheets")

Cascading Style Sheets

CSS ("Cascading Style Sheets") es una metodología para dar uniformidad al uso de tags en documentos HTML, como habrá notado en las secciones anteriores de la guia rápida, el agregar atributos a cada Tag HTML puede ser un proceso mecánico. Imagínese que desee centrar todas las celdas (<td> ) en un documento o en todo un sitio, seguramente el agregar align="center" a todos los elementos <td> sería un proceso muy tediosos, y es precisamente a través de CSS ("Cascading Style Sheets") que se facilitan este tipo de tareas.

El nombre Cascading (En Cascada) tiene sus raíces en el funcionamiento de las mismas, ya que es posible definir uniformidades en tres distintos puntos de un documento :

  1. Uniformidad en Varios Documentos (Archivo CSS)
  2. Uniformidad en Documento (Tags <style> y <span> )
  3. Uniformidad en Tag ( Clases y en Linea )

Ahora bien, el efecto en Cascada se debe al nivel de precedencia (importancia) que se toma al ser interpretadas las diversas uniformidades en el documento, esto es, si en los atributos dentro de los tags <style> (Uniformidad en Documento) existen varias definiciones traslapadas con aquellas definidas en un archivo CSS, entonces las ultimas tomarán precedencia, de igual manera, aquellas definiciones por Tag ( Clases y en Linea) tomarán precedencia sobre aquellas de Documento (Tags <style> y <span>) y archivos CSS.

Finalmente vale mencionar que en dado caso de no definirse ninguna funcionalidad para algún tag el Navegador utiliza sus valores "defaults".

Uniformidad en Varios Documentos (Archivo CSS)

Esta implementación es aquella utilizada a lo largo de varios documentos y su funcionamiento depende de un archivo que es llamado dentro del documento HTML, este tipo de declaración es similar a la de una imagen, y existen dos posibilidades como se muestra a continuación :

<html>
<head>
<title> Documento de CSS </title>
<link rel="stylesheet" type="text/css" href="/css/estilo.css">
<style type="text/css">
<!--
 @import url(http://www.osmosislatina.com/css/estilo.css)
-->
</style>
</head>
<body>
   ........
   ........
</body>
</html>

Nótese que ambas definiciones para importar el archivo CSS son anidadas dentro del Tag <head> del documento; la primer declaración importa el archivo CSS mediante el elemento link son sus respectivos atributos, la segunda declaración hace uso de los Tags <style> para importar el mismo archivo CSS; a pesar de las diferencias en sintaxis, ambas declaraciones tienen el mismo funcionamiento.

La utilización de comentarios <!-- y --> antes y después de los tags <style> se hace con la intención de evitar errores en los Navegadores que no reconocen el tag <style> y/o tienen desactivado el uso de CSS.

Uniformidad en Documento (Tags <style> y <span> ).

Dentro de los tag <style> también es posible definir el comportamiento de tags que afectarán un documento en particular.

<head>
<title> Documento de CSS </title>
<style type="text/css">
<!--
    body { background-color:black } 
    h1,h3,h4 {text-align: center} 
    h2 {text-align: right} 
    p b {color: yellow} 
    a:link { color: blue } 
    a:active { color: red; font-weight: bold} 
    a:visited { color: green } 
    span { color: red }
    span.negrita { font-weight: bold }
-->
</style>
</head>  

Los parámetros definidos dentro de los tags <style> indican lo siguiente:

Las definiciones que inician con span tienen un comportamiento especifico ya que forman parte de CSS; al utilizarse las diversas definiciones mencionadas anteriormente, estas toman un efecto sobre todas las declaraciones del documento, esto es, todo el contenido de los Tags <h2> será alineado a la derecha, aquel de <a> (links) será rojo, sin embargo, existen ocasiones en las que este comportamiento no es deseado para todos los elementos del documento, para este tipo de situaciones se utiliza el Tag <span>

La siguiente declaración permite que únicamente una sección del contenido sea afectada:

 <span> este contenido será desplegado en colo rojo </span> 

Para que el tag <span> pueda ser utilizado en diversas circunstancias, es posible generar clases de la siguiente manera:

 <span class="negrita"> este contenido será desplegado en letras negritas </span> 

Además del uso de clases, el Tag <span> también puede contener declaraciones en linea a través del atributo style ; el uso de Clases y declaraciones en linea forma parte de las definiciones más refinadas en CSS descrita a continuación.

Uniformidad en Tag ( Clases y en Linea )

Finalmente existe la posibilidad de definir el funcionamiento de cualquier tag HTML al mismo nivel de tags , esto es, el funcionamiento solo tendrá efecto dentro del tag y ningún otro tag del mismo tipo será afectado en el documento, para esto existen dos posibilidades:

Definir Clases ("Classes")

Para realizar esto es necesario definir clases dentro de los parámetros definidos en <style> o bien que sean incluidas estas definiciones en un archivo CSS:

<head>
<title> Documento de CSS </title>
<style type="text/css">
<!--
    h2.azul {color: azul} 
    h2.verde {color: green; text-align: center} 
    h2.amarilla { color: yellow } 
      .cursiva { font-style: italic } 
-->
</style>
</head>  

Los parámetros anteriores definen tres funcionamientos para títulos con tags <h2> , esto otorga la flexibilidad de emplear títulos con diferentes colores. Para utilizar la funcionalidad los tags son llamados con el parámetro class :

 <h2 class="azul"> Titulo en Azul </h2> 
(Desplegaría el titulo en azul)
 <h2 class="verde"> Titulo centrado Verde </h2> 
 (Desplegaría el titulo centrado en verde)

La clase genérica .cursiva puede ser utilizada para cualquier tipo de tag , esto es :

  <p class="cursiva"> despues del salto letra cursiva ...
                                 o 
   <b class="cursiva"> estas son negritas cursivas ... 

El uso de clases ( class ) no esta limitado a colores y alineación , esta metodología puede ser empleada para cualquier tipo de funcionalidad que sea apoyada por CSS.

Definir en Linea

Aunque muy similar a la metodología utilizada en clases ( class ) esta se especifica dentro del tag de la siguiente manera:

 <h1 style="color:blue ; font-style: italic"> Titulo definido
 con parametros en Linea </h1>

Esta última metodología también garantiza que solo tags individuales sean afectados.