Hojas de Estilo : CSS Cascading Style Sheets Dr. José Raúl Pérez Cázares 1 Para que sirven las CSS? • Para separar la presentación (color, font ..) del contenido del documento • Para facilitar la definición y cambios de estilo de un sitio web. • Para lograr un estilo consistente en un sitio. • Para que un usuario modifique a su preferencia la presentación de una página web. • Para adaptar el estilo de presentación de un document a los diferentes medios (pantalla, impresión,…). Dr. José Raúl Pérez Cázares 2 Versiones http://www.w3.org/Style/CSS/ • CSS1 – 1996 revisada en 1999 – contiene los aspectos básicos • CSS 2.1 – Noviembre 2006 'final call working draft' – IE7 and Firefox 2 cumplen con casi todo • CSS 3 – En desarrollo Dr. José Raúl Pérez Cázares 3 ¿Donde se ponen las hojas de estilo? Existen 3 opciones: • Hojas externas • Hojas Internas • Estilos en línea Dr. José Raúl Pérez Cázares 4 Hojas Externas mystyle.css hr {color: sienna} p {margin-left: 20px} body {background-image: url("back40.gif")} Es la manera mas recomendada, la hoja de estilo se escribe en un archivo de texto, con extensión .css <head> En la página XHTML se indica la relación <link rel="stylesheet" type="text/css" href="mystyle.css" /> con la hoja externa. </head> Dr. José Raúl Pérez Cázares 5 Hojas Internas <html > <head> <style type="text/css"> p { color: red;background: yellow;} </style> </head> <body > <p>Este es un párrafo</p> <p>Este es otro párrafo</p> </body> </html> Dr. José Raúl Pérez Cázares Se utilizan cuando el estilo se aplica solo a un documento 6 Estilos en línea <ETIQUETA style="propiedad:valor;....">... </ETIQUETA> <p style="color: sienna; margin-left: 20px"> Este es un párrafo con estilo </p> <p> Este es un párrafo normal </p> Se pierden muchas de las ventajas de las hojas de estilo ya que se mezcla contenido con presentación. Este método se usa cuando el estilo se aplica a un solo elemento. Dr. José Raúl Pérez Cázares 7 Orden de aplicación 1. Las definidas por el navegador 2. Las definidas por el usuario 3. Hoja de estilo externa 4. Hoja de estilo interna 5. Directamente sobre la etiqueta HTML 6. Las definidas por el usuario como importantes Dr. José Raúl Pérez Cázares Menor Prioridad Mayor Prioridad 8 Estructura de una regla Dr. José Raúl Pérez Cázares 9 Selectores • Selectores de elementos – (etiquetas HTML) h1 {color: purple;} h1, h2, p {color: purple;} (agrupación) • Contextuales – (etiquetas HTML, pero en contexto) ejemplo: li b {color: purple;} (ocurrencia de b dentro de li) Dr. José Raúl Pérez Cázares 10 Selectores • Selectores de clase h1.aviso {color: red;} (elementos h1 de la clase aviso) ó .aviso {color:red;} (cualquier elemento de la clase aviso) <h class=“aviso”>Peligro!</h1> <p class=“aviso”>Tenga cuidado…</p> ……. Dr. José Raúl Pérez Cázares 11 Selectores • Pseudo-elementos (partes de un elemento) p:first-letter {color:#ff0000;font-size:xx-large} p:first-line {color:#0000ff;font-variant:small-caps} Dr. José Raúl Pérez Cázares 12 Selectores • Pseudo-Clases (Variantes de un selector) selector:pseudo-clase { propiedad: valor } a:link {color: #FF0000} a:visited {color: #00FF00} a:hover {color: #FF00FF} a:active {color: #0000FF} /* link no visitado */ /* link visitado */ /* mouse sobre el link */ /* link seleccionado */ p:first-child {color: #FF0000} /* primer párrafo dentro de otro elemento*/ Dr. José Raúl Pérez Cázares 13 Selectores Selector por id #ParteAzul{color: blue;} #ParteRoja{color: red;} <body > <div id=“ParteAzul">La parte azul</div> <div id=“ParteRoja">La parte roja</div> </body> Dr. José Raúl Pérez Cázares 14 Ejemplos de Propiedades Dr. José Raúl Pérez Cázares 15 Background • • • • • background-color background-image background-repeat background-attachment background-position Dr. José Raúl Pérez Cázares 16 Background <html> <head> <style type="text/css"> body {background-color: yellow} h1 {background-color: #00ff00} h2 {background-color: transparent} p {background-color: rgb(250,0,255)} </style> </head> <body> <h1>This is header 1</h1> <h2>This is header 2</h2> <p>This is a paragraph</p> </body> </html> Dr. José Raúl Pérez Cázares 17 Texto • • • • • • • color direction line-height letter-spacing text-decoration text-indent … Dr. José Raúl Pérez Cázares 18 Texto: color <html> <head> <style type="text/css"> h1 {color: #00ff00} h2 {color: #dda0dd} p {color: rgb(0,0,255)} </style> </head> <body> <h1>This is header 1</h1> <h2>This is header 2</h2> <p>This is a paragraph</p> </body> </html> Dr. José Raúl Pérez Cázares 19 Texto: text-decoration <html> <head> <style type="text/css"> h1 {text-decoration: overline} h2 {text-decoration: line-through} h3 {text-decoration: underline} </style> </head> <body> <h1>This is header 1</h1> <h2>This is header 2</h2> <h3>This is header 3</h3> </body> </html> Dr. José Raúl Pérez Cázares 20 Texto: text-align <html> <head> <style type="text/css"> h1 {text-align: center} h2 {text-align: left} h3 {text-align: right} </style> </head> <body> <h1>This is header 1</h1> <h2>This is header 2</h2> <h3>This is header 3</h3> </body> </html> Dr. José Raúl Pérez Cázares 21 Fuentes • • • • • • font-familiy font-style font-variant font-weight font-size … Dr. José Raúl Pérez Cázares 22 Fuentes: font-family <html> <head> <style type="text/css"> h3 {font-family: times} p {font-family: courier} p.sansserif {font-family: sans-serif} </style> </head> <body> <h3>This is header 3</h3> <p>This is a paragraph</p> <p class="sansserif">This is a paragraph</p> </body> </html> Dr. José Raúl Pérez Cázares 23 Fuentes: font-size <html> <head> <style type="text/css"> h1 {font-size: 150%} h2 {font-size: 130%} p {font-size: 100%} p.grande {font-size: 32pt} </style> </head> <body> <h1>This is header 1</h1> <h2>This is header 2</h2> <p>This is a paragraph</p> <p class="grande"> This is a big paragraph</p> </body> </html> Dr. José Raúl Pérez Cázares 24 Bordes • border-width • border-style • border-color Dr. José Raúl Pérez Cázares 25 Bordes: border-style <html> <head> <style type="text/css"> p.dotted {border-style: dotted} p.dashed {border-style: dashed} p.solid {border-style: solid} p.double {border-style: double} p.groove {border-style: groove} p.ridge {border-style: ridge} p.inset {border-style: inset} p.outset {border-style: outset} </style> </head> <body> <p class="dotted">A dotted border</p> <p class="dashed">A dashed border</p> <p class="solid">A solid border</p> <p class="double">A double border</p> <p class="groove">A groove border</p> <p class="ridge">A ridge border</p> <p class="inset">An inset border</p> <p class="outset">An outset border</p> </body> </html> Dr. José Raúl Pérez Cázares 26 Bordes: border-style Dr. José Raúl Pérez Cázares 27 Bordes: border-width <html> <head> <style type="text/css"> p.one {border-style: solid; border-top-width: 15px} p.two {border-style: solid; border-top-width: thin} </style> </head> <body> <p class="one"><b>Note:</b> The "border-top-width" property does not work if it is used alone. Use the "border-style" property to set the borders first.</p> <p class="two">Some text. Some more text.</p> </body> </html> Dr. José Raúl Pérez Cázares 28 Bordes: border-width Dr. José Raúl Pérez Cázares 29 Caja (Box model) Dr. José Raúl Pérez Cázares 30 Caja <html> <head> <style type="text/css"> p.boxed { margin: 20px; border: solid; border-width: 10px; border-color: green; padding: 10px; } </style> </head> <body> <p class="boxed">This is a boxed paragraph. Please note the border properties, the distance betwen the content and the border (padding) and the margin</p> <p class="sansserif">This is a paragraph</p> </body> </html> Dr. José Raúl Pérez Cázares 31 Caja: ejemplo Dr. José Raúl Pérez Cázares 32 Listas • list-style-type • list-style-position • list-style-image Dr. José Raúl Pérez Cázares 33 Listas: list-style-type <ul class="circle"> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ul> <ul class="square"> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ul> <ul class="none"> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ul> </body> Dr. José Raúl Pérez Cázares </html> <html> <head> <style type="text/css"> ul.disc {list-style-type: disc} ul.circle {list-style-type: circle} ul.square {list-style-type: square} ul.none {list-style-type: none} </style> </head> <body> <ul class="disc"> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ul> 34 Listas: list-style-type Dr. José Raúl Pérez Cázares 35 Tablas • • • • • border-collapse border-spacing caption-side empty-cells table-layout Dr. José Raúl Pérez Cázares 36 Tablas: border-collapse <html> <head> <style type="text/css"> table.coll { border-collapse: collapse } table.sep { border-collapse: separate } </style> </head> <body> <table class="coll" border="1"> <tr><td>Peter</td><td>Griffin</td></tr> <tr><td>Lois</td><td>Griffin</td></tr> </table> <br /> <table class="sep" border="1"> <tr><td>Peter</td><td>Griffin</td></tr> <tr><td>Lois</td><td>Griffin</td></tr> </table> </body> </html> Dr. José Raúl Pérez Cázares 37 Tablas: border-collapse Dr. José Raúl Pérez Cázares 38 Posición absoluta <html> <head> <style type="text/css"> h2.pos_abs{ position:absolute; left:100px; top:150px} </style> </head> <body> <h2 class="pos_abs">This is a heading with an absolute position</h2> <p>With absolute positioning, an element can be placed anywhere on a page. The heading below is placed 100px from the left of the page and 150px from the top of the page.</p> </body> </html> Dr. José Raúl Pérez Cázares 39 Posición absoluta Dr. José Raúl Pérez Cázares 40 Posición relativa <html> <head> <style type="text/css"> h2.pos_left{ position:relative; left:-20px} h2.pos_right{ position:relative; left:20px} </style> </head> <!--Aquí va el body --> </html> <body> <h2>This is a heading in normal position</h2> <h2 class="pos_left">This heading is moved left to its normal position</h2> <h2 class="pos_right">This heading is moved right to its normal position</h2> <p>Relative positioning moves an element RELATIVE to its original position.</p> <p>The style "left:-20px" subtracts 20 pixels from the element's original left position.</p> <p>The style "left:20px" adds 20 pixels to the element's original left position.</p> </body> Dr. José Raúl Pérez Cázares 41 Posición relativa Dr. José Raúl Pérez Cázares 42