Ver Mensaje Individual
  #14 (permalink)  
Antiguo 26/10/2008, 21:06
Avatar de Negora
Negora
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 5
Respuesta: ¿Funcionamiento incorrecto de border-collapse en Mozilla Firefox?

Cita:
Efectivamente el borde siempre ocupa espacio físico, y en cualquier otro caso el borde pasa a formar parte de la caja convirtiéndose en su propio límite (tal como explica el modelo de caja), pero en el caso concreto de la tabla con border-collapse, como se especifica que el borde deberá asignarse centrado a ambos lados de la rejilla, a mi me parece natural que una mitad desborde de su contenedora, ya que en el caso de una caja ella no se ve desplazada sino, si es caso, la parte visible "no bordeada" de ésta, o su parte disponible para contenido, pero no la propia caja.
Pero es que yo no he dicho que vea extraño que el borde rebase la rejilla. Eso en una tabla de bordes fusionados sería imposible de evitar según la especificación CSS. Lo que no es lógico es que la mitad del borde se comporte como algo etéreo y sin "masa" dentro del documento. Eso por definición no sería un borde. Y es lo que hace Firefox.


Cita:
Y esto en base a lo mismo de antes: nada indica expresamente que debe ser obligatoriamente la rejilla la que se ajuste a los límites de la contenedora, pero, de no ser así, ¿qué sentido tendría la especificación de que el borde sea centrado en base a ella? Si no fuera así, no haría falta en absoluto dicha declaración, porque como siempre la rejilla se vería desplazada una cantidad igual a la mitad de su borde en caso necesario, y teniendo en cuenta que la rejilla en sí no sería una unidad "visible" sino ficticia, en realidad no haría falta decir que la rejilla debe quedar centrada con respecto al borde, ya que esto sería imperceptible.
Cita:
A mi juicio, en caso de que el comportamiento de una tabla bajo esas condiciones hubiera de ser idéntico al de cualquier otro objeto, sobraría la precisión del centrado de la que estamos hablando.
Pero es que esa precisión que establece la W3C es necesaria siempre, porque en una tabla de bordes fusionados puede existir un conflicto de unidades de medida entre 2 entidades (tabla-celda o celda-celda). De ahí que la rejilla se establezca como "meridiano" del borde. ¿Qué sucede si una celda tiene 5px de borde y la otra 1px? Pues ese texto trata de aclarar eso, exclusivamente. ¿En qué parte se indica que la mitad de ese borde haya de ser despreciada para operaciones de alineado? En ninguna, al menos que yo vea. No son conceptos contradictorios.


Cita:
Pero además, aprovechando la diferencia de interpretación de los bordes entre navegadores, creo que estamos obviando algo fundamental: ¿Qué ocurriría si tenemos una contenedora de 500px de ancho y dentro introducimos una tabla como la que tratamos, con 500px de ancho también y un borde de 10px en sus celdas? Pues que en el caso del dibujado de otros navegadores no cumplen con la norma de la especificiación, porque el contenido de la tabla en realidad mediría 480px, y 490px la rejilla, luego el centrado del borde con respecto a la rejilla carece de sentido ya que ésta se ha visto reducida, mientras que en firefox el contenido de la tabla mediría 490px (500 menos las dos mitades de los bordes), y la rejilla mediría 500px.
Cita:
No podríamos pues estar de acuerdo con el modelo de caja que indica que el tamaño final de una caja será el de su ancho más sus bordes (modelo standard), y sin embargo estar de acuerdo también con que en el caso específico de esa tabla el modelo responda a la interpretación del modelo de caja de Internet Explorer, es decir, que el ancho total de la caja sea el declarado incuyendo sus bordes.
Pues por extraño que parezca ése es el estándar en HTML y XHTML: Mientras que el resto de elementos tienen una anchura que excluye su borde, en el caso de la tabla su anchura incluye cualquier borde, ya sea de celda o de la tabla propiamente. Así que la rejilla en un caso como éste debería de medir 490 px.