Tema 2 Css
Tema 2 Css
Índice de contenido
Lenguaje de Marcas 1º CFGS-INFORMÁTICA
2Estructura y sintaxis...........................................................................................................................3
2.1Estructura y sintaxis....................................................................................................................3
2.1.1Notas sobre sintaxis............................................................................................................4
2.1.2CSS incrustado o CSS interno............................................................................................4
2.2El árbol del documento fuente....................................................................................................6
2.3Formato de valores......................................................................................................................8
2.3.1Colores................................................................................................................................8
2.3.2Medidas...............................................................................................................................9
2.3.3URL.....................................................................................................................................9
2.4Selectores..................................................................................................................................11
2.4.1Selectores Simples.............................................................................................................11
2.4.2Selectores específicos........................................................................................................11
2.4.3Selectores de clase.............................................................................................................11
2.4.4Selectores compuestos......................................................................................................12
2.4.5NUEVO EN CSS3............................................................................................................12
2.4.6Selectores de atributos......................................................................................................12
2.4.7NUEVO EN CSS3............................................................................................................14
2.4.8Pseudo-elementos..............................................................................................................14
2.4.9NUEVO EN CSS3............................................................................................................15
2.4.10Pseudo-clases..................................................................................................................16
2.4.11Especificidad de un selector............................................................................................17
2.5Propiedades modificables con CSS..........................................................................................19
2.5.1Propiedades para color y fondo.........................................................................................19
2.5.2Propiedades para la fuente................................................................................................20
2.5.3Propiedades del texto........................................................................................................21
2.5.4Propiedades resumidas......................................................................................................21
2.6Listas.........................................................................................................................................23
2.7Tablas........................................................................................................................................23
2.8Modelo de Cajas.......................................................................................................................25
2.8.1Propiedades para el margen..............................................................................................25
2.8.2Propiedades para el relleno...............................................................................................26
2.8.3Propiedades para el borde.................................................................................................27
Grosor del borde...................................................................................................................27
Color del borde.....................................................................................................................27
Estilo del borde.....................................................................................................................27
2.8.4Formato visual (control de flujo de cajas).........................................................................28
2.8.5Flujo Normal.....................................................................................................................32
2.8.6Posicionamiento Relativo.................................................................................................32
2.8.7Flotantes............................................................................................................................33
2.8.8Posicionamiento Absoluto.................................................................................................33
2.8.9Posicionamiento Fijo.........................................................................................................34
2.9Contadores................................................................................................................................35
2.9.1Contadores anidados.........................................................................................................36
2.10Tipos de medios......................................................................................................................39
2.10.1Reglas específicas para medios paginados......................................................................41
2.10.2Las cajas de página y sus márgenes................................................................................42
2.11Interfaz de usuario...................................................................................................................44
2 Estructura y sintaxis
2.1 Estructura y sintaxis
Una hoja de estilo define la presentación de un documento, con independencia de su estructura. Si
en el tema anterior usamos HTML para definir la estructura, en este tema usaremos CSS
(Cascading Style Sheet - Hoja de estilo en Cascada) para definir la presentación.
Por supuesto que existen otros lenguajes de estilo; elegimos CSS porque está definido por la W3C .
Una hoja de estilo estará siempre ligada a un documento principal (que puede ser HTML o XML,
etc) al que llamaremos documento fuente.
Una hoja de estilo CSS comienza con una cabecera compuesta por las llamadas reglas @, que
aportan información sobre el contenido de la propia hoja, como por ejemplo la codificación de
caracteres:
@charset "UTF-8"; (ojo con el punto y coma)
Las reglas @ comienzan siempre por este carácter y terminan con un punto y coma (;).
También se puede aplicar estilo CSS dentro del propio documento HTML, incrustado. No es lo más
adecuado cuando perseguimos la separación estructura/presentación, pero en algún caso puntual
puede ser útil.
Si pretendemos dar estilo a un elemento concreto usamos el atributo style:
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY>
<P style="color:blue">Mi párrafo</P>
</BODY>
pero también podemos incluir un sistema de reglas completo en el elemento STYLE, dentro de la
cabecera:
<HEAD>
<STYLE type="text/css">
P {
color: blue;
background-color: red;
}
</STYLE>
</HEAD>
HTML
HEAD BODY
META TITLE H1 H2 P P
A IMG
NOTA 2: Obsérvese que la declaración del tipo del documento (DOCTYPE) no tiene un nodo en el
#xxyyzz
También podemos utilizar el sistema RGBA que incluye la opacidad del color en un valor que va de
0 a 1, siendo 1 totalmente opaco y 0 totalmente transparente
color: rgba(255,0,10,0.5);
2.3.2 Medidas
Las medidas se expresan mediante un número seguido de la unidad (la unidad es opcional si el
número es 0). Disponemos de unidades absolutas (que sólo serán útiles cuando conozcamos las
propiedades físicas del medio de salida) y de propiedades relativas:
TIPO DE MEDIDA UNIDAD SIGNIFICADO
in inch (pulgadas)
mm milímetros
absolutas cm centímetros
pt puntos (1/72 pulgadas)
pc picas (1/6 pulgadas)
em tamaño de fuente
relativas ex altura de la x minúscula
px píxeles
porcentaje %
EJEMPLO:
P { margin: 2cm; }
Establece los márgenes del párrafo en 2 centímetros.
Cuando se utilicen medidas relativas, hay que tener en cuenta la herencia de las propiedades en
CSS. Cuando se establece una propiedad en un elemento, todos sus descendientes heredan dicha
propiedad. Por lo tanto, si utilizamos valores relativos, éstos se calculan en función del elemento en
el que están contenidos.
BODY {font-size: 10px;}
P {font-size: 2em;}
Como el tamaño de letra se ha establecido en BODY a 10px y P está contenido en BODY, el tamaño
de letra en P será de 10 x 2 = 20px.
2.3.3 URL
En ocasiones, desde CSS tendremos que hacer referencia a otros ficheros. La sintaxis para incluir
estas referencias es la siguiente:
url("fichero.css")
EJEMPLO:
@import url("fichero.css");
Es una regla @ que incluye reglas de estilo definidas en otro fichero.
NOTA: Si la URL incluye caracteres especiales como espacios, paréntesis, coma, comilla simple o
comillas dobles, tendremos que "escaparlos" con el carácter (\).
NOTA: Las URLs relativas se refieren a la carpeta donde se encuentra la hoja de estilo y no a la
localización del documento fuente.
2.4 Selectores
Los sistemas de reglas CSS comienzan con un selector que indica el elemento del documento fuente
al que se aplicará la regla. Los selectores pueden ser muy variados y complejos y es aquí donde
radica la potencia de CSS.
2.4.1 Selectores Simples
➢ Selector universal: Se denota con un asterisco (*) y significa que las reglas se
aplicarán a todos los elementos del documento.
➢ Cualquier elemento HTML: Las reglas se aplicarán a todas las ocurrencias de ese
elemento HTML en el documento.
EJEMPLO:
* {
font-family: serif;
} /* indica la fuente para todos los elementos del documento */
LI {
font-family: serif;
} /* indica la fuente para todos los elementos de listas */
Ejemplos:
A[href^⁼”http://”]{….}
Todos los enlaces cuyo atributo href comienza por http://
A[href$=”.doc”{...}
Todos los enlaces cuyo atributo href termina en .doc
INPUT[name*=”sev”]{ … }
El módulo de selectores de CSS3 se puede considerar como estable y es soportado por la mayoría
de los navegadores.
2.4.8 Pseudo-elementos
Permiten apuntar a partes no estructuradas del documento fuente
CÓDIGO SE LEE
SS1:first-line La primera línea de los SS1. Solo se aplica a elementos de bloque
SS1:first-letter La primera letra de los SS1. Solo se aplica a elementos de bloque
SS1:first-child El elemento SS1 que sea el primer hijo de su padre
EJEMPLO:
P:first-line {
text-transform: uppercase;
}
mostrará en mayúsculas las letras de la primera línea
NOTA: El final de la primera línea dependerá en cada momento de las dimensiones de la ventana,
resolución de pantalla, etc. y esta propiedad se ajustará automáticamente al cambiar el tamaño de la
ventana.
EJEMPLO:
P:first-letter {
font-size: 200%
}
mostrará la primera letra de cada párrafo con el doble de tamaño del resto del párrafo.
CÓDIGO CONSECUENCIA
SS1:before añade contenido al principio de los SS1. El contenido a añadir será el valor
de la propiedad content
SS1:after añade contenido al final de los SS1. El contenido a añadir será el valor de
la propiedad content
El contenido generado tomará las propiedades del elemento, si bien se le pueden añadir más
EJEMPLO:
A[href]:before {
content: “Enlace para pinchar: “;
text-decoration: underline;
}
Aparecerá el texto subrayado "Enlace para pinchar:" delante de cada origen de enlace.
EJEMPLO:
P:after {
content: “:) ”;
}
Aparecerá el texto ":)" tras cada uno de los párrafos.
NOTA: El contenido generado pasa a ser parte del elemento para posteriores referencias. Esto quiere
decir que si añadimos un texto delante de un párrafo con :before y posteriormente alteramos la
primera letra del párrafo con :first-letter, la letra que se verá afectada es la primera del contenido
generado, no la primera del párrafo.
2.4.9 NUEVO EN CSS3
En CSS3 se mantienen los mismos pseudoelementos pero cambia la sintaxis. Ahora se escriben de
la siguiente forma:
::first-line ::first-letter ::before ::after
Nota: No se incluyen nuevos elementos que no vayan a ser estandarizados, como ::selection.
En CSS3 aparecen más de 20 nuevos pesudo-elementos:
CÓDIGO CONSECUENCIA
SS1:nth-child(nº) El elemento SS1 que sea el hijo n.º-enésimo.
(7)(7n)(odd)(even)
SS1:nth-last-child(nº) El elemento SS1 que sea el hijo n.º-enésimo empezando por el
final
SS1:empty El elemento SS1 pero que no tenga ningún tipo de contenido
SS1:last-child El elemento SS1 que sea el último hijo
SS1:nth-of-type(nº) El elemento SS1 que sea el enésimo de ese tipo dentro del padre
SS1:nth-last-of-type(nº) Igual que el anterior pero contando desde el final
SS1:only-child El elemento SS1 que es hijo único de su padre
INPUT:valid El elemento INPUT que tenga un valor válido (html5)
INPUT:invalid El elemento INPUT que no tenga un valor válido (html5)
INPUT:enabled Todos los elementos INPUT que estén habilitados
INPUIT:checked Todos los elementos INPUT que estén marcados
SS1:empty Todos los elementos SS1 que no tengan contenido
INPUT:in-range Todos los elementos INPUT que tengan un valor establecido
dentro del rango de valores válidos establecidos (html5)
SS1:only-of-type El elemento SS1 que sea el único hijo de ese tipo de su padre
INPUT:optional Elemento INPUT que NO tenga establecido required
INPUT:read-only Elemento INPUT que tenga establecido readonly
INPUT:write-read Elemento INPUT NO que tenga establecido readonly
INPUT:required Elemento INPUT que tenga establecido required
Nota: Se pueden utilizar expresiones como nth-of-type(2n+1) o
s1:not(expresión) Selecciona los elementos s1 que no cumplan la
expresión
p:not(.dato){
color:red;
}
Selecciona a todos los párrafos que no pertenezcan a la clase dato
2.4.10Pseudo-clases
Permiten elegir elementos según características que no se deducen de la estructura del documento
fuente, sino de las acciones del usuario.
CÓDIGO CONSECUENCIA
A:link Afecta a los enlaces que aún no han sido visitados por el usuario
A:visited Afecta a los enlaces que ya han sido visitados por el usuario
SS1:hover Afecta a los SS1 mientras se están señalando con un dispositivo apuntador
SS1:active Afecta a los SS1 mientras están activos (entre click y soltar)
SS1:focus Afecta a los SS1 mientras tienen el foco
El orden de estas reglas es importante: Si usamos :link después de :hover para un mismo elemento,
quedará anulado el efecto de :hover.
Se pueden combinar las pseudo-clases: :focus:hover (la regla se aplicará sólo si se dan ambos al
mismo tiempo: que tenga el foco y que se esté señalando)
P.c1.c2 {
color: yellow;
} /*cuarto*/
P.c1:first-line {
color: black;
} /*primero*/
P[id] {
color: aqua;
} /*quinto*/
P.c1 {
color: purple;
} /*quinto */
P {
color: red;
} /*sexto*/
P {
color: green;
} /*sexto*/
En este ejemplo el texto del párrafo sería negro pues aunque la regla que más prioridad tiene es la
que aparece en el código HTML, con el atributo style, el pseudoelemento first-line tiene mayor
prioridad. Puede observarse que tienen mayor prioridad cuanto más específicas son.
En algunos casos vemos que hay varias reglas con la misma prioridad, porque son igual de
específicas. En estos casos quedará el efecto de aquella regla que está escrita más abajo porque
anula a la anterior.
center
Podemos importar fuentes de nuestro ordenador con la regla @font-face y luego modificar la
propiedad font-family:
Otra forma es importarla directamente de internet de recursos como Google Font® o similares
mediante una instrucción LINK
Ejemplo:
<link href='https://fonts.googleapis.com/css?family=Indie+Flower'
rel='stylesheet' type='text/css'>
EJEMPLO:
P {
color: red;
border-color: yellow;
border: dotted 3px;
}
➢ En la primera regla se establece el color de los párrafos en rojo (puesto que el color
que toma el borde es aquel que el elemento usa para el primer plano, el color de
borde se ha establecido en rojo).
➢ En la segunda regla se establece el color del borde en amarillo, anulando el color
rojo de la primera línea (para el borde, el texto seguirá rojo).
➢ En la tercera regla se usa una propiedad resumida que establece estilo, grosor y
color del borde. Al omitir el color, éste queda reseteado a su valor original: rojo. Por
tanto ESTAMOS CAMBIANDO UNA PROPIEDAD (el color del borde) AUNQUE NO ESTÉ ESCRITA.
NOTA 1: El orden en el que aparecen los distintos valores en una propiedad resumida es irrelevante.
border: red dotted 3px; sería equivalente a border: 3px red dotted;
NOTA 2: El orden en que aparecen las reglas SI es importante. Si en el ejemplo anterior cambiamos
el orden de la 2ª y 3ª regla, el color del borde será amarillo.
2.6 Listas
Las siguientes propiedades sólo se aplican a los elementos de tipo lista, esto es, todos aquellos a los
que asignemos display: list-item; y a los que ya lo tienen por defecto como el elemento LI de
HTML.
PROPIEDAD VALORES DESCRIPCIÓN
decimal desde 1
decimal-leading-zero decimal desde 01 siempre con dos cifras
lower-roman números romanos minúsculas
upper-roman números romanos mayúsculas
georgian numeración georgiana
armenian numeración armenia
list-style-type lower-latin o lower-alpha alfabeto latino minúscula
upper-latin o upper-alpha alfabeto latino mayúscula
lower-greek alfabeto griego
disc círculo
circle circunferencia
square cuadrado
none Sin viñeta
imagen que queremos usar. Es conveniente poner
list-style-image url también un valor de list-style-type para el que
recurrirá si hay problemas con la imagen
inside la segunda línea comienza debajo de la viñeta
list-style-position
outside la viñeta se queda a la izquierda de todas las líneas
list-style propiedad resumida: tipo, imagen y estilo
2.7 Tablas
Las propiedades para tablas se aplican a los elementos con los siguientes valores para la propiedad
display: table, inline-table, table-row-group, table-header-group, table-footer-group, table-row,
table-column-group, table-column, table-cell, table-caption.
En HTML esos elementos son: TABLE, TR, THEAD,.. etc. Recuérdese que CSS no sólo se aplica
a HTML, también se aplica a otros lenguajes como XML y esos otros lenguajes pueden no tener
ningún elemento así definido por defecto. En esos casos tendremos que hacerlo explícitamente con
la propiedad display.
Las celdas heredan propiedades de columnas y grupos de columnas aunque no sean descendientes,
que no lo son.
Después de establecer el border-collapse siguen sin verse los bordes, porque el estilo por defecto de
bordes es "none". Tendremos que aplicar border-style al elemento de la tabla que queramos que
tenga bordes (celda, fila, columna, grupo de filas o columnas) mientras que el border-collapse se
aplica a la tabla entera.
Existe la posibilidad de establecer un tamaño fijo a todas las celdas de la tabla. Esto permite que el
navegador muestre más rápido la tabla ya que conoce el espacio que ocupa. Mediante la propiedad
table-layout y con el valor fixed todas las celdas tendrán el mismo tamaño que estableceremos con
width
table {
table-layout: fixed;
width: 150px;
border-collapse: collapse;
border: 3px solid purple;
}
Margen (margin)
Borde (border)
Relleno (padding)
Contenido
NOTA: las medidas de los márgenes pueden ser absolutas o relativas. Cuando son relativas se
refieren a la anchura de la caja de contención. Ojo! tanto si definimos distancias verticales como
distancias horizontales se toma como referencia la ANCHURA de la caja de contención.
La propiedad margin nos permite establecer el tamaño de todo el margen (de los cuatro lados) de
una sola vez. Esta propiedad puede tener como valor 1, 2, 3, ó 4 medidas.
➢ Si se ponen 4 medidas el orden es: top, right, bottom, left, es decir, en el sentido de
las agujas del reloj comenzando desde arriba.
➢ si se ponen 3: top, right, bottom (left será igual a right)
➢ si se ponen 2: top, right (left será igual a right, bottom será igual a top)
EJEMPLO: Los párrafos tendrán un margen izquierdo de 2 cms. y un margen derecho de 1 cm.
P {
margin-left: 2cm;
margin-right: 1cm;
}
EJEMPLO: Margen de 1 cm. arriba, 2 pulgadas a la derecha, 2 picas abajo y 2 puntos a la derecha
P {
margin: 1cm 2in 2pc 2pt;
}
EJEMPLO: Margen de 1 cm. arriba y abajo, 2 pulgadas a la derecha y a la izquierda
P {
margin: 1cm 2in;
}
EJEMPLO: Margen de 1 cm. por todo el contorno del párrafo
P {
margin: 1cm;
}
✔ absolute: Se utiliza para colocar los elementos en una posición exacta en la página. La
posición establecida por las propiedades top, right, bottom y left son medidas respecto al
elemento contenedor. El resto de elementos modifican sus propiedades para ocupar el hueco
dejado. Para establecer la posición, antes tiene que establecer su elemento contenedor. El
elemento contenedor será el elemento que esté posicionado de cualquier forma menos static.
Una vez establecido el elemento contenedor, se aplican las propiedades top, right, bottom y
left siendo medidas desde y no hacia.
Por defecto, todos los elementos tendrán display:inline pero el motivo de que veamos
comportamientos distintos en los elementos de HTML es que el navegador aplica una hoja de estilo
por defecto para HTML estableciendo los comportamientos de visualización que ya conocemos. En
esa hoja por defecto es donde se determina cuáles de los elementos HTML son de bloque y cuáles
son de línea.
(*) forma: CSS 2.1 sólo admite el rectángulo como forma y la sintaxis es rect (arriba, dcha, abajo,
izqda) que define el rectángulo visible para la propiedad clip. arriba y abajo son medidas tomadas
desde la parte superior de la caja original; izqda y dcha son medidas tomadas desde la izquierda de
la caja original.
EJEMPLO:
P {
position: absolute;
clip: rect(2cm, 8cm, 10cm, 3cm );
}
Estará visible la parte de la caja que va desde el 2º centímetro al 10º contando desde arriba y desde
el 3º al 8º contando desde la izquierda:
3 cm.
8 cm.
2 cm.
10 cm.
2.8.8 Flotantes
DESCRIPCIÓN PROPIEDADES OBSERVACIONES
LÍNEAS FLOTANTES:
Son cajas que, dentro del bloque, se desplazan a la
izquierda o a la derecha, saliendo del bloque.
Obliga a fluir al resto del contenido del bloque
utilizando el ancho disponible.
Nunca se puede superponer a otras flotantes, de
(*)se puede evitar que sean
modo que si no caben, se desplazará hacia abajo.
adyacentes con la propiedad
Los siguientes bloques serán adyacentes (si
clear: right | left | both
caben(*)) o desplazarse hacia abajo.
que indica el lado que ese
Los márgenes de la flotante y el bloque NO se
elemento debe tener “limpio”
cierran. float: right (que no haya nada).
1º Una flotante estará tan arriba como le sea posible o
2º Una flotante de izquierdas estará tan a la float: left
izquierda como le sea posible y una de derechas
estará tan a la derecha como le sea posible
3º En caso de conflicto primero (1º) gana a segundo
(2º)
BLOQUES FLOTANTES:
La anchura de la caja será el
Se desplazará hacia el lado indicado y su anchura
mínimo que permita alojar su
dejará de ser el total del ancho disponible. El resto
contenido (salvo lo dispuesto
del documento fluirá por el lado que queda libre
con width)
(salvo lo dispuesto con la propiedad clear).
2.8.10Posicionamiento Fijo
Descripción Propiedades Observaciones
Establece una posición fija con respecto al acceso visual
(borde de la ventana o del folio).
No será afectado por scroll en medios continuos fijaremos la
Se repite en cada página en medios paginados (para, por posición exacta
ejemplo, encabezados y pies) position: fixed con las
Una caja con posicionamiento absoluto se sale del flujo propiedades top,
normal. No afecta a la colocación del resto de elementos e bottom, right, left
incluso puede superponerse con otras cajas porque no fluye.
Sus márgenes no se cierran.
2.9.2 Text-shadow
Crea una sombra al texto. La sintaxis es:
tex-shadow: valor-y, valor-x, desenfoque, color;
text-shadow: 2px, 1px, 3px, black;
2.9.3 Gradiente
Cambia el color de forma incremental cambiando entre colores. Existen varios tipos, el lineal y el
radial en función de si el cambio de color es utilizando líneas rectas o círculos.
linear-gradient (dirección, color1, color2,…);
La dirección se puede omitir o utilizar los valores: to right, to left, to bottom right, to top right, …
o incluso ángulos: 90deg, -20deg, ….
2.10 Contadores
Permiten numerar de forma automática elementos del documento fuente: párrafos, títulos,
imágenes, etc. Los contadores permiten hacer tres cosas:
➢ iniciarlos
➢ incrementarlos
➢ mostrarlos
PARA INICIARLOS se usa la propiedad counter-reset. El valor de esta propiedad será el nombre del
contador y un número que indica el valor inicial del contador (si se omite, toma 0 por defecto):
H1 {
counter-reset: parrafo 1;
}
En cada encabezado H1 el contador de nombre parrafo tomará el valor 1.
PARA INCREMENTARLOS se usa la propiedad counter-increment. El valor de esta propiedad será el
nombre del contador y un número que indica en cuantas unidades se incrementa (si se omite, se
incrementa en 1 por defecto)
P {
counter-increment: parrafo;
}
En cada párrafo se incrementará en uno el contador de nombre parrafo.
PARA MOSTRARLOS se usa la propiedad content, que como ya conocemos permite incluir contenido
generado con los pseudo-elementos before o after. El valor será counter (nombreContador,
estiloLista). El estilo de lista será uno de los valores reconocidos para list-style-type
P:before {
content: counter(parrafo, upper-roman);
}
Delante de cada párrafo se mostrará el valor del contador llamado párrafo, en números romanos
mayúscula.
Si juntamos los tres ejemplos el resultado será que delante de todos los párrafos aparecerá
numeración en romanos mayúscula. La numeración se iniciará en cada apartado, en realidad, en
cada H1.
NOTA1: Cuando en un mismo elemento tenemos más de una operación sobre un contador, el orden
en el que se aplican es: reseteo, incremento y visualización, aunque estén escritas en otro orden.
NOTA2: Un contador en un elemento con display:none no se resetea ni se incrementa. Un contador
en un elemento con visibility:hidden si se puede resetear e incrementar.
NOTA3: Si necesitamos resetear/incrementar varios contadores en un mismo elemento habrá que
hacerlo en un sola regla, de lo contrario sólo se ejecutará el último.
EJEMPLO:
H1 {
counter-reset: seccion;
}
H1 {
counter-reset: capitulo;
}
Este código sólo reseteará el contador llamado capitulo. (porque ambos actúan sobre el selector H1
y puesto que se trata de la misma propiedad, la última escrita anula a la primera) Si deseamos
resetear ambos tenemos que hacerlo en una sola regla:
H1 {
counter-reset: sección capitulo;
}
2.10.1Contadores anidados
Cuando usamos contadores en elementos que están anidados en el documento fuente, (por ejemplo
en los LI de listas anidadas), en cada nivel de anidamiento se crea una nueva instancia del contador
que es independiente del nivel superior y, por tanto, las operaciones de reseteo o incremento tienen
efecto sólo en ese nivel.
Ejemplo:
LI {
counter-increment: indice;
}
aplicado sobre listas anidadas, tendremos un contador llamado indice por cada nivel de
anidamiento. En cada LI se incrementa sólo la instancia del contador indice correspondiente al
nivel en que se encuentra.
Para mostrar todas las instancias de un contador se usa la propiedad counters (Obsérvese que acaba
en s y por tanto es distinta de la propiedad counter):
LI:before {
content: counters(cont, "separador");
}
EJEMPLO:
LI:before {
content: counters(indice, ".");
}
Muestra todas las instancias de los contadores de nombre indice separados por puntos, en orden
desde el nivel más externo de anidamiento hasta el actual.
EJEMPLO: DIFERENCIA ENTRE LA NUMERACIÓN DE UNA LISTA OL Y UNA LISTA CON CONTADORES ANIDADOS:
@charset "UTF-8";
UL {
counter-reset: indice;
}
UL LI {
counter-increment: indice;
}
UL LI:before {
content: counters(indice, ".") " ";
}
UL {
list-style-type: none;
}
******************************************************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<TITLE>Contadores Anidados</TITLE>
<LINK rel="stylesheet" type="text/css" href="contadores.css">
</HEAD>
<BODY>
<OL>
<LI>Mi libro con una lista ordenada
<OL>
<LI>tema 1
<OL>
<LI>apartado</LI>
<LI>apartado</LI>
</OL>
</LI>
<LI>tema 2
<OL>
<LI>apartado</LI>
<LI>apartado</LI>
</OL>
</LI>
<LI>tema 3
<OL>
<LI>apartado</LI>
<LI>apartado</LI>
</OL>
</LI>
</OL>
</LI>
</OL>
<HR>
<UL>
<LI>Mi libro con contadores anidados
<UL>
<LI>tema 1
<UL>
<LI>apartado</LI>
<LI>apartado</LI>
</UL>
</LI>
<LI>tema 2
<UL>
<LI>apartado</LI>
<LI>apartado</LI>
</UL>
</LI>
<LI>tema 3
<UL>
<LI>apartado</LI>
<LI>apartado</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</BODY>
</HTML>
Podemos incluir código CSS en función del medio al que se le va a aplicar, incluyendo el atributo
media en la etiqueta LINK.
NOTA: podemos ver el efecto de esta regla también en un navegador, si mostramos la vista previa.
(En Mozilla: Archivo/Vista preliminar)
NOTA: En Chrome o en Chromium con Archivo/Imprimir, pero antes hemos de habilitar la vista
previa en la página about:flags, y habilitar también el visor PDF en about:plugins y reiniciar el
navegador. Chromium no dispone de visor PDF, pero podemos usar el de Chrome copiando el
fichero libpdf.so de la carpeta /opt/google/chrome/ de una instalación Chrome a la carpeta /usr/lib/
chromium-browser/ de una instalación Chromium.
La regla @import nos permite incluir las reglas CSS que tenemos en un fichero externo:
@import url(“fichero.css”);
El efecto será el mismo que tendría escribir esas reglas en ese punto del documento.
Podemos restringir el efecto de una regla @import a un único tipo de medios (o a varios separados
por comas):
@import url(“fichero.css”) nombreMedio1, nombreMedio2;
NOTA: Recuerda que las reglas @ tienen que ir colocadas al principio del documento CSS, antes de
los sistemas de reglas y que la primera regla @ habrá de ser obligatoriamente @charset sin poder
estar precedida ni siquiera de un espacio.
Margen de página
Área de página
Cada página se considera una caja especial formada por dos cajas concéntricas: el margen y el área.
Para actuar sobre los márgenes de una caja de página usamos las propiedades margin ya conocidas
pero el selector habrá de ser uno de los siguientes:
SELECTOR PÁGINAS SOBRE LAS QUE ACTÚA
@page Actúa sobre todas las páginas
@page :first Sólo afecta a la primera página. Útil para crear una portada
@page :left Afecta sólo a las páginas de la izquierda o de la derecha. Útil cuando se prepara una
@page :right impresión a doble cara y necesitamos márgenes distintos en cada lado.
EJEMPLO:
@page :first {
margin: 4cm;
}
Establece un margen de 4 centímetros por los cuatro lados, pero sólo para la primera página del
documento.
El selector @page :first tiene prioridad sobre @page :left y @page :right y éstos tienen prioridad
sobre @page.
NOTA: Para que funcione en Firefox debemos incluir los selectores @page en la regla @media
print
NOTA: Los selectores @page son eso: selectores y no reglas @ aunque la notación pueda llevar a
confusión.
En el contexto de páginas no se permiten las unidades em y ex, que hacen referencia a los tamaños
de la fuente. El resto de las unidades CSS son válidas. Si utilizamos porcentajes se tomará como
referencia al ancho de la caja de página para los márgenes izquierdo/derecho y el alto de la página
para los márgenes arriba/abajo.
Habrá que controlar especialmente elementos cuyo contenido desborde el tamaño o que puedan
tener un posicionamiento fuera de la página o muchas páginas más abajo generando páginas en
blanco.
2.12 Interfaz de usuario
A las formas de elegir un color ya vistas, podemos añadir una serie de palabras clave que hacen
referencia a los colores que el sistema operativo esté usando en este momento, con la intención de
integrar el contenido de la página como si se tratara de una ventana más del sistema.
EJEMPLO:
P {
border-color: ActiveBorder;
}
seleccionará el color que en este momento se esté usando para el borde la ventana activa.
El listado de posibilidades es amplio y puedes consultarlo en las páginas 239 y 240 de la
especificación de la W3C para CSS 2.1. En CSS 3 está desaprobado este uso de los colores.