Foros del Web » Creando para Internet » CSS »

¿Has usado el atributo style?. Lo has hecho mal

Estas en el tema de ¿Has usado el atributo style?. Lo has hecho mal en el foro de CSS en Foros del Web. Hola Bueno, no importa cuanto crea uno saber, definitivamente siempre hay cosas que considerar y cosas que aprender. Hoy revisando algo de información para un ...
  #1 (permalink)  
Antiguo 20/08/2007, 04:18
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Información ¿Has usado el atributo style?. Lo has hecho mal

Hola

Bueno, no importa cuanto crea uno saber, definitivamente siempre hay cosas que considerar y cosas que aprender.

Hoy revisando algo de información para un escrito que estoy haciendo, me encontré con una de esas oscuras frases que alguna vez leí pero la costumbre, la vagancia o la falta de atención me hicieron pasar por alto. Al igual que a toda la gente conozco y que no conozco. Debo decir que aun no he visto un ejemplo real de lo que acabo de leer.

Aquí tienen la sección en español y aquí la definición original desde el W3C.

Para quienes les de fastidio ir a leer las referencias, les pongo abajo la parte importante:

Cita:
Authors should use the META element to set the default style sheet language for a document. For example, to set the default to CSS, authors should put the following declaration in the HEAD of their documents:
<META http-equiv="Content-Style-Type" content="text/css">
[...]
User agents should determine the default style sheet language for a document according to the following steps (highest to lowest priority):

1. If any META declarations specify the "Content-Style-Type", the last one in the character stream determines the default style sheet language.
2. Otherwise, if any HTTP headers specify the "Content-Style-Type", the last one in the character stream determines the default style sheet language.
3. Otherwise, the default style sheet language is "text/css".

Documents that include elements that set the style attribute but which don't define a default style sheet language are incorrect. Authoring tools should generate default style sheet language information (typically a META declaration) so that user agents do not have to rely on a default of "text/css".
Qué no dice todo esto, bueno, varias cosas, pero básicamente no dice que todos los que hemos hecho lo siguiente, lo hemos hecho mal.
Código HTML:
<p style="border:1px solid #f00;">bla bla bla</p> 
Debería haber sido hecho así:
Código HTML:
<head>
	<meta http-equiv="Content-Style-Type" content="text/css" />
...
</head>
...
<p style="border:1px solid #f00;" type="text/css">bla bla bla</p> 
A lo anterior, agregaré que ninguno de los editores visuales que he usado alguna vez han incluido dicha etiqueta meta. Hace mucho que no uso ninguno de ellos, pero estoy casi seguro de que no incluyen esa línea por defecto.

Es curioso que el mismo validador del W3C no indica nunca este error, especialmente cuando esta es una de las pocas ocasiones en que la definición es totalmente clara y concisa, sin lugar a interpretaciones ni errores de lectura.

Así que ya saben, si van a usar el atributo style en alguna etiqueta y quieren poder decir que su página no tiene errores, deben usar la etiqueta meta mencionada.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #2 (permalink)  
Antiguo 20/08/2007, 06:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: ¿Has usado el atributo style?. Lo has hecho mal

Clarísimo. Qué raro que no hayamos visto más seguido esta META entonces...

Aunque no entiendo la obligación de declarar la etiqueta si se especifica claramente que el lenguaje para los estilos queda por defecto en text/css.

Nótese también que la etiqueta LINK tiene su atributo type que debe estar presente y que esta nota solo se aplica a elementos con el atributo style especificado.

Y una cosa más: el elemento p no tiene un atributo "type", por lo que tu ejemplo no es correcto.


Saludos.
  #3 (permalink)  
Antiguo 20/08/2007, 07:14
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Re: ¿Has usado el atributo style?. Lo has hecho mal

Hola

Mi ejemplo es correcto, justamente eso es lo que quise demostrar. Los elementos que tienen type como atributo, lo tienen con otro fin, no con la opción de poner el tipo de estilo. Pero acepto tu comentario ya que no dejé clara mi idea.

La obligación de declararlo, viene justamente para el uso de estilos inline, los cuales, no son los que se hacen mediante la etiqueta link si no mediante el atributo style.

Por cierto que el atributo type en la etiqueta link es opcional.

Sobre quedar por defecto un tipo de estilo definido, ciertamente es CSS, pero no es el único lenguaje de estilos que hay, así que si en una etiqueta pones el atributo style y en el colocas una regla de algún otro lenguaje de estilos, este puede ser malinterpretado. Podemos pensar que es un error del editor o autor de la página, sin embargo, también podemos hacer el comentario al revés, diciendo que el error es de la regla al dar preferencia un lenguaje sobre otro.

Finalmente, en cualquier caso, aun rebatiendo el párrafo anterior, el hecho es que el propio w3c dice que hay que definir el lenguaje de estilos, especialmente si se van a usar estilos inline.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #4 (permalink)  
Antiguo 07/09/2007, 05:32
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Re: ¿Has usado el atributo style?. Lo has hecho mal

Como siempre muy interesantes tus investigaciones y aportaciones PatomaS.

Gracias
  #5 (permalink)  
Antiguo 07/09/2007, 05:46
 
Fecha de Ingreso: abril-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Re: ¿Has usado el atributo style?. Lo has hecho mal

Es que en realidad la función de las CSS es separar el diseño del contenido, entonces cuando metemos dentro del contenido una etiqueta style, lo que estamos haciendo es dar pasos atrás y no usar las CSS para lo que fueron concebidas.

Que menos entonces que aclararlo.

De hecho cuando se usa una hoja de estilos a nivel profesional la CSS no está incluida en el html si no que está a parte y para ello informamos al respecto



por ejemplo:

Código:
<link rel="stylesheet" type="text/css" media="screen" href="estilo.css" />



Así una vez separadas ambas cosas nuestra meta correcta sería por ejemplo:


Código:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />



Pero si no lo hacemos así, porque no sabemos, o porque usamos programas de edición para el código automatizados que escriben por nosotros, es lógico que se nos pida incluir lo que estamos haciendo en la meta.

Por esa razón cualquier experto siempre te dirá que no hay mejor editor que un bloc de notas con colorines, donde tú tienes el control de todo y en consecuencia lo defines en las metas según trabajas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.