Media

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Esta es la ultima sección de la primera parte del tutorial de Introducción a CSS. Muchas páginas de este tutorial se han enfocado en las propiedades y valores de CSS que especifican como mostrar un documento. Esta sección indaga otra vez en el propósito y la estructura de las hojas de estilo.

Información: Media

El propósito de CSS es especificar cómo los documentos son presentados al usuario. La presentación puede tener más de una forma.

Por ejemplo, probablemente estes leyendo esta página en algún aparato doméstico (un celular, tu pc). Pero también podrías querer proyectarlo para una audiencia mas grande o imprimirlo. Estos medios pueden tener diferentes características. CSS te provee diferentes maneras de presentar un documento en distintos medios.

Para especificar reglas para un medio en particular, usa @media seguido por el tipo de medio, seguido por llaves que encierren las reglas.

Ejemplo

Un documento en un web site tiene una barra de navegación que permite a los usuarios moverse en el sitio.

En el lenguaje de marcado, el elemento padre de esta área tiene el id nav-area. (En HTML5, esto puede ser marcado con el elemento <nav> en vez de un <div> con un atributo id.)

Cuando vas a imprimir el documento esa área de navegación no tiene ningún propósito, entonces con las hojas de estilo puedes removerlo completamente:

@media print {
  #nav-area {display: none;}
  }

Algunos de los tipos de medios comunes son:

screen Pantalla de computadora
print Medio paginado
projection Pantalla proyectada
all Todos (por defecto)
Mas detalles

Existen otras maneras de especificar un conjunto de reglas para los distintos medios.

El lenguaje de marcado del documento puede permitir que el tipo de medio sea determinado cuando la hoja de estilo esta enlazada al documento. Por ejemplo, en HTML puedes especificar el tipo de medio con un atributo media en la etiqueta LINK.

En CSS puedes usar @import al inicio de la hoja de estilo para importar otra hoja de estilo de una URL, opcionalmente especificando el tipo de medio.

Al usar estas técnicas puedes separar las reglas de estilo para los diferentes medios en distintos archivos. Esta es una manera útil de estructurar tus hojas de estilo.

Para más detalles de los tipos de medio, ve Media en la especificación de CSS.

Existen mas ejemplos de la propiedad display en una página posterior de este tutorial: XML data.

Imprimir

CSS tiene algún soporte especifico para impresión y para medios páginados en general.

Una regla @page puede determinar los márgenes de la página. Para impresión de doble cara, puedes definir los márgenes separadamente para @page:left@page:right.

Para medios impresios, normalmente usas unidades apropiadas de lonfigutd como pulgadas (in) y puntos (pt = 1/72 inch), o centimetros (cm) y milimetros (mm). Es igualmente apropiado usar ems (em) para conincidir el tamaño de la fuente, y porcentajes (%).

Tu puedes controlar como los saltos de línea del contenido de un documento, al usar las propiedades page-break-before, page-break-after ypage-break-inside.

Ejemplo

Esta regla determina los márgenes a una pulgada en todos los lados:

@page {margin: 1in;}

Esta regla asegura que cada elemento H1 empiece en una nueva página:

h1 {page-break-before: always;}
Más detalles

Para más detalles del soporte de CSS para medios paginados, ver Paged media en la especificación de CSS.

Como otras características de CSS, imprimir depende de tu navegador y su configuración. Por ejemplo, Mozilla te suple con unos márgenes por defecto, cabeceras y pies de página cuando imprimes. Cuando otros usuarios imprimen tu documento, probablemente no puedas predecir el navegador y la configuración usada, por lo que no podrás controlar los resutlados completamente.

Interfaces de Usuario

CSS tiene algunas propiedades especificas para aparatos que soportanuna interfaz de usuario, como monitores. Esto hace que la apariencia del documento cambie dinámicamente mientras el usuario trabaja con la interfaz.

No existe un tipo especial de medio para aparatos con interfaz de usuario.

Si existen cinco selectores especiales:

Selector Selects
E:hover Cualquier elemento E que tenga el puntero sobre él
E:focus Cualquier elemento E que tenga el foco del teclado
E:active Cualquier elemento E que este envuelto en la acción actual del usuario
E:link Cualquier elemento E que es un hipervinculo a una URL no visitada por el usuario
E:visited Cualquier elemento E que es un hipervinculo a una URL que el usuario ya visito

Nota: La información que puede ser obtenida con el selector :visited esta restringida en Gecko 2.0. Ver Privacy and the :visited selector para más detalles.

La propiedad cursor especifica la forma del puntero: Algunas de las formas comunes son las siguientes.

