Introducción a CSS: Ventajas y Usos
Introducción a CSS: Ventajas y Usos
El lenguaje HTML est limitado a la hora de aplicarle forma a un documento. Esto es as porque fu concebido para otros usos (cientficos sobretodo), distinto a los actuales, mucho ms amplios. Para solucionar estos problemas los diseadores han utilizado tcnicas tales como la utilizacin de tablas imagenes transparentes para ajustarlas, utilizacin de etiquetas que no son estdares del HTML y otras. Estas "trampas" han causado a menudo problemas en las pginas a la hora de su visualizacin en distintas plataformas. Adems, los diseadores se han visto frustrados por la dificultad con la que, aun utilizando estos trucos, se encontraban a la hora de maquetar las pginas, ya que muchos de ellos venian maquetando pginas sobre el papel, donde el control sobre la forma del documento es absoluto. Finalmente, otro antecedente que ha hecho necesario el desarrollo de esta tecnologa consiste en que las pginas web tienen mezclado en su cdigo HTML el contenido del documento con las etiquetas necesarias para darle forma. Esto tiene sus inconvenientes ya que la lectura del cdigo HTML se hece pesada y difcil a la hora de buscar errores o depurar las pginas. Aunque, desde el punto de vista de la riqueza de la informacin y la utilidad de las pginas a la hora de almacenar su contenido, es un gran problema que estos textos esten mezclados con etiquetas incrustadas para dar forma a estos: se degrada su utilidad. En estas pginas de CSS pretendemos dar a conocer la tecnologa con un enfoque prctico para que en pocos captulos podis usar las CSS de una manera depurada, reflejando toda nuestra experiencia en su uso. No pretendendemos explorar todos los aspectos de la tecnologa ya que para realizar esto necesitariamos un la extensin de un libro entero.
Un web entero, de modo que se puede definir la forma de todo el web de una sola vez.
Un documento HTML o pgina, se puede definir la forma, en un pequeo trozo de cdigo en la cabecera, a toda la pgina. Una porcin del documento, aplicando estilos visibles en un trozo de la pgina.
Una etiqueta en concreto, llegando incluso a poder definir varios estilos diferentes para una sola etiqueta. Esto es muy importante ya que ofrece potencia en nuestra programacin. Podemos definir, por ejemplo, varios tipos de prrafos: en rojo, en azul, con margenes, sin ellos... La potencia de la tecnologa salta a la vista. Pero no solo se queda aqu, ya que adems esta sintaxis CSS permite aplicar al documento formato de modo mucho ms exacto. Si antes el HTML se nos quedaba corto para maquetar las pginas y tenamos que utilizar trucos para conseguir nuestros efectos, ahora tenemos muchas ms herramientas que nos permiten definir esta forma:
Podemos definir la distancia entre lneas del documento. Se puede aplicar identado a las primeras lneas del prrafo. Podemos colocar elementos en la pgina con mayor precisin, y sin lugar a errores. Y mucho ms, como definr la visivilidad de los elementos, margenes, subrallados, tachados...
Y seguimos mostrandoos ventajas, ya que si con el HTML tan slo podamos definir atributos en las pginas con pixeles y porcentajes, ahora podemos definir utilizando muchas ms unidades como:
Pixels (px) y porcentaje (%), como antes. Pulgadas (in) Puntos (pt) Centmetros (cm)
ejemplo, Microsoft Internet Explorer 3 no soporta todo lo relativo a capas. Esto quiere decir que debemos de usar esta tecnologa con cuidado, ya que muchos usuarios no podrn ver los formatos que apliquemos a las pginas con CSS. As pues, utilizad las hojas de estilos cuando estas no vayan a suponer un problema.
Que tiene como resultado: Esto es un prrafo en varias palabras en color verde. Resulta muy fcil.
<p style="color:#990000"> Esto es un prrafo de color rojo. </p> <p style="color:#000099"> Esto es un prrafo de color azul. </p>
Que tiene como resultado: Esto es un prrafo de color rojo. Esto es un prrafo de color azul.
Que tiene por resultado: Estas etiquetas van en azul y negrita. Seguimos dentro del DIV, luego permanecen los etilos.
Uso de las CSS II: Estilo definido para toda una pgina
Podemos definir, en la cabecera del documento, estilos para que sean aplicados a toda la pgina. Es una manera muy cmoda de darle forma al documento y muy potente, ya que estos estilos sern seguidos en toda la pgina y nos ahorraremos as muchas etiquetas HTML que apliquen forma al documento. Adems, si deseamos cambiar los estilos de la pgina lo haremos de una sola vez.
Este ejemplo es ms complicado, puesto que se utiliza la sintaxis CSS de manera ms avanzada. Pero no te preocupes puesto que con los ejemplos irs aprendiendo su uso y ms tarde comentaremos la sintaxis en profundidad. En el ejemplo vemos que se utiliza la etiqueta <STYLE> colocada en la cabecera de la pgina para definir los distintos estilos del documento. A grandes rasgos, entre de <STYLE> y </STYLE>, se coloca el nombre de la etiqueta que queremos definir los estilos y entre llaves -{}- colocamos en sintaxis CSS las caractersticas de estilos.
<html> <head> <title>Ejemplo de estilos para toda una página</title> <STYLE type="text/css"> <! -H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: white; background-color: black} BODY {color:black;background-color: #cccccc; text-indent:1cm} // --> </STYLE> </head> <body> <h1>Página con estilos</h1> Bienvenidos... <p>Siento ser tan hortera, pero esto es un ejemplo sin más importancia</p> </body> </html>
Como se puede apreciar en el cdigo, hemos definido que la etiqueta <H1> se presentar:
Subrallado Centrada
Tambin, por ejemplo, hemos definido que el cuerpo entero de la pgina (etiqueta <BODY>) se le apliquen los estilos siguientes:
Color del texto negro Color del fondo grisaceo Margen lateral de 1 centmetro
Caber destacar que si aplicamos estilos a la etiqueta <BODY>, estos sern heredados por el resto de las etiquetas del documento. Esto es as siempre y cuando no se vuelvan a definir esos estilos en las siguientes
etiquetas, en cuyo caso el estilo de la etiqueta ms concreta ser el que mande. Puede verse este detalle en la etiqueta <P>, que tiene definidos estilos que ya fueron definidos para <BODY>. Los estilos que se tienen en cuenta son los de la etiqueta <P>, que es ms concreta. Por ltimo, ha de apreciarse los comentarios HTML que engloban toda la declaracin de estilos: <!--Declaracin de estilos-->. Estos comentarios se utilizan para que los navegadores antiguos, que no comprenden la sintaxis CSS, no incluyan ese texto en el cuerpo de la pgina. Si no se pusiera, los navegadores antiguos (por ejemplo Netscape 3) escribiran ese "feo cdigo" en la pgina. Hemos preparado la misma pgina, pero con declaraciones de estilos distintas, para que comprobis las diferencias en la forma del documento con slo unos cambios en sus estilos.
Es un fichero de texto normal, que puede tener cualquer extensin, aunque le podemos asignar la extensin .css para aclararnos qu tipo de archivo es. El texto que debemos incluir debe ser escrito exclusivamente en sintaxis CSS, es decir, sera erroneo incluir cdigo HTML en el: etiquetas y dems. Podemos ver un ejemplo a continuacin.
P { font-size : 12pt; font-family : arial,helvetica;
font-weight : normal; } H1 { font-size : 36pt; font-family : verdana,arial; text-decoration : underline; text-align : center; background-color : Teal; } TD { font-size : 10pt; font-family : verdana,arial; text-align : center; background-color : 666666; } BODY { background-color : #006600; font-family : arial; color : White; }
rel="STYLESHEET" indicando que el enlace es con una hoja de estilos type="text/css" porque ela archivo es de texto, en sintaxis CSS href="[Link]" indica el nombre del fichero fuente de los estilos
Veamos una pgina web entera que enlaza con la declaracin de estilos anterior:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <link rel="STYLESHEET" type="text/css" href="[Link]"> <title>Página que lee estilos</title> </head> <body> <h1>Página que lee estilos</h1> Esta página tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de estilos. Es muy fácil. <br> <br> <table width="300" cellspacing="2" cellpadding="2" border="0"> <tr> <td>Esto está dentro de un TD, luego tiene estilo propio, declarado en el fichero externo</td> </tr> <tr>
Declaracin de estilos con fichero externo. (Para todo un sitio web) Declaracin de estilos para toda la pgina. (Con la etiqueta <STYLE> en la cabecera de la pgina) Estilos definidos en una parte de la pgina. (Con la etiqueta <DIV>) Definidos en una etiqueta en concreto. (Utilizando el atributo style en la etiqueta en cuestin) Declaracin de estilo para una porcin pequea del documento. (Con la etiqueta <SPAN>)
Ya vimos cmo incluir estilos en la pgina, de todas las maneras posibles e hicimos un repaso con la lista anterior. Ahora ests en condiciones de empezar a usar las hojas de estilo en cascada para mejorar tus pginas y aumentar la productividad de tu trabajo. Pero estate atento a los siguientes captulos donde aprenders las lecciones que te faltan para dominar bien la materia: conocer la sintaxis, los distintos atributos de estilos y otras cosas que mejorarn tus pginas.
El funcionamiento es el mismo que si escribisemos todo el fichero a importar dentro de las etiquetas de los estilos, con la salvedad de que, si redefinimos dentro del cdigo HTML (entre las etiquetas </style>) estilos que haban quedado definidos en el archivo externo, los que se aplicarn sern los que hayamos redefinido. As, en el ejemplo anterior, aunque hubisemos definido en [Link] un color de fondo para la pgina, el color que prevalecera sera el definido a continuacin de la importacin: #ffffcc La diferencia entre este tipo de importacin del tipo y la que hemos visto anteriormente:
<link rel="stylesheel" type="text/css" href="[Link]">
Es que @import url ("[Link]") se suele utilizar cuando hay unas pautas bsicas en el trabajo con los estilos (que se definen en un archivo a importar) y unos estilos especficos para cada pgina, que se
definen a continuacin, dentro del cdigo HTML entre las etiquetas </style>, como es el caso del ejemplo visto anteriormente.
Sintaxis CSS
Tal como se vi en los ejemplos la sintaxis es bastante sencilla y repetitiva. Vamos a verla:
Para definir un estilo se utilizan atributos como font-size,textdecoration... segudos de dos puntos y el valor que le deseemos asignar. Podemos definir un estilo a base de definir muchos atributos separados por punto y coma.
Ejemplo:
font-size: 10pt; text-decoration: underline; color: black; (el ltimo punto y coma de la lista de atributos es opcional)
Para definir el estilo de una etiqueta se escribe la etiqueta seguida de la lista de atributos encerrados entre llaves.
Ejemplo:
H1{text-align: center; color:black}
Los valores que se pueden asignar a los atributos de estilo se pueden ver en una tabla en el siguiente captulo. Muchos de estos valores son unidades de medida, por ejemplo, el valor del tamao de un margen o el tamao de la fuente. Las unidades de medida son las siguientes:
Unidades fijas: Puntos: pt Pulgadas: in Centmetros: cm pixels: px Unidades relativas: tanto por ciento: % Ancho de la letra 'M' mayscula de la tipografa usada o por defecto del navegador: em
Nota de ScourDesign
Por cuestiones de accesibilidad se recomienda siempre usar medidas relativas por lo menos para el texto, de modo que el usuario pueda ampliar su tamao si padece de problemas de visin.
Hasta aqu, queda dicho todo lo relativo a la sintaxis. En el siguiente captulo podrs encontrar una lista de los atributos de las hojas de estilo en cascada.
NOMBRE
DEL
ATRIBUTO
POSIBLES
VALORES
EJEMPLOS
color
Sirve para indicar el color del texto. Lo admiten casi todas las etiqetas de HTML. No todos los nombres de colores son admitidos en el estandar, es aconsejable entonces utilizar el valor RGB. xx-small | x-small | small | medium | large | x-large | xx-large Unidades de CSS Sirve para indicar el tamao de las fuentes de manera ms rgida y con mayor exactitud. serif | sans-serif | cursive | fantasy | monospace
font-family:arial,helvetica;
font-size
font-family
font-size: fantasy;
Todas las fuentes habituales Con este atributo indicamos la familia de tipografia del texto. Los primeros valores son genricos, es decir, los exploradores las comprenden y utilizan las fuentes que el usuario tenga en su sistema. Tambin se pueden definir con tipografas normales, como ocurra en html. Si el nombre de una fuente tiene espacios se utilizan comillas para que se entienda bien. normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
font-weight
Sirve para definir la anchura de los caracteres, o dicho de otra manera, para poner negrillas con total libertad. Normal y 400 son el mismo valor, as como bold y 700.
font-style:normal;
font-style
Es el estilo de la fuente, que puede ser normal, itlica u oblcua. El estilo oblique es similar al italic. PRRAFOS TEXT
line-height: 12px;
line-height
El alto de una lnea,y por tanto, el espaciado entre lneas. Es una de esas caractersticas que no se podian mofificar utilizando HTML. none | [ underline || overline || line-through ]
text-decoration: none; text-decoration: underline;
textdecoration
text-align
Sirve para indicar la alineacin del texto. Es interesante destacar que las hojas de estilo permiten el justificado de texto, aunque recuerda que no tiene por que funcionar en todos los sistemas.
text-indent: 10px;
text-indent
Unidades CSS
text-indent: 2in;
Un atributo que sirve para hacer sangrado o mrgenes en las pginas. Muy til y novedosa. capitalize | uppercase | lowercase | none
text-transform: none; text-transform: capitalize;
text-transform
Nos permite transformar el texto, haciendo que tenga la primera letra en maysculas de todas las palabrs, todo en maysculas o minsculas. FONDO BACKGROUND
Backgroundcolor
Sirve para indicar el color de fondo de un elemento de la pgina. El nombre de la imagen con su camino relativo o absoluto
background-image: url([Link]) ; background-image: url([Link]
Backgroundimage
Colocamos con este atributo una imagen de fondo en cualquier elemento de la pgina BOX CAJA
margin-left: 1cm;
Margin-left
Unidades CSS
margin-left: 0,5in;
margin-right: 5%;
Margin-right
Unidades CSS
margin-right: 1in;
Margin-top
Unidades CSS
margin-top: 10px;
Margin-bottom
Unidades CSS
margin-top: 1px;
Padding-left
Unidades CSS
padding-left: 1px;
Indica el espacio insertado, por la izquierda, entre el borde del elemento-continente y el contenido de este. Es parecido a el atributo cellpadding de las tablas. El espacio insertado tiene el mismo fondo que el fondo del elemento-continente.
padding-right: 0.5cm;
Padding-right
Unidades CSS
padding-right: 1pt;
Indica el espacio insertado, en este caso por la derecha, entre el borde del elemento-continente y el contenido de este. Es parecido a el atributo cellpadding de las tablas. El espacio insertado tiene el mismo fondo que el fondo del elemento-continente.
padding-top: 10pt;
Padding-top
Unidades CSS
padding-top: 5px;
Indica el espacio insertado, por arriba, entre el borde del elemento-continente y el contenido de este.
padding-right: 0.5cm;
Padding-bottom
Unidades CSS
padding-right: 1pt;
Indica el espacio insertado, en este caso por abajo, entre el borde del elementocontinente y el contenido de este. color RGB y nombre de color
border-color: red; border-color: #ffccff;
Border-color
Para indicar el color del borde del elemento de la pgina al que se lo aplicamos. Se puede poner colores por separado con los atributos border-top-color, border-rightcolor, border-bottom-color, border-left-color. none | dotted | solid | double | groove | ridge | inset | outset
border-style: solid; border-style: double;
Border-style
El estilo del borde, los valores significan: none=ningun borde, dotted=punteado (no parece funcionar), solid=solido, double=doble borde, y desde groove hasta outset son bordes con varios efectos 3D.
border-width: 10px;
border-width
Unidades CSS
border-width: 0.5in;
float: right;
Sirve para alinear un elemento a la izquierda o la derecha haciendo que el texto se agrupe alrededor de dicho elemento. Igual que el atributo align en imagenes en sus valores right y left.
clear
none | right | left clear: right;
Si este elemento tiene a su altura imagenes u otros elementos alineados a la derecha o la izquierda, con el atributo clear hacemos que se coloque en un lugar donde ya no tenga esos elementos a el lado que indiquemos.
Una vez tenemos una clase, podemos utilizarla en cualquier etiqueta HTML. Para ello utilizaremos el atributo class, ponindole como valor el nombre de la clase, de esta forma:
<ETIQUETA class="nombredelaclase">
text-decoration:none,
Tambin podemos definir el estilo de cada enlace en la propia etiqueta <A>, con el atributo style. De esta manera podemos hacer que determinados enlaces de la pgina se vean de manera distinta Ejemplo de estilos en enlaces:
<html> <head> <title>Ejemplos de estilo en enlaces</title> <STYLE type="text/css"> A:link {text-decoration:none;color:#0000cc;} A:visited {text-decoration:none;color:#ffcc33;} A:active {text-decoration:none;color:#ff0000;} A:hover {text-decoration:underline;color:#999999;font-weight:bold} </STYLE> </head>
<body> <a href="[Link] normal</a> <br> <br> <a href="[Link]">Enlace visitado</a> Pulsar este enlace para verlo activo, poner el ratón por encima para que cambie. </body> </html>
necesitan una URL como valor, para indicarlas podemos definir tanto caminos relativos como absolutos. As pues, podemos indicar la URL de la imagen de fondo de estas dos maneras:
background-image: url([Link])
si no lo est.
Quiero recordaros que siempre es til ver como han hecho sus pginas otros progradores de Internet. Para ver una pgina definida enteramente con hojas de estilos visitar la direccin [Link]
no visitado. Se define con el atributo link. visitado. Se define con el atributo visited. activo (cuando se est pulsando). Se define con active. con el reton encima. Se define con hover.
Esta definicin se realiza en la cabecera de la pgina, entre las etiquetas <STYLE> Y </STYLE>, y es global a toda la pgina. Un ejemplo de esto se puede ver en esta declaracin de estilos:
<STYLE type="text/css"> A:link {text-decoration:none;color:#0000cc;} A:visited {text-decoration:none;color:#ffcc33;} A:active {text-decoration:none;color:#ff0000;} A:hover {text-decoration:underline;color:#999999;} </STYLE>
Es por esto que los enlaces de la barra van a tener un color distinto de los definidos en la cabecera de la pgina, con los estilos. Esto lo podemos conseguir de esta manera.
<a href="#" style="color:#ff0000">Mi enlace</a>
Hemos definido el color de un enlace de una manera especfica, utilizando el atributo style, de modo que este enlace siempre tendr el color indicado, independientemente de su estado. Es un enlace amarillo, que quedara muy bien resaltado sobre un fondo oscuro.
La ventaja al utilizar las clases con los estilos de los enlaces es que podemos especificar un formato distinto al enlace dependiendo de su estado: visitado o no, activo o con el ratn sobre l. Por si no qued claro, al especificar el estilo con el atributo style del enlace slo podamos decir que el enlace lo queremos en amarillo, y siempre lo tendremos en amarillo (sea visitado o no, activo, o estemos o no con el ratn encima). Con las clases definimos un nuevo tipo de enlace al que podemos dar distintos formatos dependiendo su estado. Otras ventajas de utilizar las clases consisten en que escribimos una nica vez los estilos y que podemos cambiar el color de todos los enlaces de la clase con cambiar la delaracin.
A partir de lo que acabamos de aprender podemos crear el ejemplo de barra de navegacin dinmica utilizando CSS que habamos visto al principio del captulo. El cdigo sera el siguiente.
<html> <head> <title>Ejemplo CSS para enlaces</title> <style type="text/css"> A:link {color:#0000cc;} A:visited {color:#0000cc;} A:active {color:#0000cc;} A:hover {color:#0000ff;} A.clase1:visited {color:#ffff00;} A.clase1:active {color:#ffff00;} A.clase1:link {color:#ffff00} A.clase1:hover {color:#00ff00} A.clase2:visited {font-size:12;color:#ffffff;} A.clase2:active {font-size:12;color:#ffffff;} A.clase2:link {font-size:12;color:#ffffff;} A.clase2:hover {font-size:12;color:#ffff33;} body {font-family:arial;font-size:11;font-weight:bold} td {font-family:arial;font-size:11;font-weight:bold} </style> </head> <body> <a href="#">Este enlace es normal</a> <br> <br> <br> <span style="font-weight:normal;font-size:10"> Los enlaces de esta barra son especiales, <br> estn definidos por clases </span> <br> <table width="110" cellspacing="1" cellpadding="2" border="0"> <tr> <td bgcolor="#aa0000"><a href="#" class="clase2">Opciones 1</a></td> </tr> <tr> <td bgcolor="red"><a href="#" class="clase1">Enlace clase1</a></td> </tr> <tr> <td bgcolor="red"><a href="#" class="clase1">Otro de clase1</a></td> </tr> <tr> <td bgcolor="red"><a href="#" class="clase1">Ms enlaces</a></td> </tr> <tr> <td bgcolor="red"><a href="#" class="clase1">Todava ms</a></td> </tr>
exhaustiva la presentacin de los contenidos en la pgina. Para aplicar estilos a estas etiquetas se utiliza el atributo de HTML style, de esta manera:
<SPAN style="text-decoration:underline;font-weight:bold">...</SPAN> <DIV style="color:red;font-size:10px">...</DIV>
Como ya pudimos ver muchos ejemplos en el manual de CSS, nos referimos a l para ampliar esta informacin. Pero no habamos visto todava una serie de atributos que nos sirven para posicionar la divisin en la pgina como una capa. Estos atributos se pueden aplicar a la etiqueta <DIV> que es la que serva para crear capas compatibles con todos los navegadores. Los atributos para que la divisin sea una capa son varios y se pueden ver a continuacin.
<div id="c1" style="position:absolute; left: 200px; top: 100px;"> Hola! </div>
El primero, position, indica que se posicione de manera absoluta en la pgina y los segundos, left y top, son la distancia desde el borde izquierdo de la pgina y el borde superior. Hay otros atributos especiales para capas como width y height para indicar la anchura y altura de la capa, Z-index que sirve para indicar qu capas se ven encima de qu otras, clip que sirve para recortar una capa y hacer que partes de ella no sean visibles, o visibility para definir si la capa es visible o no. Estos y otros atributos los veremos en el siguiente captulo, donde hablaremos del posicionamiento de capas.
Antes que nada cabe decir que una capa puede tener cualquier atributo de estilos de los que hemos visto en el manual de CSS. As, el atributo color indica el color del texto de la capa, el atributo font-size indica el tamao del texto y as con todos los atributos ya vistos. Ahora bien, existen una serie de atributos que sirven para indicar la forma, el tamao de las capas, la visibilidad, etc, que no hemos visto en captulos anteriores y que veremos a continuacin.
Atributo position
Indica el tipo de posicionamiento de la capa. Puede tener dos valores, relative o absolute. - relative indica que la posicin de la capa es relativa a el lugar donde se estaba escribiendo en la pgina en el momento de escribir la capa con su etiqueta - absolute indica que la posicin de la capa se calcula con respecto al punto superior izquierdo de la pgina.
Atributo top
Indica la distancia en vertical donde se colocar la capa. Si el atributo position es absolute, top indica la distancia del borde superior de la capa con respecto al borde superior de la pgina. Si el atributo position era relative, top indica la distancia desde donde se estaba escribiendo en ese momento en la pgina hasta el borde superior de la capa.
Atributo left
Bsicamente funciona igual que el atributo top, con la diferencia que el atributo left indica la distancia en horizontal a la que estar situada la capa.
Atributo height
Atributo width
Sirve para indicar si la capa se puede ver en la pgina o permanece oculta al usuario. Este atributo puede tener tres valores. - visible sirve para indicar que la capa se podr ver. - hidden indicar que la capa est oculta. - inherit es el valor por defecto, que quiere decir que hereda la visibilidad de la capa donde est metida la capa en cuestin. Si la capa no est metida dentro de ninguna otra se supone que est metida en la capa documento, que es toda la pgina y que siempre est visible.
Atributo z-index
Sirve para indicar la posicin sobre el eje z que tendrn las distintas capas de la pgina. Dicho de otra forma, con z-index podemos decir qu capas se vern encima o debajo de otras, en caso de que estn superpuestas. El atributo z-index toma valores numricos y a mayor zindex, ms arriba se ver la pgina.
Atributo clip
Es un atributo un poco difcil de explicar. recortar determinadas reas de la capa y que no que est visible se puede recortar para que se algn trozo de esta. El cliping se indica por esta sintaxis.
rect (<top>, <right>, <bottom>, <left>)
En concreto sirve para se puedan ver. Una capa vea, pero que no se vea medio de 4 valores, con
Los valores <top>, <right>, <bottom> y <left> indican distancias que se pueden apreciar en este esquema.
Este es un ejemplo de capa que utiliza todos los atributos que hemos visto en este artculo y alguno ms para aplicar estilo a la capa.
<div style="clip: rect(0,158,148,15); height: 250px; width: 170px; left: 10px; top: 220px; position: absolute; visibility: visible; z-index:10; font-size: 14pt; font-family: verdana; text-align: center; background-color: #bbbbbb">
El problema de esta solucin es que la capa hara crecer la celda de la tabla donde queremos colocarla (al igual que cualquier otro elemento HTML que colocsemos dentro de la tabla) y es muy probable que nuestro diseo no nos permita este hecho. Seguramente ya habras notado este problema y si no es as te invito a que crees la capa que intentas colocar con el atributo position a relative para ver si con eso tu problema ya est resuelto. En casi todos los casos, la capa que intentamos colocar va a tener que tener el position absolute, porque con relative no arreglamos totalmente el problema. Entonces volvemos a el problema inicial, que era situar la capa con position absolute en el lugar exacto, independientemente de la definicin de pantalla. La solucin final que propongo pasa por aplicar algn truquillo. De hecho, estuve hace unos das preguntndome sobre esa cuestin y al final encontr la solucin, aunque no se me ocurri a mi, sino que la extraje [Link]. La idea es un poco compleja y para su puesta en marcha debemos realizar una serie de acciones que, sinceramente, considero excesivas para un problema inicialmente sencillo. As pues, que no asuste lo que voy a soltar a continuacin, que luego tratar de explicarlo un poco mejor. Nuestro esquema de trabajo consistir en una capa con posicin relativa, que nos servir de "ancla" y otra con la posicin absoluta, donde colocaremos el contenido final a mostrar en la capa. La capa relativa la colocaremos en el lugar aproximado donde queramos que aparezca la capa absoluta. La capa absoluta la posicionaremos, una vez cargada la pgina, en un lugar prximo a la capa relativa. Por supuesto, estas acciones las vamos a tener que realizar con Javascript, que es el lenguaje que nos permite actualizar las posiciones de las capas dinmicamente.
Detenidamente
Decamos que habra que colocar una capa relativa cercana al lugar donde tiene que aparecer la capa con position absolute. Insisto en que las capas relativas se colocan en el lugar donde las metemos dentro del
cdigo HTML, por lo que ser fcil colocar la capa relativa en el lugar exacto y que este lugar sea vlido para cualquier definicin. La segunda capa, la que tiene el contenido final, la pondremos inicialmente en una posicin cualquiera y escondida, de manera que no se vea que est mal colocada. Una vez terminada de cargar la pgina, podremos acceder a la posicin de la capa relativa, extrayendo sus valores top y left y colocndolos en los correspondientes top y left de la capa con posicin absoluta. Una vez marcada la posicin de la capa absoluta podemos volverla visible. A la vista de la imagen siguiente, la capa con posicin relativa la hemos colocado en el enlace. En realidad habra tres capas con posicin relativa para poder posicionar otras tantas capas con posicin absoluta. La parte que vemos sombreada de verde corresponde al espacio que abarcara la capa relativa.
Su posicin sera la que est marcada por el aspa roja que aparece en su esquina superior izquierda. Dicha posicin depende del lugar donde aparezcan los enlaces en la pgina. Luego, con Javascript deberamos asignar la posicin de la capa absoluta de una manera parecida a esta. left de la capa absoluta = left de la capa relativa top de la capa absoluta = top de la capa relativa + altura de la capa relativa Podemos sumarle algn pxel ms a la posicin de la capa, si es que queremos moverla un poco abajo y a la derecha, tal como hemos visto en la imagen.
No pretendo en este artculo, muy a mi pesar y por falta de espacio y tiempo, explicar cmo se hacen esas operaciones de Javascript. Advierto que si no se conoce nada de Javascript va a ser imposible ponerse con una tarea tan tediosa como el manejo de capas. Si por el contrario, ya hemos tenido contacto con Javascript y DHTML anteriormente, no debera ser un problema realizar esas acciones.
A la hora de asociar la hoja de estilos, se le aade un modificador a la etiqueta HTML que enlaza con el fichero .css que permite especificar para qu tipo de medio se aplicar esta hoja. En nuestro caso, se aplica en el mbito de la impresin, por lo que se utiliza el atributo media="print".
<link media="print"> href="nombre_hoja" rel="stylesheet" type="text/css"
Una vez hecho esto, basta que toda nuestra pgina este dentro de un elemento div, que pertenezca a la clase nover.
<body> <div -</div> </body> class="nover"> --
Contenido
Al hacer esto se provoca que en pantalla se visualice la pgina, pero que si por el contrario se decide imprimir, se le aplicar la hoja de estilos de impresin, en la que el elemento esta puesto como no visible, por lo que no se imprimir.
Cdigo Completo:
Veamos el cdigo ntegro de la pgina web y la hoja de estilos asociada.
Pgina HTML:
<html> <head> <link </head> <body> <div </div> </body> </html>
href="[Link]"
rel="stylesheet"
type="text/css"
media="print">
contenido
de
la
class="nover"> pagina