Transcript css
:: M.C. Rafael A. García Rosas :: CSS M.C. Rafael A. García Rosas. [email protected] :: M.C. Rafael A. García Rosas :: ¿Qué es CSS? • Tecnología que nos permite controlar la apariencia de una página web. • CSS (Cascade Style Sheet) describe como los elementos dispuestos en la página son presentados al usuario. • El lenguaje de las Hojas de Estilo está definido en la Especificaciones CSS1 y CSS2 del W3C. • Veremos que podemos asociar las reglas de estilo a las marcas HTML de tres maneras: – directamente a la marca, – en el head de la página o – agrupar las reglas de estilo en un archivo independiente con extensión *.css :: M.C. Rafael A. García Rosas :: Definición de estilos a nivel de marca HTML. • La sintaxis para definir un estilo a una marca HTML es: ; <h1 style="color:#ff0000 background-color:#ffff00"> Este mensaje es de color rojo sobre fondo amarillo. </h1> • Cada vez que inicializamos una propiedad debemos separarla de la siguiente por punto y coma. • El estilo se aplica únicamente a la marca donde inicializamos la propiedad style :: M.C. Rafael A. García Rosas :: Definición de estilos a nivel de página. • Podemos definir estilos que se aplican a las distintas marcas HTML de la página. <head> <title>Problema</title> <style type="text/css"> h1 {color:#ff0000;background-color:#ffff00} h2 {color:#00ff00} h3 {color:#0000ff} </style> • En todos los lugares de esta página donde se utilice la marca h1 debe aplicar como estilo de color de texto el rojo y fondo el amarillo. • Podemos definir estilos para muchas marcas en una única sección style. :: M.C. Rafael A. García Rosas :: Propiedades relacionadas a fuentes. Propiedad font-family Valores frecuentemente soportados Arial, Arial Black, Arial Narrow, Courier, New Georgia, Impact, Tahoma, Times New Roman, Verdana font-size 10px, 20px, 30px, etc. font-style Normal, italic, oblique font-weight Normal, bold, bolder, lighter 100, 200, 300, 400, 500, 600, 700, 800, 900 font-variant small-caps, normal :: M.C. Rafael A. García Rosas :: Unidades de medida (px, cm, mm, em etc.) px (pixeles) em (altura de la fuente por defecto) ex (altura de la letra x) in (pulgadas) cm (centímetros) mm (milímetros) pt (puntos, 1 punto es lo mismo que 1/72 pulgadas) pc (picas, 1 pc es lo mismo que 12 puntos) % (porcentaje) La recomendación es utilizar em como medida cuando la salida es el monitor. Si utilizamos pixeles hay navegadores que no permiten cambiar el tamaño de texto. :: M.C. Rafael A. García Rosas :: Propiedades relacionadas a fuentes. <head> <title>Problema</title> <style type="text/css"> h1 { font-family:times new roman; font-size:30px; font-style:italic; font-weight:bold; } h2 { font-family:verdana; font-size:20px; } </style> </head> :: M.C. Rafael A. García Rosas :: Agrupación de varias marcas HTML con una misma regla de estilo. • Esta característica nos permite ahorrar la escritura de reglas duplicadas para diferentes marcas HTML. • Separamos por coma todas las marcas a las que se aplicará la misma regla de estilo • Supongamos que queremos la misma fuente y color para las marcas h1,h2 y h3: <style type="text/css"> h1,h2,h3 { font-family:verdana; color:#0000ff; } </style> :: M.C. Rafael A. García Rosas :: Definición de varias reglas para una misma marca HTML. • En algunas circunstancias, es necesario desglosar la inicialización de propiedades en distintas reglas. • Supongamos que queremos todas las cabeceras con la misma fuente pero tamaños de fuente distinta: <head> <title>Problema</title> <style type="text/css"> h1,h2,h3,h4,h5,h6 { font-family:Verdana; } h1 { font-size:40px; } h2 { font-size:30px; } h3 { font-size:25px; } h4 { font-size:20px; } h5 { font-size:15px; } h6 { font-size:10px; } </style> </head> :: M.C. Rafael A. García Rosas :: Tarea 1 Problema 1: Definir la misma fuente, color y tamaño de fuente para las marcas p y h6 • Tener en cuenta que cuando vea la página el texto que se encuentra en la marca h6 difiere del texto que se encuentra dentro del párrafo por la propiedad font-weight. • Ya que la marca h6 es de tipo bold y la marca p tiene por defecto normal. :: M.C. Rafael A. García Rosas :: Tarea 1 (2) Problema 2: Confeccione una página que define una regla para la marca body e inicialice las propiedades color, font-family. Luego defina reglas de estilo para las marcas h1,h2 y h3 que redefinan la fuente con los valores: Times New Roman, Courier y Arial. Imprima tres títulos, cada uno con las marcas h1,h2 y h3. Por último imprima un párrafo. :: M.C. Rafael A. García Rosas :: Propiedades relacionadas al texto. • Color – color:#0000ff – color:rgb(255,0,0); //hexadecimales //rojo,verde y azul • Alineación – text-align – Valores: left , right , center, justify • Decorado – text-decoration – Valores: none , underline , overline , line-through Continúa ejemplo -> :: M.C. Rafael A. García Rosas :: Propiedades relacionadas al texto. <style type="text/css"> h1 { color:#ff0000; text-align:left; text-decoration:underline; } h2 { color:#dd0000; text-align:center; text-decoration:underline; } h3 { color:#aa0000; text-align:right; text-decoration:underline; } </style> :: M.C. Rafael A. García Rosas :: Herencia de propiedades de estilo. • El conjunto de marcas HTML forman en sí un árbol. <body> <h1> <h2> <h3> <html> <head> <title>Problema</title> <style type="text/css"> body { color:#0000ff; font-family:verdana; } </style> </head> <h4> <h5> <h6> <body> <h1>Este es un título de nivel 1 y con la marca 'em' la palabra: <em>Hola</em></h1> <p>Todo este párrafo debe ser de color azul ya que lo hereda de la marca body.</p> <p> <div> … <a href="pagina2.html">Siguie nte ejemplo</a> </body> </html> :: M.C. Rafael A. García Rosas :: Herencia de propiedades de estilo. En muchas situaciones podemos redefinir propiedades para marcas contenidas. <style type="text/css"> body { color:#0000ff; font-family:verdana; } em { color:#008800; } p{ color:#999999; } </style> :: M.C. Rafael A. García Rosas :: Definición de un estilo en función del contexto. • Definición de un estilo para una marca HTML siempre y cuando la misma esté contenida por otra marca determinada. • Supongamos que queremos que cuando disponemos un texto encerrado por la marca b (bold) dentro de un párrafo el color de la misma sea verde. Pero si la marca b está contenida por la marca h1 el color debe ser rojo: pb { div h1 em color:#0000ff; } { color:#ff0000; } Continúa ejemplo -> :: M.C. Rafael A. García Rosas :: Definición de un estilo en función del contexto. <html> <head> <title>Problema</title> <style type="text/css"> p b{ color:#0000ff; } h1 b{ color:#ff0000; } </style> </head> <body> <h1>Acá tenemos un título de nivel uno, luego un bloque con la marca bold debe aparecer <b>así</b></h1> <p> Luego si escribimos un párrafo y encerramos un bloque con la marca bold debe aparecer <b>así</b> </p> </body> </html> :: M.C. Rafael A. García Rosas :: Definición de hojas de estilo en un archivo externo. La metodología más empleada es la definición de una hoja de estilo en un archivo separado que deberá tener la extensión css. Asociación de una hoja de estilo Archivo de estilo: (estilos.css) <html> <head> <title>Problema</title> body { background-color:#eafadd; } h1 { color:#0000cc; font-family:times new roman; font-size:25px; text-align:center; text-decoration:underline; } p{ color:#555555; font-family:verdana; text-align:justify; } <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <h1>Definición de hojas de estilo en un archivo externo.</h1> <p>X</p> </body> </html> :: M.C. Rafael A. García Rosas :: Definición de estilos por medio de clases. • En muchas situaciones una regla de estilo puede ser igual para un conjunto de marcas HTML. • En esos casos conviene plantear una regla de estilo con un nombre genérico que posteriormente se puede aplicar a varias marcas de HTML. • Para declarar la clase primero inicializamos con el carácter punto y seguidamente le damos un nombre. :: M.C. Rafael A. García Rosas :: Tarea 2 Problema 1: • Crear una página web que contenga una cabecera de nivel 1 (h1), luego una cabecera de nivel 2 (h2) y un párrafo. • Definir reglas de estilo para las tres marcas h1,h2 y p. • Inicializar propiedades vistas en conceptos anteriores. • Intentar el planteo de una página que muestre el contenido de la forma más clara posible. :: M.C. Rafael A. García Rosas :: Tarea 2 (2) Problema 2: • Definir en la hoja de estilo estas dos clases: .subrayado { color:#00aa00; text-decoration:underline; } .tachado { color:#00aa00; text-decoration:line-through; } • Luego, en la página html, – Definir un título con nivel h1 (subrayar todo el título). – Luego un párrafo que tenga algunas palabras subrayadas y otras tachadas (utilizar la marca span para asignar estilos a una palabra). :: M.C. Rafael A. García Rosas :: Tarea 2 (3) Problema 3: • Definir estas dos reglas en la hoja de estilo externa. .pregunta { font-family:verdana; font-size:14px; font-style:italic; color:#0000aa; } .respuesta { font-family:verdana; font-size:12px; font-style:normal; text-align:justify; color:#555555; } • • • Luego crear una página HTML que contenga 3 preguntas y 3 respuestas. A cada pregunta y respuesta disponerla en un párrafo distinto. Asignar los estilos .pregunta y .respueta :: M.C. Rafael A. García Rosas :: Definición de estilos por medio de clases. <html> <head> <title>Problema</title> <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <h1 class="resaltado">Titulo de nivel 1</h1> <p> Este parrafo muestra el resultado de aplicar la clase .resaltado en la última <span class="resaltado">palabra.</span> </p> </body> </html> La sintaxis para definir una clase aplicable a cualquier marca HTML es: body { background-color:#eeeeee; } .resaltado{ color:#000000; background-color:#ffff00; font-style:italic; } :: M.C. Rafael A. García Rosas :: Definición de estilos por medio de Id. • La diferencia fundamental en la definición de un estilo por medio de Id con respecto a la de clase, es que sólo podremos aplicar dicho estilo a una sola marca dentro de la página HTML. • La sintaxis para definir un estilo por medio de Id es: #cabecera { font-family:Times New Roman; font-size:30px; text-align:center; color:#0000ff; background-color:#bbbbbb; } • Luego, sólo una marca HTML dentro de una página puede definir un estilo de este tipo: <div id="cabecera"> :: M.C. Rafael A. García Rosas :: Definición de estilos por medio de Id. Ejemplo completo <html> <head> <title>Problema</title> <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <div id="cabecera"> <h1>Título de la cabecera</h1> </div> </body> </html> :: M.C. Rafael A. García Rosas :: Propiedades relacionadas al borde de una marca HTML. • Debemos ahora hacernos la idea que todo elemento que se crea dentro de una página HTML genera una caja. • Imaginemos los controles que hemos creado h1,h2,h3,p,em, etc.; si fijamos la propiedad backgroundcolor veremos que el contenido se encuentra dentro de un rectángulo. • Podemos acceder a las propiedades del borde de ese rectángulo mediante las CSS; las propiedades más importantes a las que tenemos acceso son: – border-width – border-style – border-color :: M.C. Rafael A. García Rosas :: Propiedades relacionadas al borde de una marca HTML. Disponemos de los siguientes estilos de borde (border-style): • • • • • • • • • • none hidden dotted dashed solid double groove ridge Inset outset Continúa ejemplo -> :: M.C. Rafael A. García Rosas :: Propiedades relacionadas al borde de una marca HTML. estilos.css pagina1.html .pregunta { background-color:#ffff00; border-width:1px; border-style:solid; border-color:#000000; } .respuesta { border-width:1px; border-style:dashed; border-color:#000000; } <html> <head> <title>Problema</title> <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <p class="pregunta">Quién descubrió América y en que año fue?</p> <p class="respuesta">Colón en 1492</p> </body> </html> :: M.C. Rafael A. García Rosas :: El selector universal * • Sirve para inicializar las propiedades de todas las marcas HTML. *{ color:#0000aa; margin:0px; padding:0px; } • Esto significa que todas las marcas se imprimen de color verde con cero pixel de margin y padding, salvo que otra regla lo cambie. • Imaginemos si definimos h1 { color:#ff0000} significa que tiene prioridad esta regla. :: M.C. Rafael A. García Rosas :: El selector universal * • En realidad, en forma tácita lo hemos estado utilizando, cuando definimos una clase sin indicar el tipo de marca HTML donde actuará. .pregunta {…} • Equivalente a: *.pregunta {…} • Es decir que podemos asignar esta regla a cualquier marca HTML. p.pregunta {…} //Indica que esta regla sólo se puede utilizar en las marcas de párrafo. :: M.C. Rafael A. García Rosas :: Pseudoclases • Las pseudoclases son unas clases especiales, que se refieren a algunos estados especiales del elemento HTML. • Las que se utilizan fundamentalmente son las que se aplican a la marca <a> (ancla). • La sintaxis : a:pseudoclase { propiedad: valor; } :: M.C. Rafael A. García Rosas :: Pseudoclases • Para la marca HTML <a> tenemos 4 pseudoclases fundamentales: – – – – link - Enlace sin ingresar visited - Enlace presionado. hover - Enlace que tiene la flecha del mouse encima,. active - Es la que tiene foco en ese momento (pruebe de tocar la tecla tab). • Es importante hacer notar que el orden en que definimos las pseudoclases es fundamental para su funcionamiento -> debe respetarse el orden: link-visited-hover-active :: M.C. Rafael A. García Rosas :: Pseudoclases página.html estilos.css <html> <head> <title>Problema</title> <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <a href="http://www.google.com">Google< /a> <a href="http://www.yahoo.com">Yahoo</ a> <a href="http://www.msn.com">Msn</a> </body> </html> a:link{ background-color:#00ff00; color:#ff0000; } a:visited{ background-color:#000000; color:#ffffff; } a:hover{ background-color:#ff00ff; color:#fffff; } a:active{ background-color:#ff0000; color:#ffff00; } :: M.C. Rafael A. García Rosas :: Eliminar el subrayado a un enlace por medio de las pseudoclases • Otra actividad común en algunos sitios es eliminar el subrayado a los enlaces. • La hoja de estilo es: a:link { text-decoration: none; } a:visited { text-decoration: none; } • Tener en cuenta que podemos agrupar la regla de esta forma: a:link, a:visited { text-decoration: none; } :: M.C. Rafael A. García Rosas :: Propiedades relacionadas a la dimensión de un objeto en la página. • Disponemos de dos propiedades fundamentales que nos permiten fijar el ancho y el alto de una marca HTML. estilos.css pagina1.html #cabecera { <html> <head> <title>Problema</title> <link rel="StyleSheet" href="estilos.css" type="text/css"> </head> <body> <div id="cabecera"> Blog del Programador </div> </body> </html> width:100%; height:100px; background-color:#ffee00; color:#0000aa; text-align:center; font-family:Times New Roman; font-size:50px; font-weight:bold; } :: M.C. Rafael A. García Rosas :: Creación de un menú vertical configurando las pseudoclases. • Un recurso muy útil es disponer un menú en una página, si no requerimos uno muy elaborado podemos resolverlo utilizando sólo CSS y HTML • Tarea 3: – Basado en los principios de pseudoclases, implementa: • Un menú vertical • Un menú horizontal