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

Mikmoro: No, hombre no, que no te lo decía en plan negativo, sino por si lo decías en plan "coña". No por otra cosa. A mí también me encantan este tipo de debates.

Yo del documento del que extraigo todo es del de la última versión, CSS v. 2.1: http://www.w3.org/TR/CSS21/cover.html . Está actualizada hasta 2007. En la versión 2, que es en la que se basa ese documento en Castellano que comentas, no aparecen aspectos como ése del desbordamiento, que considero muy importante, ya que esclarece que con un elemento contenedor sí que se interpreta que ese borde ocupa espacio.

De hecho, si pruebas en Firefox a meter una tabla "collapsed" en una capa DIV de menor tamaño con "overflow" a "auto", verás que el desplazamiento que crea no es hasta la mitad del borde derecho e inferior, sino que incluye las otras mitades que en caso del superior e izquierdo este navegador considera "etéreos" o sin volumen. Eso lo dicta así el estándar 2.1 y es correcto, así que, ¿Por qué interpretar las mitades sobrantes sin volumen?

Cita:
Bueno, como he dicho, ¿cómo explicas que al solaparse entre celdas adyacentes la mitad exterior de ambas no ocupe espacio físico? Creo que ese es el quiz de la cuestión.
Es que realmente entre celdas o entre elementos internos de una tabla y ésta no existe solapamiento de bordes (pese a que lo hayamos denominado así en casos en los que las celdas tienen el mismo grosor).

El propio estándar especifica que el borde resultante es calculado y dibujado en base a unas normas de prioridad (por grosor, en principio, y luego según estilos). No hay solapamiento, sino reemplazo o sustitución del borde "perdedor" por el del "ganador".

¿Comprobación? Dibujando una tabla de 2 celdas con grosor de borde de 21px y 5 px respectivamente (en Firefox):




El primer ejemplo indica dónde queda la rejilla. El segundo y el tercero indica donde quedaría la rejilla si "ganase" el borde de esa celda. Si te fijas, si esto fuese un solapamiento de bordes, la celda derecha tendría que meterse más hacia la izquierda y parte de esas "xxx" quedaría solapada por ese borde "volante". Y no ocurre eso, sino que la mitad del borde más grande "gana" y ocupa un espacio que empuja a la celda con el borde que "pierde".

El solapamiento se produce, eso sí, entre la tabla y cualquier elemento adyacente, ya que fuera de sus dominios esta norma de cálculo de bordes no existe.


Cita:
A este respecto, personalmente no usaría una tabla a no ser para mostrar datos tabulados, en cuyo caso dudo que estuviera dentro de una caja o que me produjera problemas con los elementos adyacentes: para mi una tabla tendría el suficiente espacio circundante (por pura estética y simetría), como para no darme problemas que un borde de uno o dos pixels la desbodara.
Hay casos simples en los que se produce este problema: Una tabla de decenas de columnas dentro de una capa con barras de desplazamiento. Se hace así con el fin de poder visualizar todas las columnas sin que afecte a la anchura del documento contenedor. Y ahí mismo los bordes superior e izquierdo quedan "comidos".