Ir a contenido principal

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

La primera vez que se registra en developerWorks, se crea un perfil para usted. Información sobre su perfil (nombre, país/región y compañia) estará disponible al público y acompañará cualquiera de sus publicaciones. Puede actualizar su cuenta IBM en cualquier momento.

Toda la información enviada es segura.

  • Cerrar [x]

La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

Toda la información enviada es segura.

  • Cerrar [x]

Cree sitios Web modernos usando HTML5 y CSS3

Implementando los elementos de bastidor y de video en HTML5

Joe Lennon, Software developer, Core International
Joe Lennon photo
Joe Lennon es desarrollador de software. Él tiene 24 años y es de Cork, Irlanda. Joe es el autor del libro Beginning CouchDB próximo a publicarse por Apress, y ha contribuido a varios artículos técnicos y tutoriales para IBM developerWorks. En su tiempo libre, a Joe le gusta jugar fútbol, juguetear con gadgets y trabajar en su puntaje de juego en su Xbox 360. Pueden contactarle mediante su sitio Web en www.joelennon.ie.

Resumen:  Desde que emergió la World Wide Web a principio de los años 1990, el HTML ha evolucionado hasta convertirse en un lenguaje de marcación relativamente eficiente, el cual, cuando está respaldado por sus compañeros cercanos JavaScript y CSS, puede utilizarse para crear sitios Web y aplicaciones interactivos y visualmente sorprendentes. Este tutorial sirve como una introducción práctica a HTML5 y CSS3. Proporciona información sobre la funcionalidad y sintaxis para muchos de los nuevos elementos y APIs que el HTML5 tiene para ofrecer, así como los nuevos selectores, efectos y recursos que el CSS3 pone sobre la mesa. Finalmente, le mostrara cómo desarrollar una página Web de muestra que abarque muchos de estos nuevos recursos. Para cuando haya terminado este tutorial, usted estará preparado(a) para construir sitios Web o aplicaciones por usted mismo(a), que estén basados en HTML5 y CSS3.

Fecha:  14-06-2011
Nivel:  Intermediaria

Actividad:  43881 vistas

Nuevos recursos en el CSS3

Esta sección le presenta una introducción de los nuevos recursos que se pueden encontrar en las especificaciones del CSS nivel 3— (—incluyendo nuevos selectores CSS como los estructurales, los basados en estado y las pseudo-clases de negación, así como otros tipos nuevos de selectores). También muestra muchos de los efectos que ofrece el CSS3 y que anteriormente hubieran requerido que las imágenes se crearan usando una aplicación separada y que fueran guardados como GIF, JPG o PNG. Tales efectos incluyen sombras de gotas en texto y recuadros, esquinas redondeadas en los bordes y el uso de opacidades para crear una apariencia translúcida. El uso de muchos de estos recursos (como la opacidad y las esquinas redondeadas) está relativamente extendido, por el hecho de que se degradan de forma graciosa en navegadores Web legados. Luego, usted aprenderá sobre los nuevos diseños multicolumna que se pueden crear usando CSS3. Estos diseños son un regreso al diseño de periódico en donde el texto se acomoda dentro de un número establecido de columnas o dentro de un ancho de columna particular, según se requiera. Otro tema del que se hablará es el problema de incluir fuentes Web no estándar usando la etiqueta @font-face. Finalmente, se presentarán algunos de los demás nuevos recursos en el CSS3, como el soporte para modelos de colores HSL (Hue, Saturation y Lightness) y RGBA (Red, Green, Blue y Alpha).

Nuevos selectores

