You are reading

Pequeña duda sobre tipos de medios en CSS y XHTML

Para los que saben más que yo de CSS y XHTML(1, 2, 3, chicas, el orden es arbitrario, ninguno es mejor que los otros a mis ojos), una preguntilla:

¿El tipo de medio por defecto para una hoja de estilo es screen o all? Según la especificación HTML 4.0 (las negritas son mías):

(..) This attribute specifies the intended destination medium for style information. It may be a single media descriptor or a comma-separated list. The default value for this attribute is “screen”.

Sin embargo, Eric Meyer, en Print Different, dice:

(..) The most important is all, which is the default value for any stylesheet which does not have a defined media.

Joe Clark, en Building Accessible Websites dice lo mismo:

If you do not specify a medium for a stylesheet, graphical Web browsers default to an interpretation of media=”all”. That may not be true for cellphones, toaster-ovens, or other Internet-connected devices, not that any of them actually make use of media CSS.

¿De donde han sacado estos señores que el tipo de medio por defecto es all? ¿Alguien puede apuntarme un enlace a donde se especifique eso en las especificaciones de CSS 2.0 y/o CSS 2.1?

Para agregar un poco más de leña al fuego, HTML 4.0 dice:

Note. Style sheets may include media-dependent variations within them (e.g., the CSS @media construct). In such cases it may be appropriate to use “media=all”

Lo cual es una razón perfectamente válida para suponer que el valor por defecto de media sea all. ¿Algún sabio lecturón de especificaciones que pueda hechar luz al respecto?

Comments for this entry

Según la especificación, la ausencia de media te permite suponer screen. Lo de Clark supongo que se refiere a que las implementaciones (navegadores) se han mofado de las especificaciones y agarran cualquier hoja de estilos que ven. Esto pasa generalmente con dispositivos moviles (que también suelen ignorar media="handheld". Lo de Meyer me parece un error basado en sus experiencias con navegadores (según lo que dije antes sobre Clark).
Sobre HTML 4.0 y media="all" puede entenderse como un consejo a los webmasters: “si van a usar @media, enlacen sus hojas de estilos con media="all"” o como un consejo a los desarrolladores de navegadores: “guarda que algunos no aclaran el tipo de media para la hoja de estilos cuando la enlazan pero si lo aclaran dentro de la misma, entonces no estaría mal que usen all como tipo de medio por defecto.
Como pequeño experimento: Opera 8 usa media="projection" cuando está en pantalla completa. Si no le aclaras que la hoja de estilos es para screen, la usa. O sea, el valor por defecto de media es all (al menos posiblemente, dado que no pude probar como sería imprimir).

Kudos para el participante Número 3.

Básicamente lo mismo que ha dicho Federico, según la especificación, el valor por defecto es “screen”, pero claro, una cosa es lo que dicen las especificaciones y otra muy distinta, (normalmente), la que hacen los navegadores.

Por tanto, en mi opinión, se puede decir que el valor oficial es “screen” y el estándar “de facto” es “all”.

Entiendo. El problema era mucho más sencillo entonces, se trataba de solo una “mala praxis” de parte de algunos navegadores.

yo siempre doy prioridad a screen.

En realidad es aún mas simple.

El standard establece que si no se especifica el tipo, por defecto se interpreta screen.

Ahora, el user-agent va a buscar todos los medios disponibles y elegir el mas apropiado para el tipo de pedido (es decir si se están navegando desde una pc, una palm, un teléfono, etc).

Si solo encuentra uno, le va a dar la prioridad de media=all y no por “mala praxis” sino porque es el único medio disponible.

Federico me ha ahorrado unas cuantas líneas de texto. En mi experiencia con PDAs por ejemplo, toman la hoja de estilo que especifico. Algunas PDAs por costumbre se pasan por el forro el tema del “handheld” y aprovechan la de screen.

Mi experiencia siempre ha sido, si no se define es “all”, puedes hacer una prueba en IE / FF y verás que cuando quieres imprimir te saldrá todo con los estilos por defecto del CSS.

Si defines screen el efecto será el contrario: cuando quieras imprimir saldrá todo sin estilos, lo mismo para otros dispositivos.

Media es bastante amplio, incluso, podría hacer un dispositivo que lea media=”psp” o media=”handheld, psp” lo cual me permitiría usan una misma hoja de estilos para PSP y para otros dispositivos handheld.

Quedaría probar si, cuando no definis media, también aplica estilos al imprimir. 1000 a 1 a que sí. :(

Leave your comment

Please be polite. You can use these HTML tags: STRONG, A, BLOCKQUOTE, CODE



Copyright © 2004–2010 Rodrigo Galindez. All rights reserved. Hosting by XMundo Networks.

RSS Feed. Proudly powered by Wordpress. Correct at time of going to print.