CSS - Hojas de Estilo en Cascada

Post on 12-Jun-2015

5.505 views 1 download

description

Cuenta la leyenda que al construir un documento HTML se tenía que definir cada una de las propiedades en las diferentes etiquetas para mejorar su apariencia. Así las cosas, se pensó en una estrategia que permitiera independizar la parte visual del contenido propio del documento HTML.CSS son las siglas de Cascade Style Sheets, que quiere decir en español “Hojas de Estilos en Cascada”. Se trata de una especificación sobre los estilos físicos aplicables a un documento HTML y trata de dar la separación definitiva de la lógica (estructura) y la presentación del documento HTML.

Transcript of CSS - Hojas de Estilo en Cascada

Didier Fabián Granados Muñoz

Sesión 6: CSS - Hojas de Estilo en Cascada

Septiembre 12 de 2009

• Cuenta la leyenda que al construir un documento HTML

se tenía que definir cada una de las propiedades en las

diferentes etiquetas para mejorar su apariencia.

Texto Texto

<font face="Arial" size="3" color="yellow">

Texto

</font>

• Si se quería aplicar la misma apariencia a varios

elementos, había que repetir las instrucciones!

Texto 1 Texto 1<font face="Arial” size="3"

color="yellow">

Texto 1

</font>

Texto 2 Texto 2

<font face="Arial” size="3"

color="yellow">

Texto 2

</font>

( )n

• Aún peor, si se quería aplicar la misma apariencia a varios elementos envarias páginas, las instrucciones se repiten cada vez más.

• El desarrollador veía tedioso este proceso, pues no había forma alguna deevitar tantas repeticiones.

<font face="Arial” size="3“ color="yellow">

Texto 1

</font>

Texto 1 Texto 1

• Y si era algo más que texto…

• Para organizar el contenido se debía recurrir

únicamente a las tablas.

• No había forma de poner un objeto sobre otro (caso

de los tooltips o regiones con imágenes o tablas).

• Para que los vínculos se vieran agradables, había que

recurrir a imágenes.

• Muchos de los efectos se tenían que realizar con

Javascript, incluso en detrimento del rendimiento del

navegador…

• Etc.

• Así las cosas, se pensó en una estrategia que permitiera

independizar la parte visual del contenido propio del

documento HTML.

• Siglas de Cascade Style Sheets, que quiere decir “Hojas

de Estilos en Cascada”.

• Se trata de una especificación sobre los estilos físicos

aplicables a un documento HTML.

• Trata de dar la separación definitiva de la lógica

(estructura) y la presentación del documento HTML.

Estilos

• El estilo físico no se preocupa de la estructura del

documento, sino por la apariencia final: párrafos con un

cierto tipo de letra, tablas con un determinado color de

fondo, entre otros.

• El estilo lógico, en cambio, se refiere específicamente a la

estructura del documento.

• CSS se ocupa de adaptar el estilo físico al estilo lógico.

¿Por qué usar CSS? (1/2)

• Porque es más limpio tener por separado el contenido

(HTML) de la presentación (CSS).

• Porque para cambiar el formato de un elemento HTML

específico, solo se tendría que definir en la hoja de estilos

una única vez y no tantas veces como dicho elemento

aparezca.

• Porque el HTML es muy limitado para lograr una

maquetación atractiva de las páginas web

(posicionamiento lineal).

¿Por qué usar CSS? (2/2)

• Porque permite mantener una cierta consistencia entre

todas las páginas.

• Porque permite una carga más rápida de las páginas.

• Porque es más accesible que HTML.

• Porque es un estándar y los estándares son el camino

para que se pueda ver internet de la misma manera.

• Porque se trata de definir las características en cascada.

• Porque se pueden definir los estilos utilizando unidades

diferentes a los pixeles.

Sintaxis básica

• CSS utiliza la siguiente sintaxis básica para cada una de

sus instrucciones:

• La propiedad es aquél comportamiento que se desea

agregar al elemento HTML y que posee uno o varios

valores.

• El valor es lo que efectivamente se verá reflejado en la

propiedad a la cual pertenece.

propiedad1: valor1; propiedad2: valor2; ...

• No es lo más recomendable, dado que se debe definir en

un atributo de la etiqueta HTML sobre la que se quiere

aplicar.

• El atributo utilizado es STYLE, de donde la sintaxis sería la

siguiente:

• Ver ejemplo 1.

<etiqueta style="propiedad1: valor1;

propiedad2: valor2; ... propiedadN: valorN">

...

</etiqueta>

