5º Unidad Didáctica Hojas de estilo en Cascada CSS Eduard Lara 1 ÍNDICE 5.1 El Origen de CSS 5.2 Hojas de estilo y sus clases 5.3 Las reglas de estilo 5.4 Presentación con estilos 2 5.1 EL ORIGEN DE CSS En HTML se unen contenidos e instrucciones de formato en un único documento. Los desarrolladores se quejaban de lo complejo que resultaba tener ambas cosas mezcladas. W3C decidió crear un sistema para separar las instrucciones de formato del resto de elementos. En la versión HTML 4, se define el lenguaje CSS (Cascading Style Sheets), para dotar de formato a los elementos HTML. 3 5.1 EL ORIGEN DE CSS Gran utilidad de CSS: Permite aplicar un formato homogéneo a todo un sitio web. Permite modificar el estilo de numerosos elementos, cambiando unas pocas líneas de código. Actualmente CSS ofrece muchas mas posibilidades que las que jamás tuvo HTML: cambiar el tamaño, grosor, y altura de línea, colores de fondo y primer plano, espaciado y alineamiento del texto, decidir subrayado, tachado o parpadeante, convertirlo en mayúsculas, o minúsculas, etc. 4 5.2 LAS HOJAS DE ESTILO Y SUS CLASES CSS sirve para dotar de estilo a los elementos que componen una página web. Una hoja de estilo es un conjunto de reglas de estilo que definen el formato de los elementos de la página html, a la que se encuentra «vinculada». Mediante la regla de estilo se identifica el elemento HTML que se desea seleccionar y la apariencia que se le quiere dar (por ejemplo, que todas las fotos lleven un marco de color rojo). 5 5.2 LAS HOJAS DE ESTILO Y SUS CLASES Existen 3 maneras de dotar de estilo CSS a una página web: 1) Aplicar estilos de forma local. Se escribe el código CSS dentro de cada etiqueta HTML mediante el atributo STYLE. No es necesario poner el selector ya que se entiende que el elemento afectado es aquel en el que está ubicado el estilo. <p style="color:green;">HOLA</p> 6 5.2 LAS HOJAS DE ESTILO Y SUS CLASES 2) Hojas de estilo internas. Suelen usarse cuando se pretende aplicar el estilo sólo a la página donde se ubica. <head><style type="text/css“> Codigo CSS </style></head> Se puede ubicar en cualquier parte de la página, pero suele hacerse dentro de la cabecera. Se pueden definir tantas hojas de estilo como se desee en un página. En caso de conflicto entre ellas se aplica la norma de la precedencia. 7 5.2 LAS HOJAS DE ESTILO Y SUS CLASES 3) Hojas de estilo externas. Dan aspecto común a varias páginas de un portal. Los estilos se definen en una hoja de estilo externa, y todas las páginas del portal la consultan. Mediante la etiqueta link se vincula una hoja de estilos a una página web en su cabecera, : <link rel="stylesheet" type="text/css" href="url.css"> url.css es el nombre de la hoja con su correspondiente URL si fuera necesario. 8 5.2 LAS HOJAS DE ESTILO Y SUS CLASES Ejemplo: Página web vinculada a una hoja de estilo externa. <html> <head> <title> Ejemplo </title> <link rel="stylesheet” type="text/css" href="st.css”> </head> <body> Contenido de la página </body> </html> Para que funcione este ejemplo, la hoja de estilo y la página HTML deben estar en la misma carpeta. 9 5.2 PRÁCTICA 1) Acudir a http://www.w3.org/Style/CSS, donde existe un listado actualizado de los programas válidos para tratar CSS (editores, conversores). 2) Visualizar los siguientes programas específicos para el tratamiento CSS: -Style Master -TopStyle -CSSED Permiten obtener una vista previa del estilo creado, o trabajar sobre plantillas predefinidas 10 5.2 PRÁCTICA 3) Validaciones código CSS Acudir a http://jigsaw.w3.org/css-validator/, una página oficial de W3C que permite comprobar si el código que se ha generado es correcto o no. 4) Consultar la página oficial de W3C, y realizar un resumen acerca de las últimas noticias sobre los navegadores web y su compatibilidad con las especificaciones CSS. ¿Qué navegadores aceptan más características de CSS? Opera, Firefox, IExplorer 11 5.3 LAS REGLAS DE ESTILO Una hoja de estilo se compone de una o varias reglas de estilo, que son las declaraciones de los formatos que son aplicados a los elementos html. Una regla de estilo tiene dos componentes: El selector, que selecciona el elemento sobre el que actuará la regla. La declaración que establece la propiedad y valor a aplicar sobre el elemento. Selector {propiedad1:valor1;} Selector {propiedad1:valor1;propiedad2:valor2;} 12 5.3 LAS REGLAS DE ESTILO El selector Determina los elementos sobre los que se aplica una regla de estilo: p {color:red;} Todos los elementos p de la página afectada por la regla, adquieren el color rojo. Pregunta: ¿Y si sólo deseamos dar un estilo a unos determinados párrafos y no a todos? Selectores específicos: Identificador, clase, pseudo-clase y pseudo-elemento 13 5.3 LAS REGLAS DE ESTILO Selector identificador Los elementos html disponen de un atributo llamado identificador (id), el cual permite hacer una selección más ajustada de los elementos: Documento html → <p id=“despedida”> La regla de estilo necesaria para hacer referencia al párrafo despedida, sería: Hoja de estilo → p#despedida { font-size:14px;} Sólo el párrafo “despedida” tendrá un tamaño de 14 píxeles. 14 5.3 LAS REGLAS DE ESTILO Selector de Clase El atributo class agrupa los elementos por clases o grupos, que son seleccionados desde CSS. <img src=“casa.jpg” class=“fotos”> Un elemento puede pertenecer a varias clases a la vez. Se especifican separadas por espacios. <img src=“casa.jpg” class=“fotos casas”> Acceso al estilo de la clase, mediante “.”: img.fotos {border-width: 1px;} Æ img clase fotos .casas {border-width: 3px;} Æ clase casas 15 5.4 CRITERIOS DE SELECCIÓN Existen cinco tipos de selectores o criterios de selección para elegir los elementos de una regla. 1.Selector por tipo o nombre de elemento. 2.Selector por contexto del elemento. 3.Selector por clase o identificador del elemento. 4.Selector por la pseudo-clase del elemento. 5.Selector por los atributos del elemento. 6.Selector por pseudo-elementos El carácter asterisco (*) es un selector universal. Las propiedades que se encuentren especificadas bajo éste afectarán a todos los elementos. 16 5.4 CRITERIOS DE SELECCIÓN 1.Selector por tipo o nombre de elemento Es el criterio más general y sencillo por su sintaxis. Aplica un determinado formato a todos los elementos seleccionados sin distinción de clases, identificadores, contextos, etcétera. p { color:red;} Suelen aplicarse más los otros métodos, ya que son más específicos, y permiten afinar más. 17 5.4 CRITERIOS DE SELECCIÓN 2.Selector por el contexto del elemento a. Ascendente. Es el elemento que contiene al que se desea formatear. Puede haber más de un elemento entre uno y otro. Ascendente Sintaxis CSS: div p {color:#00FF00;} <div> <h1><p> Este es un parrafo</p></h1> </div> Ascendente Etiqueta a formatear Etiqueta a formatear Espacio en blanco Se formatea de color rojo los elementos p que estén dentro de div 18 5.4 CRITERIOS DE SELECCIÓN 2.Selector por el contexto del elemento b. Padre. Es el elemento que contiene de forma directa al que se desea formatear, que es el hijo. Sintaxis CSS: div > p {color:#00FF00;} <div> Padre <p> Este es un parrafo</p> </div> Padre Hijo Etiqueta hija Símbolo “Mayor que” Se formatea de color rojo todos párrafos hijos de div div p:first-child {color:#00FF00;} Æ Sólo el 1º párrafo hijo 19 5.4 CRITERIOS DE SELECCIÓN 2.Selector por el contexto del elemento c. Hermano. Es el elemento que precede directamente (adyacente), dentro del mismo elemento padre, al que se desea formatear. Para seleccionar elementos en función del hermano, se utiliza el símbolo de la suma (+): hermano precedente hermano seleccionado div + p { color:#00FF00;} Se trata de cualquier elemento p inmediatamente después del elemento del tipo div 20 5.4 CRITERIOS DE SELECCIÓN 3.Selector por clase o identificador Forma de selección más utilizada. Permite afinar más que la selección por nombre de elemento. Selector de identificador Selector de clase p#dos { color:#00FF00;} p.uno {text-align:center;} nombre elemento+”#”+id nombre elemento+”.”+clase Si se omite el nombre del elemento, se seleccionan todos los que pertenezcan a dicha clase o id. .primera { text-align:left;} Æ Afecta todos elementos de la clase primera 21 5.4 CRITERIOS DE SELECCIÓN 4.Selector por la pseudo-clase del elemento Las pseudo-clases clasifican a los elementos basándose en su estado, es decir, en función de los eventos que les hayan ocurrido: cursor del ratón encima, etc. si se han visitado, si el usuario está pasando por encima con el cursor del ratón, etc. Los elementos más utilizados son los referentes a los vínculos (etiqueta a) y al primer hijo (:first-child). a:link { color:red;}Æ Afecta vínculos no visitados a:visited{ color:blue;}Æ Afecta vínculos ya visitados 22 5.4 CRITERIOS DE SELECCIÓN Pseudoclase :link :visited :hover :active . :focus Significado Vínculos que todavía no se ha visitado. Vínculos ya visitados. Vínculos sobre los que está el cursor del ratón. Dejará de estarlo cuando el ratón salga de esa posición. Vínculos sobre los que se está haciendo clic. Vínculos que están siendo seleccionados mediante el teclado. 23 5.4 CRITERIOS DE SELECCIÓN 5.Selector por los atributos del elemento Este tipo de selectores se utilizan cuando se desea aplicar formato a aquellos elementos que tienen un determinado atributo o un valor de atributo dado. La forma de declararlo es elemento[ atributo]. td[ fgcolor] { color:#003333;} Selecciona todas las celdas de una tabla (td) que tengan el atributo fgcolor. 24 5.4 CRITERIOS DE SELECCIÓN 6.Selector de pseudo-elementos Son partes de elementos de una página a los que HTML no otorga identidad propia y, por tanto, no pueden ser seleccionados por dicho lenguaje. Sin embargo, las reglas de estilo CCS sí que permiten identificarlos y formatearlos de manera distinta al resto de elementos (por ejemplo, la primera letra o la primera línea de cada párrafo) p:first-letter { color:red;} Se indica de color rojo, la primera letra de cada párrafo. 25 5.4 CRITERIOS DE SELECCIÓN Pseudoelemento :first-letter :first-line :before :after Significado El primer carácter del elemento al que pertenece. La primera línea del elemento al que pertenece. El elemento anterior El elemento posterior. 26 5.4 CRITERIOS DE SELECCIÓN Agrupación de selectores Se aplica cuando se desea las mismas reglas de estilo a más de un elemento. Para ello, se indican los selectores separados por una coma (,). td, p { color:#00FF00;} Se formatean los elementos td y p con las mismas propiedades 27 5.4 CRITERIOS DE SELECCIÓN Combinación de selectores Los criterios de selección anteriores, pueden combinarse para obtener así una selección de elementos más fina. div p.portada[ id] { color:#00FF00;} Se seleccionan los elementos p que estén dentro de elementos div, que pertenezcan a la clase portada y que tengan el atributo id. 28 5.4 CRITERIOS DE SELECCIÓN Indicaciones para combinar selectores 1.Definir el contexto del elemento deseado. 2.Definir el nombre del elemento que se quiere seleccionar o utilizar el selector universal (*). 3.Especificar la clase o id del elemento deseado. 4.Definir los atributos que puedan estar presentes. Clase o id div p.portada[ id] { color:#00FF00;} Contexto Elemento Atributo Regla CSS 29 5.4 CRITERIOS DE SELECCIÓN <HTML><HEAD> <TITLE>Esta es mi primera hoja de estilos</TITLE> <STYLE TYPE="text/css"> P B{color:blue} LI B {color:red} </STYLE> </HEAD> <BODY> <P> Aquí aparece en <B> azul </B></P> <P>En cambio en la siguiente lista</P> <UL> <LI>Aparece en <B>rojo</B></LI> </UL> </BODY> </HTML> 30 5.4 CRITERIOS DE SELECCIÓN Comentarios en el código CSS Para añadir comentarios a las hojas de estilo, tanto internas como externas, se usan la misma forma del lenguaje C: “/*” Etiqueta inicio de comentario “*/” Etiqueta final de comentario /* Esta regla de estilo define la fuente de la clase prov*/ .prov { font-size: 9px; color: #FFE2A8;/*Este color queda mejor que el #FF0044*/} 31 5.5 LAS PROPIEDADES Y SUS VALORES Selector {propiedad1:valor1;propiedad2:valor2;} Todas estas propiedades están divididas en 5 grandes grupos: • Propiedades de texto • Propiedades de las fuentes • Propiedades de los colores y fondos • Propiedades de márgenes y padding • Propiedades de los bordes 32 5.5 LAS PROPIEDADES Y SUS VALORES Propiedades de texto Son propiedades que afectan a la presentación visual de caracteres, espacios, palabras y párrafos. text-transform uppercase|lowercase|capitalize|none vertical-align baseline|sub|super|top|text-top|middle| mottom|text-bottom | % text-align left | right | center | justify text-indent XX unidad | %, (Por defecto su valor es 0) line-height normal | XX unidad | % text-decoration underline|overline|line-trough|blink| none letter-spacing normal | XX unidad word-spacing normal | XX unidad 33 5.5 LAS PROPIEDADES Y SUS VALORES Propiedades de las fuentes Con estas propiedades controlamos el estilo de una fuente, su tamaño, su familia, su grosor, etc. font-family Verdana| Arial| Helvetica| Sans-Serif font-style normal | italic | oblique font-variant normal | small-caps font-weight lighter | normal | bold | bolder | 100 | 200 | 300 | ...... | 900 font-size XX units | % | larger | smaller | xx-small | x-small | medium | large | x-large | xx-large 34 5.5 LAS PROPIEDADES Y SUS VALORES Propiedades de los colores y fondos Son las propiedades que permiten fijar el color del primer plano y fondo de un elemento. color Valor HEX|RGB(R%,G%,B%)|name; background-color transparent | Nombre Color | Valor HEX | Rgb (R%,g%,B%) | Rgb(R, G,B) background-image none | url(dirección) background-repeat repeat | repeat-x | repeat-y | no-repeat backgroundattachment scroll | fixed background-position XX unidad | % | top | center | bottom |left |right background transparent | color | url | repeat |scroll | position 35 5.5 LAS PROPIEDADES Y SUS VALORES CAJAS margin border border-style margin-top border-top border-top-style margin-right border-bottom border-right-style margin-bottom border-right border-bottom-style margin-left border-left border-left-style padding border-color border-width padding-top border-top-color border-top-width padding-right border-right-color border-right-width padding-bottom border-bottom-color border-bottom-width padding-left border-left-color border-left-width 36 5.5 LAS PROPIEDADES Y SUS VALORES POSICIONAMIENTO DIMENSIONES PAGINACIÓN Display Width Size Position min-width Marks Top/Right/Bottom/Left max-width page-break-before Float Height page-break-after Clear min-height page-break-inside z-index max-height page direction line-height orphans unicode-bidi vertical-align widows Overflow Clip Visibility 37 5.5 LAS PROPIEDADES Y SUS VALORES LISTAS TABLAS INTERFAZ list-style caption-side cursor list-style-type table-layout outline list-style-image Border-collapse outline-width list-style-position border-spacing outline-style empty-cells outline-color speak-header 38 ACCESO RÁPIDO P { font-style: italic; font-variant: small-caps; font-weight: bold; font-size:1em; font-height:140%; font-family: “Arial”, sans-serif;} P { font: italic small-caps bold 1em/140% “Arial”, sans-serif;} 39 5.6 PRECEDENCIA ¿Por qué el nombre de hojas de estilo en cascada? Porque se usan unas sobre otras, sumando reglas y son aplicadas todas a un mismo documento. Si hay dos hojas que proponen distintas reglas para un mismo elemento ¿Cuál de ellas debe ser interpretada? Este conflicto se resuelve en CSS según el «principio de la cascada». Éste decidirá cómo resolver conflictos generados por problemas de herencia, especificidad o ubicación. 40 5.6 PRECEDENCIA Herencia Las etiquetas de un documento HTML están organizadas de manera que unas engloban a otras. Esta permite definir una relación padre-hijo. Hay estilos CSS definidos para etiquetas padres que serán heredados por las etiquetas hijas. body {font-family:Arial; color:blue;} Todo el documento estará con una fuente Arial de color azul. 41 5.6 PRECEDENCIA Herencia El mecanismo de herencia de estilos siempre funciona a menos que un elemento hijo tenga definido su propio estilo. h1 {color:#0000FF; border-color:#FF0000;} Cualquier elemento dentro de h1 será también azul dado que la propiedad color se hereda; El borde rojo no se hereda. Para forzar la herencia, se le asigna el valor inherit a la propiedad que queremos que herede del padre: {border:inherit;} 42 5.6 PRECEDENCIA Especificidad Cuando dos reglas afectan al mismo elemento, prevalece la más específica. h1 {color:#0000FF;} h1.inicial {color:#FF0000;} Æ Más específica Preferencia selectores Selector id > selector class > selector simple (sin atributos) > Regla heredada Las reglas heredadas son consideradas como las más generales de todas. 43 5.6 PRECEDENCIA Ubicación Entre dos reglas con idéntica especificidad, la última será la que se aplique. Reglas locales > Reglas internas > Reglas externas + Prioridad Las reglas aplicadas localmente se consideran que aparecen después que las definidas en una hoja de estilo interna y, por lo tanto, tienen más relevancia que éstas. 44 5.7 PRESENTACIÓN DE ESTILOS. LAS CAPAS El uso de capas (generadas con etiquetas div), permite mejorar la estructura de una página web. Son divisiones o secciones lógicas del documento, utilizadas para definir estilos de una forma independiente del resto de elementos. DivÆ Divide el documento en grandes secciones SpanÆ Especifica pequeñas porciones del texto 45 5.7 PRESENTACIÓN DE ESTILOS. LAS CAPAS La capa no es una simple división, sino un cuadro. Se compone de un área de contenido, el espacio alrededor de esa área (padding o relleno), el lado exterior del relleno (border o borde) y el espacio invisible alrededor del borde (margin o margen). Área de contenido margin padding border 46 5.7 PRESENTACIÓN DE ESTILOS. LAS CAPAS Las capas permiten identificar los distintos elementos y colocarlos siguiendo un orden lógico. A través de las propiedades adecuadas, se puede determinar: - La posición de la capa respecto su elemento padre o a la ventana del navegador: Si las capas se solapan, es necesario especificar el orden en que lo hacen. - La apariencia de la capa: Su relleno, borde, márgenes, tamaño, alineación o color. 47