CSS - Hojas de Estilo en Cascada

39
Didier Fabián Granados Muñoz Sesión 6: CSS - Hojas de Estilo en Cascada Septiembre 12 de 2009

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

Page 1: 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

Page 2: CSS - Hojas de Estilo en Cascada
Page 3: CSS - Hojas de Estilo en Cascada

• 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>

Page 4: CSS - Hojas de Estilo en Cascada

• 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>

Page 5: CSS - Hojas de Estilo en Cascada

( )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

Page 6: CSS - Hojas de Estilo en Cascada

• 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.

Page 7: CSS - Hojas de Estilo en Cascada

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

independizar la parte visual del contenido propio del

documento HTML.

Page 8: CSS - Hojas de Estilo en Cascada
Page 9: CSS - Hojas de Estilo en Cascada

• 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.

Page 10: CSS - Hojas de Estilo en Cascada

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.

Page 11: CSS - Hojas de Estilo en Cascada

¿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).

Page 12: CSS - Hojas de Estilo en Cascada

¿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.

Page 13: CSS - Hojas de Estilo en Cascada

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; ...

Page 14: CSS - Hojas de Estilo en Cascada
Page 15: CSS - Hojas de Estilo en Cascada

• 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>

Page 16: CSS - Hojas de Estilo en Cascada

• 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>

Page 18: CSS - Hojas de Estilo en Cascada

• 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" />

Page 20: CSS - Hojas de Estilo en Cascada

• 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.

Page 21: CSS - Hojas de Estilo en Cascada
Page 22: CSS - Hojas de Estilo en Cascada

• 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:

}

Page 23: CSS - Hojas de Estilo en Cascada

• 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>

Page 25: CSS - Hojas de Estilo en Cascada

• 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>

Page 26: CSS - Hojas de Estilo en Cascada

• 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;

}

Page 27: CSS - Hojas de Estilo en Cascada

• 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;

}

Page 28: CSS - Hojas de Estilo en Cascada

• 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;

}

Page 29: CSS - Hojas de Estilo en Cascada
Page 30: CSS - Hojas de Estilo en Cascada

• 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; }

Page 31: CSS - Hojas de Estilo en Cascada

• 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>

Page 32: CSS - Hojas de Estilo en Cascada

• 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>

Page 33: CSS - Hojas de Estilo en Cascada

• 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>

Page 34: CSS - Hojas de Estilo en Cascada

• 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;

}

Page 35: CSS - Hojas de Estilo en Cascada
Page 36: CSS - Hojas de Estilo en Cascada

Vamos a hacerlo con un ejemplo práctico.

Page 38: CSS - Hojas de Estilo en Cascada
Page 39: CSS - Hojas de Estilo en Cascada