• Se desea definir estilos que apliquen a una, varias o todas

las etiquetas del documento.

• Se definen entonces estilos globales, entre las etiquetas

<head> y </head>, de acuerdo a la siguiente sintaxis:

<style type="text-css">

<!—

etiqueta {

propiedad1: valor1;

propiedad2: valor2; ...

} /* Y esto aplica para todas las demás */

-->

</style>

• Es lo más recomendado. Los estilos se declaran en un

archivo por aparte, especialmente cuando se trata de

reutilizarlos en todas las páginas.

• Debe declararse entre las etiquetas <head> y </head>.

• La sintaxis sería la siguiente:

• Ver ejemplo 3.

<link rel="stylesheet" type="text/css"

href="ruta_hoja_de_estilos.css" />

• Se tiene la posibilidad de definir, en lugar de un estilo

para una etiqueta, varios estilos que apliquen sobre dicha

etiqueta.

• Por ejemplo, se puede hacer que el color del texto de una

sección en negrita se vea rojo dentro de un párrafo o

verde dentro de una lista.

Ver ejemplo 5.

• Una clase es una definición de un estilo concreto que en

principio no está asociado a alguna etiqueta HTML, pero

que en el documento se pueden asociar a etiquetas

concretas.

• La sintaxis en la hoja de estilos es la siguiente:

.NombreDeLaClase {

propiedad1: valor1;

propiedad2: valor2:

}

• Para aplicar el estilo de una clase a una etiqueta concreta,

se utiliza el parámetro CLASS:

• Nótese que se ha invocado la clase en el atributo class,

pero no se le ha puesto el punto antes. El punto es el

identificador de que lo declarado en el CSS es una clase.

Ver ejemplo 6.

<etiqueta class="NombreDeLaClase">...</etiqueta>

• Cualquier etiqueta HTML puede tener asociado el

atributo ID.

• Este “nombreReferencia” debe ser único en todo el

documento HTML, puesto que servirá para tratarla tanto

desde Javascript como desde CSS.

<etiqueta id="nombreReferencia">...</etiqueta>

• Para definir un estilo mediante un ID, se usará la siguiente

notación:

• Es decir, escribiendo #, seguido del nombre del ID

correspondiente en el documento HTML.

#NombreDelId {

propiedad: valor;

...

propiedadN: valorN;

}

• Los ID y las clases pueden también ser combinados,

como se muestra en la siguiente notación:

• Aunque esto es poco común, pero es posible que un

elemento pueda manejar varias clases al tiempo...

#NombreDelId.clase {

propiedad: valor;

...

propiedadN: valorN;

}

• O también pueden ser combinados de la siguiente forma:

• En otras palabras, por una misma clase se pueden definir

diferentes comportamientos para cada elemento con un

ID definido.

Ver ejemplo 8.

.clase#NombreDelId {

propiedad: valor;

...

propiedadN: valorN;

}

• Un selector es la parte de un estilo CSS donde se indica

sobre qué parte del documento (X)HTML se debe aplicar

el estilo, o dicho de otra manera, el nombre del estilo.

• El ejemplo muestra lo que sería un selector básico de

todos: la redefinición de una etiqueta HTML.

• Sin embargo, existen diferentes tipos de selectores.

div { font-size: 18px; }

• Los siguientes son ejemplos de selectores simples, es

decir, aquellos a los cuales solo se les aplica una

característica especial.

• A continuación unos ejemplos y sus mapeos en HTML.

body { ... }

h2.first{ ... }

div#logo { ... }

a:visited { ... }

<body> ... </body>

<h2 class="first"> ... </h2>

<div id="logo"> ... </div>

<a href="link.html“> ... </a>

• Estos selectores afectan a una etiqueta hija de otra en

forma descendiente.

div span { font-size: 18px }

<div><span>Cualquier texto o cosa aquí</span></div>

• Existen 2, el + y el >.

• El + no se aplica ni a padres, ni a hijos, sino a hermanos

(etiquetas contiguas o adyacentes).

• El > es otra manera de representar la herencia.

h2.first > span {

... }

div#logo { ... }

<h2 class="first"> <span>

Texto </span>

<div

id="logo"></div><h3>Texto</h3>

• Se utiliza para todos los elementos del documento HTML,

es decir, si se utiliza este selector, automáticamente todos

los elementos hijos van a tomar las características dadas,

* {

margin: 0px;

padding: 0px;

}

div#header * {

color: #CCCCCC;

text-decoration: none;

}

Vamos a hacerlo con un ejemplo práctico.