III. Hojas de estilo en cascada (CSS)

Anuncio
III. Hojas de estilo en cascada (CSS)
1. Introducción
2. Declaración de CSS
2.1. Propiedades típicas en CSS
2.2. Inserción de CSS en HTML
3. Herencia de propiedades en CSS
4. Declaración avanzada de CSS
4.1. Selectores
4.2. Regla de agrupación
5. Conclusiones
Hojas de estilo en cascada
z
z
z
z
Cascading Style Sheets (CSS)
Lenguaje que permite decorar y personalizar
documentos estructurados.
El objetivo es la separación del contenido de la
presentación: documentos independientes de
plataforma, vendedor y dispositivo.
Simplifican la escritura de páginas web y facilitan
el mantenimiento.
Curso 2008/2009
Arquitecturas Distribuidas
3
Hojas de estilo en cascada
z Mejora
la eficacia de transmisión:
– Elimina la necesidad de imágenes invisibles o
que sólo contienen letras.
– La información de estilo sólo se envía una vez.
z Puede
definirse una hoja de estilo para cada
medio destino: navegador gráfico,
navegador por voz, navegador braille, etc.
Curso 2008/2009
Arquitecturas Distribuidas
4
Declaración de CSS
z Un
CSS es un conjunto de reglas (selector +
declaraciones) que determinan propiedades:
SELECTOR { propiedad_1: valor_1;
...;
propiedad_n: valor_n}
¿A qué
elementos
afecta?
Curso 2008/2009
¿Qué valor tienen
las propiedades?
Arquitecturas Distribuidas
5
Declaración de CSS
z Ejemplo
de CSS simple:
H1 {color: green}
Afecta a los encabezados
de primer nivel: H1
Curso 2008/2009
Asigna a la
propiedad “color”
el valor “verde”
Arquitecturas Distribuidas
6
Declaración de CSS
z Otro
ejemplo de CSS simple:
H1 {color: green; font-style: italic}
Afecta a los encabezados
de primer nivel: H1
Curso 2008/2009
Asigna a la propiedad
“color” el valor “verde”,
y al “estilo de fuente” el
valor “cursivas”
Arquitecturas Distribuidas
7
Propiedades típicas CSS
z
Propiedades:
–
–
–
–
–
–
–
–
–
Fuentes
CSS1
Colores
Márgenes
CSS2
Alineados
Sombreados
Dirección del texto
Pitch de la voz
Azimuth
etc.
Curso 2008/2009
Æ 50 propiedades
Æ 120 propiedades!!
Arquitecturas Distribuidas
8
Inserción de CSS en HTML
Interno a un documento
<STYLE type="text/css">
Reglas
</STYLE>
Indicación del nombre
de la hoja de estilo que
se usará
Externo a un documento
<LINK rel="stylesheet" href=URL type="text/css">
Curso 2008/2009
Arquitecturas Distribuidas
URL contiene fichero
con las reglas
9
Inserción de CSS en HTML
Como atributo de cada elemento
<P style="font-size: 20pt"> texto </P>
Existen diferentes definiciones de estilo en
cascada: CSS1, CSS2.
Curso 2008/2009
Arquitecturas Distribuidas
10
Herencia de propiedades en CSS
z Se
denominan hojas en “cascada” ya que los
elementos hijos heredan por defecto los
valores de estilo de los padres.
z Un elemento se caracteriza por valores
específicos, heredados o por defecto (de
mayor a menor preferencia,
respectivamente).
Curso 2008/2009
Arquitecturas Distribuidas
11
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso 2008/2009
ESTILO POR DEFECTO
Arquitecturas Distribuidas
12
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
13
Herencia de propiedades en CSS
Ejemplo:
BODY
H1
Valor por defecto
del color del
elemento: negro.
Curso 2008/2009
P
STRONG
Arquitecturas Distribuidas
UL
LI
LI
LI
14
Herencia de propiedades en CSS
Ejemplo:
BODY
H1
Cambiamos el valor
al elemento BODY:
rojo
Curso 2008/2009
P
STRONG
Arquitecturas Distribuidas
UL
LI
LI
LI
15
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
body {color: red}
</style>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso 2008/2009
CAMBIO EN ESTILO
DEL BODY
Arquitecturas Distribuidas
16
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
body {color: red}
</style>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso 2008/2009
¿QUÉ HA SUCEDIDO?
Arquitecturas Distribuidas
17
Herencia de propiedades en CSS
Ejemplo:
BODY
H1
La propiedad “color
rojo” se HEREDA
por todos los hijos.
Curso 2008/2009
P
STRONG
Arquitecturas Distribuidas
UL
LI
LI
LI
18
Herencia de propiedades en CSS
Ejemplo:
BODY
H1
La propiedad color
puede ser controlada en
cada elemento
específico: ULÆverde
STRONGÆItálica y negro
Curso 2008/2009
P
STRONG
Arquitecturas Distribuidas
UL
LI
LI
LI
19
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
body {color: red}
strong {color: black; font-style: italic}
ul {color: green}
</style>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso
2008/2009
CAMBIO EN ESTILO
DEL UL y STRONG
Arquitecturas Distribuidas
20
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
body {color: red}
strong {color: black; font-style: italics}
ul {color: green}
</style>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso
2008/2009
Arquitecturas Distribuidas
21
Herencia de propiedades en CSS
Ejemplo:
BODY
H1
Puesto que UL tiene
“hijos”, estos también
heredan el color verde
Curso 2008/2009
P
STRONG
Arquitecturas Distribuidas
UL
LI
LI
LI
22
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
ul {color: green}
strong {color: black; font-style: italic}
body {color: red}
</style>
PREFERENCIA ESTÁ
<body>
DETERMINADA
<h1> Compositor clásico </h1>
POR LA
ESPECIFICIDAD, NO POR
<p> Johann Sebastian Bach fue
un
compositor
EL
ORDEN
DE sus
<strong> prolífico. </strong> Entre
obras destacan: </p>
DECLARACIÓN.
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San Mateo
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso
2008/2009
Arquitecturas Distribuidas
23
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
ul {color: green}
strong {color: black; font-style: italics}
body {color: red}
</style>
<body>
<h1> Compositor clásico </h1>
<p> Johann Sebastian Bach fue un compositor
<strong> prolífico. </strong> Entre sus
obras destacan: </p>
<ul>
<li> Conciertos de Brandendurgo
<li> Pasión según San MateoIDÉNTICA!!!
<li> Variaciones de Goldberg
</ul>
</body>
</html>
Curso
2008/2009
Arquitecturas Distribuidas
24
Declaración avanzada de CSS
z Selectores:
*
Selector universal (cualquier elemento):
* {font-family: Arial}
Curso 2008/2009
Arquitecturas Distribuidas
25
Declaración avanzada de CSS
z Selectores:
E Identifica cualquier elemento E:
LI {font-family: Arial}
P {color: black}
Curso 2008/2009
Arquitecturas Distribuidas
26
Declaración avanzada de CSS
z Selectores:
E>F Cualquier elemento F que sea hijo de E
UL>LI {font-size: 70%}
OL>LI {font-size: 115%}
Curso 2008/2009
Arquitecturas Distribuidas
27
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
ol>li{font-size: 70%}
ul>li{font-size: 115%}
</style>
<body>
<ol>
<li> Elemento 1 Lista no ordenada
<li> Elemento 2 Lista no ordenada
</ol>
<ul>
<li> Elemento 1 Lista no ordenada
<li> Elemento 2 Lista no ordenada
</ul>
</body>
</html>
Curso 2008/2009
LI SE VISUALIZA DIFERENTE
SEGÚN QUIEN SEA EL PADRE
Arquitecturas Distribuidas
28
Herencia de propiedades en CSS
<html>
<title>Ejemplo CSS</title>
<style>
ol>li{font-size: 70%}
ul>li{font-size: 115%}
</style>
<body>
<ol>
<li> Elemento 1 Lista no ordenada
<li> Elemento 2 Lista no ordenada
</ol>
<ul>
<li> Elemento 1 Lista no ordenada
<li> Elemento 2 Lista no ordenada
</ul>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
29
Declaración avanzada de CSS
z Selectores:
E F Cualquier elemento F descendiente de E
H1 EM{color: blue}
Curso 2008/2009
Arquitecturas Distribuidas
30
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
H1 { color: red }
EM { color: red }
H1 EM { color: blue }
</style>
<body>
<h1>Esta <span class="myclass">cabecera
es <em>muy</em> importante</span></h1>
Esta <em>palabra</em> es también
importante.
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
31
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
H1 { color: red }
EM { color: red }
H1 EM { color: blue }
</style>
<body>
<h1>Esta <span class="myclass">cabecera
es <em>muy</em> importante</span></h1>
Esta <em>palabra</em> es también
importante.
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
32
Declaración avanzada de CSS
z Selectores:
E+F F inmediatamente después de E
H1+H2{color: red}
Curso 2008/2009
Arquitecturas Distribuidas
33
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
h1 + h2 { color: red }
</style>
<body>
<h1> Cabecera principal </h1>
<h2> Cabecera secundaria </h2>
<h1> Otra cabecera principal </h1>
<p> Parrafo intermedio
<h2> Cabecera secundaria </h2>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
34
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
h1 + h2 { color: red }
</style>
<body>
<h1> Cabecera principal </h1>
<h2> Cabecera secundaria </h2>
<h1> Otra cabecera principal </h1>
<p> Parrafo intermedio
<h2> Cabecera secundaria </h2>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
35
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
h1 + h2 { color: red }
</style>
<body>
<h1> Cabecera principal </h1>
<h2> Cabecera secundaria </h2>
<h1> Otra cabecera principal </h1>
Parrafo intermedio
<h2> Cabecera secundaria </h2>
</body>
</html>
Curso 2008/2009
El selector afecta en presencia de
un texto intermedio (ya que éste
no es un nuevo elemento)
Arquitecturas Distribuidas
36
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
h1 + h2 { color: red }
</style>
<body>
<h1> Cabecera principal </h1>
<h2> Cabecera secundaria </h2>
<h1> Otra cabecera principal </h1>
Parrafo intermedio
<h2> Cabecera secundaria </h2>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
37
Hojas de estilo en cascada
z Selectores:
E#myid Cualquier elemento E cuyo atributo “id” sea “myid”
TABLE#precios {text-align: center}
Curso 2008/2009
Arquitecturas Distribuidas
38
Declaración avanzada de CSS
<html>
<title>Ejemplo CSS</title>
<style>
table#precios {
text-align: center;
font-style: italic
}
</style>
<body>
<table id="precios">
<tr><td>1<td>2<td>3
<tr><td>uno<td>dos<td>tres
</table>
<table>
<tr><td>1<td>2<td>3
<tr><td>uno<td>dos<td>tres
</table>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
39
Declaración avanzada de CSS
<html>
<html>
<title>Ejemplo CSS</title>
<title>Ejemplo CSS</title>
<style>
<style>
table#precios {
h1 + h2
{ color: red
}
text-align:
center;
</style>
font-style: italic
}
<body>
</style>
<h1> Cabecera principal </h1>
<body><h2> Cabecera secundaria </h2>
<table id="precios">
<h1> Otra
cabecera principal </h1>
<tr><td>1<td>2<td>3
<p> Parrafo
intermedio
<tr><td>uno<td>dos<td>tres
<h2>
Cabecera secundaria </h2>
</table>
</body>
<table>
</html>
<tr><td>1<td>2<td>3
<tr><td>uno<td>dos<td>tres
</table>
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
40
Declaración avanzada de CSS
z
Selectores:
REGLA DE AGRUPACIÓN:
H1 {color: red}
H2 {color: red}
H3 {color: red}
Es similar a:
Forma preferida: más clara,
y ocupa menos bytes.
H1,H2,H3 {color: red}
Curso 2008/2009
Arquitecturas Distribuidas
41
Conclusión sobre CSS
z Permite
de forma sencilla separar el
contenido de su formato.
– Revise los ejemplos: Observará que el formato
siempre se definió de modo independiente!
Curso 2008/2009
Arquitecturas Distribuidas
42
Conclusión sobre CSS
body {
padding: 0;
margin: 0;
font: 0.7em Tahoma, sans-serif;
line-height: 1.5em;
background: #fff;
color: #454545;
}
a{
color: #E0691A; background: inherit;
}
a:hover { color: #6C757A; background: inherit; }
h1 {
font: normal 2.1em Arial, Sans-Serif; letterspacing: -1px; padding: 7px 0 0 8px; margin: 0;
}
.dark { color: #737373; background: inherit; font-weight: bold; }
h1 a, h2 a { text-decoration: none; }
h1 a:hover, h2 a:hover { color: #FF6600; background: inherit; }
h2 {
margin: 0; padding: 0; font: bold 1.7em Arial,
Sans-Serif; letter-spacing: -1px;
}
p {margin: 0 0 5px 0; }
ul { margin: 0; padding : 0; list-style : none; }
Curso 2008/2009
Arquitecturas Distribuidas
43
Referencias y bibliografía
z
Libros:
–
z
“Cascading Style Sheets, designing for the Web”, Hakon
Wium Lie, Bert Bos, Addison Wesley.
En Web:
–
–
–
http://www.w3c.org/Style/CSS/ Æ Especificación
http://www.w3schools.com/css/default.asp Æ Tutorial
http://www.oswd.org/ -> Open Source Web Design: miles
de plantillas gratuitas
Curso 2008/2009
Arquitecturas Distribuidas
44
Descargar