[Ovillo] CSS y Legend

Orange at GMail orangeside en gmail.com
Dom Jun 18 17:04:34 UTC 2006


Todos aquellos que hayais tratado de darle formato a un LEGEND dentro de un
FIELDSET os habreis encontrado con la desagradable sorpresa de que no hay
manera de que aquello funcione como toca.

Yo ya lo intenté hace tiempo, cuando sabía algo menos de CSS, y abandoné...
Pero como es de estas cosas que se preguntan constantemente aqui y allá pues
me he tratado de poner de nuevo a la tarea... y he vuelto a abandonar, pero
esta vez creo que definitivamente.

A la estructura:

<fieldset>
<legend></legend>
</fieldset>

Le he aplicado todos mis sucios trucos, y no hay manera de conseguir un
comportamiento consistente multinavegador, y eso que no he arrancado el Mac.

Además había una cosa que me mosqueaba, con cada intento había navegadores
en los que parecía funcionar una cosa u otra... excepto con FireFox, donde
parecía que nada daba esultado. Y si en FireFox no rula, es que algo raro
estás haciendo.

Finalmente me he puesto a Googlear, y después de unos cuantos enlaces en los
que lo único que hacen es darle un color y cosas así de simples, he llegado
a CSS Disscuss -> http://archivist.incutio.com/viewlist/css-discuss/11279

">Essentially, the issue seems to be that CSS is unable to override the
>display of legend elements within a fieldset.

The reality is, you're not able to override much with CSS.  Because LEGEND
only has a couple of attributes.  From the XHTML Transitional DTD:

<!ELEMENT legend %Inline;>     <!-- fieldset label -->
<!ATTLIST legend
  %attrs;
  accesskey   %Character;    #IMPLIED
  align       %LAlign;       #IMPLIED
  >

Accesskey and Align are your only attributes, and it displays Inline by
default.  I'm not much of a DTD wizard, but what all of this means is that
you can't apply a width to the LEGEND element.  You run into the same thing
with LABEL.  Which is why I use a SPAN around LABEL elements to format them:
http://www.r2communications.com/cssTests/form_final.htm

As I said, I don't understand DTDs as well as I should, so I may be wrong.
The conclusions that I've drawn about why widths can't be applied via CSS to
LEGEND and LABEL elements are my own.  If I'm wrong, hopefully someone will
point it out:)

Randal"

Con la iglesia hemos topao... resulta que los a los cachondos del W3C les da
por hacer que no se le puedan aplicar más que un par de atributos.
Acabáramos, resulta que la forma más semántica de darle un título a un
fieldset es con Legend, pero no te dejan hacer una mierda con él. MUY buena
política para fomentar su uso, señores del World Wide Web Consortium.

Resultado, cualquiera que quiera hacer algo medio normal con un título para
un filedset tendrá que utilizar cualquier etiqueta que no sea Legend.

De cojones.

-- 
Orange at GMail


Más información sobre la lista de distribución Ovillo