Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hoja de estilo A
Hoja de estilo B
Hoja de estilo C
Alternativas estilo XML
Cascading Style Sheets (CSS)
Lenguaje simple formateo HTML. Aplicable a XML.
Concepto de “cascada” CSS1 W3C 1996
CSS2 W3C 1998. Nuevas capacidades (posicionamiento absoluto, tipos “media”, …)
CSS3 ¿Futuro?
Pega No es posible reestructurar documento XML
No es XML
XSLT
Parte de XSL. Versión 1.0 1999
Transformación documentos XML en XML (XHTML, SVG, …)
Lenguaje de reglas de patrones (template rules)
Más complejo y potente que CSS (bucles, condiciones, …)
Hace uso de Xpath Extracción nodos
Es XML
XSL Formating Objects (XSL-FO)
Parte de XSL. Versión 1.0 2001
CSS Orientado a Web
Objetivo formatear documentos orientados a impresión Paginación, orientación,
tamaño página, etc.
Funcionalidad similar a “Latex” en XML
Introducción CSS
Declaración en documento XML
PI en el prólogo
<?xml-stylesheet type = “MIME-type” href = “url-to-
stylesheet” ?>
Href URI (local o Inet)
Particularización CSS
<?xml-stylesheet type = “text/css” href =
“mystylesheet.css” ?>
Combinación de varias CSS dentro de una
@import url(http://www.captiva.es/styles/general.css”);
@import url(http://www.captiva.es/styles/manuales.css”);
Introducción CSS (II)
Funcionamiento de lenguaje
Reglas que se aplican a elementos
Proceso lineal
Coger elemento
Buscar regla que mejor se ajuste
Formatear
Continuar por siguiente elemento
Ejemplo regla
nombre {
color: blue;
font-family: garamond, serif;
font-size: 12pt;
}
Posiblemente varias reglas se apliquen al mismo elemento
Se “unen” propiedades
Se eliminan redundates en base a algoritmo
Herencia de reglas
Elemento hereda propiedades definidas para antecesores
Introducción CSS (III)
Funcionamiento de lenguaje (II)
Herencia de reglas
Elemento hereda propiedades definidas para antecesores
Ejemplo
<hoja> hoja {
<encabezado> margin-left:20pt;
Don Quijote margin-right:20pt;
</encabezado> font-size: 14pt; Don Quijote
<parrafo> color: blue;
En un lugar de la }
Mancha ... margin-left:20pt;
</parrafo> encabezado { margin-right:20pt;
<hoja> margin-top: 10pt; margin-top: 10pt;
margin-botton: 10pt; margin-botton: 10pt;
font-size: 18pt; font-size: 18pt;
} color: blue;
Introducción CSS (IV)
Funcionamiento de lenguaje (III)
Comentarios
/* Todo esto es un comentario
hola { color:red }
otro { color:blue }
y aquí se acaba */
Carencias
Orden de elementos fijo
No se pueden reutilizar elementos Tabla de contenidos
No es posible lógica en función de contenidos
Solución XSLT
Reglas
Sintáxis
selector
{
propiedad1: valor1;
propiedad1: valor1;
}
Ejemplo
emphasis {
font-style: italic;
font-weight: bold;
}
Selectores
Sintaxis
nombre-elemento [atributo1 = “valor1”][atributo2 = “valor2]…
Ejemplos
* { color: red } Todos los elementos
Selección de atributos
arbol [hoja]
arbol [hoja=“caduca”]
arbol [copa~=“redondeada”]
<arbol copa=“redondeada frondosa”>
<arbol copa=“ancha redondeada”>
arbol [formahoja|=“estrecha”]
<arbol formahoja=“aguja-estrecha”>
<arbol formahoja=“elipse-estrecha”>
#abeto
<arbol id=“abeto”>
arbol.acacia
<arbol class=“acacia”>
Selectores (II)
Selección contextual
Ascendencia (>)
book > title { font-size: 24pt; }
chapter > title { font-size: 20pt; }
chapter > subchapter > title { font-size: 18pt; }
title { font-size: 16pt;}
Pseudoclases (elemento:pseudoclase)
first-child
Ejemplo:
<texto><p>uno</p><p>dos</p></texto>
p:first-child { font-style: italics;}
Resultado uno dos
link
active
visited
hover
focus
lang(es) <elemento xml:lang=“es_ES”>
Selectores (III)
Selección contextual (II)
Pseudoelementos (elemento:pseudoelemento)
first-letter
Ejemplo letra inicial de historia:
nombre:first-letter {
font-size: 200%;
font-weight: bold;
float: left;
padding-right: 3pt
}
first-line
Primera línea tal y como aparece en el navegador:
bienvenida:first-line{
font-variant:small-caps;
}
before
after
Puntos inmediatamente posterior o anterior a elemento. Para inserción de texto
nombre:first-child:before{
content:"Jugador: ";
}
Selectores (IV)
¿Qué ocurre si a un elemento le
corresponden varios selectores?
Se unen propiedades
Si las propiedades “colisionan” se escoje la
definida por selector más específico
Propiedad ID
Mayor número de atributos y pseudoclases
Descendencia más explícita
En caso de empate Gana el último escrito
Propiedades
Las propiedades se heredan
<body>
<h1>Encabezado</h1>
<p>Parrafo</p>
</body>
body { h1 {
font-size:14pt;
font-size:12pt; color: green;
color: green; }
} p {
h1 { font-size:14pt;
font-size:14pt; color: green;
} }
Propiedades (II)
Unidades de medida
Absolutas
Milímetros (mm), centímetros (cm), pulgadas (in),
puntos (pt) y picas (pc)
Ej font-size: 14pt;
Relativas
Tamaño de letra ‘m’ em
Tamaño de letra ‘x’ ex
Ej font-size: 2.5ex;
Porcentaje a valor heredado
Ej font-size: 200%;
Propiedades (III)
Propiedad display
none
Invisible. No muestra el elemento
inline (por defecto)
Renderiza contenido de elementos en línea
block
Termina el contenido con nueva línea. Un párrafo es un bloque.
list-item
Muestra el contenido del elemento como un elemento de lista
Propiedades complementarias:
list-style-type Tipo de marcador (p.e. decimal)
list-style-position Dónde va marcador (p.e. inside)
list-style-image En caso de usar una imagen como marcador
/* A bulleted list */
ingredient {
display: list-item;
list-style-position: inside }
Propiedades (IV)
Propiedad display (II)
Elementos de tabla (análogos HTML 4.0)
table
inline-table
table-row-group
table-header-group
table-footer-group
table-row
table-column-group
table-column
table-cell
table-caption
Cada elemento ha de llevar el tipo de tabla adecuado a su jerarquía. P.e.:
<tabla>
<fila>
tabla{ display:table }
<celda>A1</celda>
fila { display:table-row }
<celda>A2</celda>
celda{ display:table-cell
</fila>
}
<fila>
<celda>B1</celda>
<celda>B2</celda>
</fila>
<tabla>
Propiedades (V)
Propiedades para elementos tipo bloque
(tb listas, tablas)
Modelo de caja CSS
margin-top
margin-left
margin-right
Texto dentro de la Texto dentro de la
caja. Texto dentro caja. Texto dentro
de la caja. Texto de la caja. Texto
dentro de la caja. dentro de la caja.
margin-bottom
padding
border
Propiedades (VI)
Márgenes
margin-xxxxx
margin: top [right][bottom][left]
Ejemplo
Parrafo { margin: 5% 10em 0 }
Bordes
border: anchura estilo color
Estilos: solid, dashed, dotted, groove,
ridge, double, inset, outset
Ej.
border: thin solid yellow;
border: 20pt dashed blue;
Propiedades (VII)
Fuentes
font-family
Lista separada por comas por orden de prioridad de fuentes a
aplicar. La última debería ser algo genérico (serif, sans-serif,
cursive, monospace,fantasy)
Ejemplo:
font-family: Palatino, “Times New Roman”, Times, serif;
font-size
Prefijados: xx-large, x-large, large,medium, small,
x-small,xx-small
Valor: p.e. 120% o 0.2 cm
font-style (normal, italic, oblique, iherit)
font-weight (bold, light)
También relativos (bolder, lighter)
O valor 100-900
font-variant small-caps
Propiedades (VIII)
Propiedades de texto
text-indent
Indenta primera línea. Sólo se aplica a bloques.
Ejemplo:
text-indent: 1.5in;