Hojas de estilo: CSS
Transcripción
Hojas de estilo: CSS
Hojas de estilo: CSS Con la intención de separar el contenido de la presentación y de ofrecer mayores y más fáciles posibilidades de presentación el W3 Consortium sugirió la utilización de las Hojas de Estilo (CSS, Cascade Style Sheet) en la Web. En la actualidad las especificaciones CSS se encuentran en el nivel 2, aunque las del nivel 1 (CSS1)son las más soportadas. 1. Sintaxis CSS Una hoja de estilo está formada de un conjunto de reglas de estilo que le dice al navegador como presentar un documento. Cada regla de estilo consta de dos partes: Selector { propiedad: valor;... } 1. Selector. Representa una etiqueta estándar del HTML. 2. Declaración. Viene definido por un par propiedad:valor separados entre si por dos puntos. En propiedad indicamos que caracterı́stica (tipo de fuente, color, etc...) queremos cambiar y en valor el valor que le damos. H1 { color: blue } Para no repetir reglas que se aplican sobre las mismas etiquetas se pueden agrupar los selectores. Por ejemplo, todas las cabeceras van a tener el mismo color: H1, H2, H3, H4, H5, H6 { color: blue } También se pueden añadir comentarios dentro de los ficheros css de la siguiente manera: /* COMMENTS CANNOT BE NESTED */ 1.1. Definición Hay tres maneras de definir los estilos: 1. Se pueden declarar directamente sobre la etiqueta HTML: <ETIQUETA style="propiedad:valor;....">... </ETIQUETA> Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 1 Por ejemplo si a un párrafo le queremos dar un tamaño de fuente 10 y un margen izquierdo de 20 pts. <P STYLE="font-size:10pt; margin-left:20pt;"> Mi Primer párrafo con Estilo </P> 2. Se pueden definir en su conjunto para toda la página HTML: <STYLE TYPE="text/css"> <!...... etiqueta {propiedad:valor; .........} ...... --> </STYLE> Un ejemplo serı́a: <HTML> <HEAD> Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 2 <TITLE>Ejemplo CSS</TITLE> <STYLE TYPE="text/css"> <!BODY {margin-left: 0.5in; margin-right: 0.5in} H1 {color:blue;} P {font-size:10pt; marginleft:20pt;} --> </STYLE> </HEAD> <BODY> <H1>Titulo en azul</H1> <P>Párrafo con letra 10</P> </BODY> </HTML> 3. Se pude especificar en un fichero externo. Esta manera es la más flexible y recomendada, ya que el estilo asociado a una página HTML se puede cambiar sin modificar el código de dicha página y además la misma hoja de estilo se puede compartir con diferentes documentos. Para enlazar la hoja de estilo con una página HTML se puede utilizar la etiqueta LINK: Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 3 <HTML> <HEAD> <LINK rel="stylesheet" type="text/css" href="hoja_estilos.css"> </HEAD> ...... </HTML> El fichero hoja estilos.css es un simple fichero de texto con extensión .css en el que se define la hoja de estilo. /*Fichero hoja_estilos.css*/ BODY {margin-left: 0.5in; margin-right: 0.5in} H1 {color:blue;} P {font-size:10pt; marginleft:20pt;} /*Fin del fichero hoja_estilo.css*/ 1.2. Orden de aplicación Estos tres modos de definir estilos pueden convivir en la misma página html, pero si sobre un mismo elemento se han definido diferentes estilos, sólo se aplicará uno de ellos de acuerdo a las siguientes reglas, ordenadas de menor a mayor prioridad: 1. Las definidas por el navegador Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 4 2. Hoja de estilo externa 3. Hoja de estilo interna (dentro de la etiqueta ¡head¿) 4. Directamente sobre la etiqueta HTML Por ejemplo, una hoja de estilo externa tiene las siguientes propiedades para el selector h3: h3 { color: red; text-align: left; font-size: 8pt } Y una hoja de estilo externa tiene estas propiedades también para el selector h3: h3 { text-align: right; font-size: 20pt } Si la página con la hoja de estilo interna también está enlazada con la hoja de estilo externa, las propiedades para h3 serı́an: color: red; text-align: right; font-size: 20pt El color es heredado desde la hoja de estilo externa, y el text-alignment y el font-size son reemplazados por las de la hoja de estilo interna. 2. Propiedades de las hojas de estilo Las propiedades están divididas en 6 grandes grupos que facilitan su utilización y documentación. Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 5 2.1. Propiedades de texto Son propiedades que afectan a la presentación visual de caracteres, espacios, palabras y párrafos. Las propiedades que podemos utilizar son las siguientes: color. Especificamos el color del primer plano del contenido del texto. Nombre Color | Valor HEX | Rgb (R %,G %,B %) | Rgb(R, G,B) Ejemplo: H1{color:red} text-transform. Especifica, por medio de palabras reservadas, si las letras del texto deben transformarse en mayúsculas, minúsculas, sólo la primera letra de cada palabra en mayúsculas, o si ha de dejarse como está. uppercase | lowercase | capitalize | none Ejemplo: H1 {text-transform:uppercase} vertical-align. Alineación vertical del texto en relación con la lı́nea base del texto. baseline | sub | super | top | text-top | middle | mottom | text-bottom Ejemplo: STRONG {vertical-align:sub} text-align. Fija la alineación del bloque, al margen izquierdo, al derecho, centrado o a ambos. left | right | center | justify Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 6 Ejemplo: H1{text-align: center} text-indent. Fija la sangrı́a o indentación de la primera lı́nea del texto. XX unidad | % Ejemplo: P {text-indent:2em} line-height. Indica la distancia entre dos lineas adyacentes. normal | XX unidad | % text-decoration. Fija una o más caracterı́sticas ”decorativas”del texto, como subrayado, lineas superiores, caracteres tachados o parpadeantes. Si se aplica a un elemento de bloque la heredan sólo los descendientes que sean de texto (o en-linea). Si se aplica a uno de éstos la heredan todos los descendientes. underline | overline | line-through | blink | none Ejemplo: H1 {text-decoration: underline} letter-spacing. Especifica el espaciado entre letras. En el caso de especificar una longitud esta se sumara a la normal. normal | XX unidad Ejemplo: H1{letter-spacing: 0.5pc} word-spacing. Especifican el espaciado entre palabras. En el caso de especificar una longitud esta se sumara a la normal. normal | XX unidad Ejemplo: H1 { word-spacing: 0.5pc} Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 7 2.2. Propiedades de las fuentes Con estas propiedades controlamos el estilo de una fuente, su tamaño, su familia, su grosor, etc. Las propiedades que podemos utilizar son las siguientes: font-family.Indicamos la familia de la fuente a utilizar. Sus posibles valores son los nombres de las fuentes, pudiendo especificar un conjunto de familias. Se selecciona la primera que se encuentra en el sistema. Ejemplo: BODY{ font-family: Verdana, Arial, Helvetica, sans-serif} font-style. Especifica el estilo de la fuente, es decir, si los caracteres irán en normal, en itálica (cursiva) o en oblicua (un poco más inclinada que la itálica). normal | italic | oblique Ejemplo: H1,H2,H3{font-style:italic} font-weight.Especifica el peso, densidad o grosor (cantidad de espacio ocupado en relación con el rectángulo en que se inscribe el carácter) de la fuente de caracteres dentro de una familia de fuentes, con valores entre 100 y 900 siendo cada vez más densos. El valor 400 equivale a normal, y el 700 a bold. lighter | normal | bold | bolder | 100 | 200 | 300 | ...... | 900 Ejemplo: Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 8 STRONG{font-weight:bolder} font-size. Especifica el tamaño de la fuente. XX units | % | larger | smaller | xx-small | x-small | medium | large | x-large | xx-large Ejemplo: H1 {font-size: 150%} 2.3. Propiedades del fondo Son las propiedades que permiten fijar el color del primer plano y fondo de un elemento. Las propiedades que podemos utilizar son las siguientes: background-color. Especifica el color del fondo del elemento, que puede ser un color o la palabra reservada transparent. transparent | Nombre Color | Valor HEX | Rgb (R %,g %,B %) | Rgb(R, G,B) Ejemplo: H1{background-color:#0000FF} background-image. Designa una imagen para rellenar el fondo del elemento por medio de una URL o la palabra reservada none para indicar que no se utilizara ninguna imagen. Puede fijarse también un color que se colocará debajo de la imagen, y que asomará si la imagen no está disponible o, si lo está, detrás de sus zonas transparentes. none | url(dirección) Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 9 Ejemplo: H1 {background-image: white url("fondo.gif")} background-attachment. Establece si una imagen de fondo es fija o se mueve con el scroll del resto de la página. Sólo funciona con la etiqueta body. scroll | fixed Ejemplo: body { background-image: url(fondo.gif); background-attachment: scroll } background-repeat. Establece si una imagen si se repetirá y cómo. En Netscape no funciona con la etiqueta body. repeat | repeat-x | repeat-y | no-repeat Ejemplo: body { background-image: url(fondo.gif); background-attachment: scroll } Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 10 2.4. Propiedades de margenes y padding Con estas propiedades especificamos los margenes de cualquier elemento y con el padding controlamos la distancia entre el borde y el contenido. Las propiedades que podemos utilizar son las siguientes: margin-top, margin-bottom, margin-left, margin-right. Fijamos el margen superior, inferior, izquierdo o derecho. Con la propiedad auto el navegador un valor adecuado dependiendo del tipo de elemento. XX unidades | % | auto (el valor por defecto es 0) Ejemplo: BODY {margin-top:1cm} margin.Mediante esta propiedad podemos especificar todos los valores de los margenes de una sola vez. Se pueden poner hasta cuatro valores, para especificar cada uno de los margenes. margin: ancho1 ancho2 ancho3 ancho4 Pero si sólo especificamos ancho1 se refiere a los cuatro lados del margen. Si se especifican dos valores, ancho1 se refiere a los lados superior e inferior y ancho2 al izquierdo y derecho. En el caso de poner los tres primeros, ancho1 se refiere al lado superior, ancho2 al izquierdo y derecho y ancho3 al inferior. Ejemplo: BODY {margin: 1in 2in} padding-top, padding-bottom, padding-left, padding-right. Distancia entre el borde superior, inferior, izquierdo o derecho y el contenido. XX unidades | % Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 11 Ejemplo: Table {padding-top: 12pt} padding. Mediante esta propiedad podemos definir en una única propiedad los cuatro valores anteriores. Funciona de la misma manera que la propiedad margin. margin: ancho1 ancho2 ancho3 ancho4 Ejemplo: H1 {padding:10%} 2.5. Propiedades del borde Con estas propiedades especificamos el ancho, color y estilo del área de borde. Las propiedades que podemos utilizar son las siguientes: border-top-width, border-bottom-width, border-left-width, border-rightwidth. Mediante estas cuatro propiedades especificamos el ancho del área de borde por encima, debajo, a la izquierda y derecha del elemento. thin | medium | thick | XX unidad Ejemplo: H1 {border-top-width:thin} border-width. Especificamos en una única propiedad el ancho de todo el área de borde. Funciona de la misma manera que la propiedad margin. thin | medium | thick | XX unidad Ejemplo: Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 12 H1 { border-width: thin thick medium} border-style. Especificamos el estilo de visualización del borde. Los posibles valores son: • none: ninguno, anchura cero • dottet: punteado • dashed: discontinuo • solid: liso • double: doble • groove: hundido • ridge: resaltado • inset: toda la caja hundida • outset: toda la caja resaltada none | dottet | dashed | solid | double | groove | ridge | inset | outset Ejemplo: Table {border-style: double} border-color. Especificamos el color del borde. nombre del color | valor HEX | Rgb (R %, G %, B %) | Rgb (R,G,B) Ejemplo: Table {border-color: red} border-top, border-bottom, border-left, border-right. En cada una de las cuatro propiedades podemos especificar en conjunto todas las caracterı́sticas de cada uno de los lados del borde: tamaño, estilo y color. Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 13 anchura | estilo | color Ejemplo: Table {border-top: thin dashed red} border. Mediante esta propiedad podemos especificar de forma conjunta todas las propiedades de un borde: tamaño, estilo y color. anchura | estilo | color Ejemplo: Table {border: thick double red} 2.6. Propiedades de lista Son propiedades que afectan a la presentación visual de las marcas de los elementos de una lista. Las propiedades que podemos utilizar son las siguientes: list-style-image. Reemplaza el marcador de los elementos de una lista por una imagen. url () | none Ejemplo: ol { list-style-image: url(blueball.gif); } list-style-type. Define el tipo de marcador de los elementos de una lista. Algunos navegadores sólo soportan el valor disc. Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 14 none | disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha Ejemplo: ul { list-style-type: disc } list-style-position. Define si el marcador se situa como parte del texto o lo mantiene a la izquierda del texto. inside | outside Ejemplo: ol { list-style-position: inside } 3. Selectores avanzados:Class e ID Estos tipos de selectores permiten la asignación de estilos de una manera independiente de los elementos del documento. Estos selectores pueden ser usados sólos o en conjunción con etiquetas. El selector Class necesita una modificación en el documento html donde se va a aplicar, es decir las etiquetas necesitan el atributo CLASS: <P CLASS="importante">NOTA: Es necesario incluir el atributo CLASS </P> <H3 CLASS="importante"> Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 15 En la hoja de estilo se debe añadir: .importante {color:red;} El . indica que es un selector class. Si queremos añadir clases a etiquetas concretas, serı́a de la siguiente manera: P.importancia{color:red;} Los selectores ID son diferentees a los selectores class. Mientras que un selector class puede ser aplicado a diferentes elementos en una página, un serlector id siempre se aplica a un único elemento. Un atributo ID debe ser único en el documento. Además su sintaxis es diferente, van precedidos de un #. #importancia{color:red;} p#para1 { text-align: center; color: red } Para aplicarlos sobre una etiqueta es decesario el atributo ID. <P ID="importante">NOTA: Es necesario incluir el atributo CLASS </P> La diferencia entre estos dos tipos de selectores es que Class puede ser usado varias veces en el mismo documento mientras que el selector ID solamente puede ser aplicado una y sólo una vez. Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 16 4. Pseudo-Clases y Pseudo-Elementos Son clases y elementos especiales que son automáticamente reconocidos por los navega- dores que soportan CSS. Las pseudo-clases distinguen entre diferentes tipos de elementos (por ejemplo, enlaces visitados o activos). Los pseudo-elementos se refieren a subpartes de los elementos como la primera letra de un párrafo. Las reglas con pseudo-clases tienen la siguiente sintaxis: selector:pseudo-clase { propiedad: valor } o selector:pseudo-elemento { propiedad: valor } Estos selectores no se deberı́an especificar con el atributo CLASS de HTML. Se pueden usar también con selectores clases: selector.clase:pseudo-clase { propiedad: valor } o selector.clase:pseudo-elemento { propiedad: valor } 4.1. Pseudo-clases del ancla En CSS1 sólo hay tres pseudo-clases y son asignadas al elemento A para mostrar de diferente manera los enlaces no visitados, los activos, los visitados y cuando el ratón pasa sobre un enlace. A:link { color: red } Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 17 A:active { color: blue; font-size: 125% } A:visited { color: green; font-size: 85% } A:hover {} 4.2. Pseudo-elemento primera lı́nea Permite cambiar el estilo a la primera lı́nea de un elemento de nivel de bloque como puede ser el párrafo. Un ejemplo podrı́a ser: P:first-line { font-variant: small-caps; font-weight: bold } 4.3. Pseudo-element primera letra Este pseudo-elemento es utilizado para cambiar el estilo de la primera letra de un elemento de nivel de bloque. Por ejemplo: P:first-letter { font-size: 300%; float: left } Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 18 5. Unidades de longitud Un valor de longitud se forma por un signo + o - opcional, seguido de un número y de una abreviación de dos letras que indica la unidad. No hay espacios en un valor de longitud (1.3em). Una longitud de 0 no necesita las dos letras para identificar la unidad. 5.1. Relativas Las unidades relativas dan una longitud relativa a otra propiedad longitud. Las siguientes unidades relativas están disponibles: em (ems, la altura de la fuente de los elementos) ex (x-height, altura de la letra ”x”) px (pixels, relativa a la resolución del lienzo) 5.2. Absolutas Las unidades de longitud absolutas son muy dependientes del medio de salida, y son por lo tanto menos útiles que las unidades relativas. Las siguientes unidades absolutas están disponibles: in (pulgadas; 1 pulgada=2.54 cm) cm (centı́metros; 1 cm = 10 mm) mm (milı́metros) pt (puntos; 1pt = 1/72 pulgada) pc (picas; 1 pc = 12 pt) 6. CSS Avanzado 6.1. Selector universal El selector universal se escribe con un asterisco (*) y representa a cualquier elemento de la página. Por ejemplo, con: * {color: red} Todos los elementos de la página tendrán como color de primer plano el rojo Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 19 6.2. La regla @import La regla @import permite importar hojas de estilo desde otras hojas de estilo. Se puede usar de las siguientes formas: @import "hoja_de_estilo.css"; @import url("hoja_de_estilo.css"); Esta declaración debe ir antes que cualquier otra regla en la hoja de estilo. 6.3. La regla !important la regla !important, suplantar con sus propias reglas de estilo las especificadas por el autor del documento. De este modo, los usuarios con requerimientos especı́ficos pueden modificar las opciones del creador de las páginas Web con el fin de mejorar su accesibilidad. Los navegadores tienen opciones que permiten modificar la apariencia de las páginas visitadas. Estas opciones constituyen de hecho la hoja de estilo del usuario. Explorer, además de las opciones disponibles en los menúes, permite usar una hoja de estilo externa. De este modo, el usuario obtiene la máxima flexibilidad para aplicar sus preferencias. Probar la siguiente hoja de estilo: * { visibility: hidden !important;} visible !important; background-color: black !important; background-image: url(borrando.gif) !important; background-repeat: no-repeat BODY { visibility: background-position: 200px 120px !important; !important;} Depués, editar las Propiedades de Internet de Explorer y en la opción General-Accesibilidad indicar la posición de su hoja de estilo. 6.4. Propiedad del cursor Especifica el tipo de cursos que será mostrado cuando se señale un elemento. url() | default | auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 20 Ejemplo: h2 { cursor: crosshair } p { cursor : url("first.cur"), url("second.cur"), pointer } 6.5. Propiedades de posicionamiento Estas propiedades permiten especificar, de manera relativa o absoluta la posición de un elemento, su forma y especifcar lo que deberı́a pasar si el contenido de un elemento es más grande que el area especifcada. position. Sitúa un elemento en su posición normal, en una posición relativa con respecto al elemento anterior o en cualquier posición fija de la página. auto | relative | absolute Ejemplo: h1 { position:absolute; top:150px; } top. Especifica la situación del borde superior de un elemento. auto | % | unidad Ejemplo: Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 21 h1 { position:absolute; top:150px; } bottom. Especifica la situación del borde inferior de un elemento. auto | % | unidad Ejemplo: h1 { position:absolute; bottom:150px; } left. Especifica la situación del borde izquierdo de un elemento. auto | % | unidad Ejemplo: h1 { position:absolute; top:150px; left:30px; } right. Especifica la situación del borde derecho de un elemento. auto | % | unidad Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 22 Ejemplo: h1 { position:absolute; top:150px; right:30px; } clip. Especifica la forma de un elemento. rect (top, right, bottom, left) | auto Ejemplo: img { clip: rect(10px, 5px, 10px, 5px) } overflow. Especifica qué sucede cuando el contenido de un elemento es mayor que el área de visualización. visible | hidden | scroll | auto Ejemplo: div { background-color:#00FFFF; width:150px; height:150px; overflow: scroll } Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 23 z-index. Indica el orden de superposición de los elementos en el caso de que coincidan en el mismo espacio. Un elemento con un número más alto siempre se posicionará encima de un elemento con menor número. auto | entero Ejemplo: img.x { position:absolute; left:0px; top:0px; z-index:1 } 7. Bibliografı́a HTML dinámico http://html.programacion.net/dinamico/tutorial/indice.htm CSS Cascading Style Sheets, level 1 http://www.w3.org/TR/REC-CSS1 CSS Cascading Style Sheets, level 2 http://www.w3.org/TR/REC-CSS2/ Listado de propiedades soportadas por los navegadores http://www.webreview.com/style/ Traducción de la especificación CSS2: http://www.sidar.org/recur/desdi/traduc/es/css/cover.html Hojas de estilo:CSS Sistemas Hipermedia: Diseño y Evaluación 24