Un selector CSS hace referencia a la manera en que se da estilo a los elementos HTML usando una hoja de estilo. Por ejemplo, para poner borde alrededor de todos los elementos <div> usted utilizaría el selector div: div { border: 1px solid #000; }.

Para aplicar color de fondo a todos los elementos con la clase highlight usted utilizaría el selector .highlight: .highlight { background-color: yellow; }.

Finalmente, para cambiar el ancho de un elemento con un valor myDiv de atributo de ID, usted usaría: #myDiv { width: 250px; }.

Desde luego, estos selectores pueden combinarse, así que para seleccionar todos los elementos <div> dentro de la clase highlight, usted utilizaría div.highlight, o para seleccionar el elemento <div> con el ID myDiv usted utilizaría div#myDiv.

Además de estos selectores simples, el CSS también incluye (y lo ha hecho desde versiones anteriores) una serie de selectores complejos. Por ejemplo, usted puede usar el selector input[type="text"] para seleccionar únicamente los elementos de entrada que contengan un tipo de atributo con el valor text. O puede utilizar la pseudo-clase :hover para dar estilo a un elemento cuando el puntero del mouse pase sobre él, por ejemplo: a:hover { color: red; }.

Hay muchos más de estos selectores, todos ellos suministrados para facilitar la selección de un elemento para darle estilo. Con el CSS3 se han agregado incluso más selectores nuevos a la mezcla y todos ellos facilitan la vida de los desarrolladores, reduciendo la cantidad de HTML y JavaScript que necesitan escribir.

Selectores de atributos

E[foo^="bar"]
Selecciona un elemento, E, cuyo atributo foo comience exactamente con la cadena de caracteres bar
E[foo$="bar"]
Selecciona un elemento, E, cuyo atributo foo termine exactamente con la cadena de caracteres bar
E[foo*="bar"]
Selecciona un elemento, E, cuyo atributo foo contenga la cadena de caracteres bar

Pseudo-clases estructurales

E:root
Selecciona un elemento, E, de la raíz del documento (la etiqueta <html>)
E:nth-child(n)
Selecciona un elemento, E, el n-avo hijo de su elemento padre
E:nth-last-child(n)
Selecciona un elemento, E, el n-avo último hijo de su elemento padre
E:nth-of-type(n)
Selecciona un elemento, E, el n-avo hermano de su tipo
E:nth-last-of-type(n)
Selecciona un elemento, E, el n-avo último hermano de su tipo
E:last-child
Selecciona un elemento, E, que es el último hijo de su elemento padre (Note que E:first-child se definió previamente en CSS2)
E:first-of-type
Selecciona un elemento, E, el primer hermano de su tipo
E:last-of-type
Selecciona un elemento, E, el último hermano de su tipo
E:only-child
Selecciona un elemento, E, el único hijo de su elemento padre
E:only-of-type
Selecciona un elemento, E, el único hermano de su tipo
E:empty
Selecciona un elemento, E, que no tiene hijos (incluyendo nodos de texto)

La pseudo-clase target.

E:target
Selecciona un elemento, E, que es el objetivo de un URI que le hace referencia

Pseudo-clases de estados de elemento de IU

E:enabled
Selecciona un elemento de interfaz de usuario, E, que está habilitado
E:disabled
Selecciona un elemento de interfaz de usuario, E, que está deshabilitado
E:checked
Selecciona un elemento de interfaz de usuario, E (un botón de selección o recuadro de selección), que está marcado o seleccionado

Pseudo-clase Negation

E:not(s)
Selecciona un elemento, E, que no coincide con el selector simple s

Combinador general de hermanos

E ~ F
Selecciona un elemento, F, que es precedido por un elemento, E

El soporte de navegadores para los nuevos selectores de atributos y el combinador general de hermanos son excelentes, dado que funcionan en casi todos los navegadores Web modernos. El soporte de las nuevas pseudo-clases está incluido en las últimas versiones de la mayoría de navegadores, pero usted puede necesitar incluir a planes alternos para navegadores más antiguos como Explorer 6/7 y Firefox 3.0.


Nuevos efectos

Aunque los nuevos selectores probablemente son los recursos que más reducen los dolores de cabeza de los desarrolladores, las mejoras qué más desean ver las personas son los llamativos nuevos efectos que hay disponibles. Estos se facilitan mediante una gran cantidad de nuevas propiedades CSS, incluyendo:

  • background (ahora soporta múltiples backgrounds)
  • background-clip
  • background-origin
  • background-size
  • border-radius (esquinas redondeadas)
  • border-image
  • border-color (gradiente en los bordes)
  • box-shadow (sombra de gota en recuadros sin imágenes)
  • box-sizing
  • opacity
  • outline-offset
  • resize
  • text-overflow
  • text-shadow
  • word-wrap

La página de muestra HTML5/CSS3 que usted creará al final de este tutorial le mostrará algunos de estos nuevos efectos en acción.


Diseños multicolumnas

El diseño en multicolumna del CSS3 permite que el texto se distribuya sobre un número de columnas, como vería usted en una hoja de un periódico. Esto se puede hacer de dos formas, bien sea usando la propiedad de column-width, donde usted define qué tan ancha deberá ser cada columna (el número de columnas es determinado por el espacio disponible en el contenedor), o usando column-count, donde usted define el número de columnas que se deberá usar. Luego el ancho variará dependiendo del espacio disponible para cada columna.

Otros recursos de los diseños multicolumna incluyen la propiedad column-gap, que permite al desarrollador definir el espacio que debe haber entre columnas cuando se utiliza el método column-width. Otra útil adición es la propiedad column-rule, que permite colocar una regla estilo borde entre columnas. Finalmente, está la propiedad column-space-distribution, que determina cuánto espacio se debe dejar entre columnas.

Los diseños multicolumna son soportados actualmente por los navegadores Mozilla WebKit. Hasta ahora, estos están implementados mediante propiedades de marca registrada temporales con el prefijo -moz o -webkit, respectivamente. Cuando la especificación ha finalizado, estos navegadores eventualmente regresarán a las propiedades estándar.


Fuentes Web

Las fuentes Web fueron propuestas en realidad en el CSS2 y han estado disponibles en Microsoft Internet Explorer desde la versión 5. Desafortunadamente, esto necesitó del uso del formato de fuente patentado .eot (Embedded Open Type), y ninguno de los otros proveedores de navegadores decidió implementarlo. Como resultado, las fuentes Web realmente nunca despegaron en los sitios Web basados en CSS2.

Sin embargo, con las últimas versiones de Firefox, Safari, Chrome y Opera, usted puede usar ahora la regla @font-face para usar cualquier fuente .ttf (TrueType) o .otf (OpenType) licenciada, en su página Web. Un ejemplo de la regla @font-face es el siguiente: @font-face { font-family: Alexa; src: url('Alexa.otf'); }.

Ahora usted puede usar esta fuente en sus propias reglas CSS, como: article p { font-family: Alexa, Arial, Helvetica, sans-serif; }.

Recuerde que las fuentes son como imágenes— (—si no son suyas es posible que necesite permiso para utilizarlas en la Web). De forma alternativa, usted puede pagar por (o descargar gratuitamente) algunas fuentes libres de regalías que se pueden incluir en sus páginas Web a discreción suya.


Otros recursos nuevos

El CSS3 también incluye muchos otros nuevos recursos, incluyendo soporte para nuevos valores de color, particularmente HSL (Hue, Saturation, Lightness) y dos valores de color con propiedades alfa— (—RGBA (Red, Green, Blue, Alpha) y HSLA (Hue, Saturation, Lightness, Alpha). Las consultas de medios le permitirán definir diferentes estilos para diferentes dispositivos, con base en el tamaño de su puerto de visualización. Por ejemplo, usted puede proporcionar estilos específicos para dispositivos con un puerto de visualización de menos de 500 pixeles (como un teléfono inteligente, PDA u otro dispositivo móvil). El módulo de voz del CSS3 le permite controlar propiedades de la voz de un lector de pantalla, incluyendo el volumen de la voz, el balance, la tasa, el énfasis, y más.

3 de 8 | Anterior | Siguiente

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=680746
TutorialTitle=Cree sitios Web modernos usando HTML5 y CSS3
publish-date=06142011
author1-email=joe@joelennon.com
author1-email-cc=