Ver Mensaje Individual
  #13 (permalink)  
Antiguo 26/10/2008, 11:49
Avatar de Mikmoro
Mikmoro
Colaborador
 
Fecha de Ingreso: octubre-2006
Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 17 años, 5 meses
Puntos: 280
Respuesta: ¿Funcionamiento incorrecto de border-collapse en Mozilla Firefox?

Bueno, esto tiene difícil resolución, y acabará en una cuestión de opiniones.

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.

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.

¿Qué finalidad parece perseguir pues la declaración de que el borde deba quedar centrado con respecto a la rejilla? Por un lado, que en el caso de celdas adyacentes ambas entregarán al borde la misma porción de su propio espacio, y por otro, a mi entender, que la unidad física de ajuste de la tabla sigue siendo la rejilla, que es para la que se declara un ancho específico, y que ésta se verá rodeada y no desplazada por el efecto del borde.

Así como hay una clara diferencia de la interpretación del borde entre IE y el resto de navegadores, de la misma manera la declaración collapse parece decir algo como: "medio borde por dentro, y medio por fuera". Pero... ¿medio por dentro y medio por fuera de qué?: de la rejilla, que es el límite físico real de la tabla, sin el cuál el "medio dentro-medio fuera" carecería de sentido, porque se convertiría en "todo por fuera"

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 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.

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.

De manera que estoy de acuerdo con firefox, que sigue siempre la misma política en el modelo de caja: el ancho final es igual al ancho declarado más sus bordes, y en el caso de la tabla con border collapse, es igual al ancho declarado más dos medios bordes por ser estos centrados con respecto a la rejilla, que es la que, al igual que las cajas, siempre conserva su tamaño real declarado inicialmente.
__________________
Visita mi nueva web idplus.org