Coloca el mouse sobre los items en este lista para ver la forma actual del puntero en tu navegador:

Selector Selects
pointer Indicating a link
wait Indicating that the program cannot accept input
progress Indicating that the program is working, but can still accept input
default The default (usually an arrow)

Una propiedad outline crea un contorno que a menudo es usado para indicar el foco del teclado. Sus valores son similares a la propiedad border, excepto que no puedes especificar lados individuales.

Otras características de las interfaces de usuario son implementadas usando atributos. Por ejemplo, un elemento que esta deshabilitado o es de solo lectura tiene el atributo disabled o el atributo readonly. Selectores puede especificar estos atributos como cualquier otro, usando corchetes: [disabled][readonly].

Ejemplo

Estas reglas especifican estilos para un boton que cambia dinámicamente cuando el usuario interactúa con el:

.green-button {
  background-color:#cec;
  color:#black;
  border:2px outset #cec;
  }

.green-button[disabled] {
  background-color:#cdc;
  color:#777;
  }

.green-button:active {
  border-style: inset;
  }

Esta wiki no soporta una interfaz de usuario en la página, entonces estos botones no hacen "click". A continuación se presentan una imágenes estáticas para ilustrar la idea:

Click Me Click Me Click Me
 
disabled normal active

Un botón completamente funcional también tiene un contorno oscuro alrededor cuando esta por defecto, y un contorno punteado en él cuando tiene el foco del teclado. También podría un efecto flotante (hover) cuando el puntero este sobre el.

Más detalles

Para más información sobre interfaces de usuario en CSS, ver User interface en la especificación de CSS.

Existe un ejemplo del lenguaje de marcado usado por Mozilla para interfaces de usuario, XUL, en la Parte II de este tutorial.

Acción: Imprimir un documento

  1. Abrir un nuevo documento HTML, doc4.html. Copiar y pegar el contenido de aqui:
    <!DOCTYPE html>
    <html>
      <head>
        <title>Print sample</title>
        <link rel="stylesheet" href="style4.css">
      </head>
      <body>
        <h1>Section A</h1>
        <p>This is the first section...</p>
        <h1>Section B</h1>
        <p>This is the second section...</p>
        <div id="print-head">
          Heading for paged media
        </div>
        <div id="print-foot">
          Page: 
        </div>
    </body>
    </html>
    
  2. Abrir una nueva hoja de estilo, style4.css. Copiar y pegar el contenido de aqui:
    /*** Print sample ***/
    
    /* defaults  for screen */
    #print-head,
    #print-foot {
      display: none;
      }
    
    /* print only */
    @media print {
    
    h1 {
      page-break-before: always;
      padding-top: 2em;
      }
    
    h1:first-child {
      page-break-before: avoid;
      counter-reset: page;
      }
    
    #print-head {
      display: block;
      position: fixed;
      top: 0pt;
      left:0pt;
      right: 0pt;
    
      font-size: 200%;
      text-align: center;
      }
    
    #print-foot {
      display: block;
      position: fixed;
      bottom: 0pt;
      right: 0pt;
    
      font-size: 200%;
      }
    
    #print-foot:after {
      content: counter(page);
      counter-increment: page;
      }
    
    } /* end print only */
    
  3. Ve este documento en tu navegador; este usa el estilo por defecto de tu navegador.
  4. Imprime (o previsualiza) el documento; la hoja de estilo coloca cada sección en una página separada, y agrega una cabecera y un pie de página por cada una. Si tu navegador soporta contadores, le agregará un número de página al pie.
    Heading for paged media
    Section A
    This is the first section...
    Page: 1
    Heading for paged media
    Section B
    This is the second section...
    Page: 2
Retos
Mueve las relgas de estilo especificas para imprimir a un archivo CSS separado.

Lee la página de referencia @import para buscar detalles de como importar el nuevo archivo CSS especifico para imrpimir dentro de tu hoja de estilo style4.css.

Haz que las encabezamientos se vuelvan azules cuando el puntero del mouse este sobre ellos.

Ver soluciones a estos retos.

¿Qué sigue?

Si has tenido dificultades entendiendo esta página, o si tienes algún comentario, por favor contribuye en la página de Discussion.

Hasta aquí, todas las reglas de estilo en este tutorial han estado en archivos especificos. Las reglas y sus valores son fijos. La siguiente página describe como cambiar las reglas dinámicamente al usar un lenguaje de programación: JavaScript

Etiquetas y colaboradores del documento

 Colaboradores en esta página: luismj
 Última actualización por: luismj,