Tómese como una continuación de Sobre las implementaciones de COL y COLGROUP @ 5.1.1..
2006-03-04T: Agregado Netscape 6.2
Curiosamente para dibujar bordes en una tabla, HTML 4 introdujo dos atributos para el elemento TABLE: rules y frame.
Digo curiosamente
porque se trata de dos atributos relacionados con la presentación del documento, y que aparecen cuando la especificación insiste en recomendar el uso de CSS.
Eso no quita que son útiles cuando sabemos que parte de la audiencia serán navegadores que no podrán interpretar la hoja de estilos.
Pueden leer la explicación y lista de valores posible sobre estos atributos en Borders and rules, pero básicamente se resume a:
rules- Maneja los bordes que se dibujan dentro de la tabla alrededor de los diferentes grupos (filas, columnas y grupos de cada una). Prueba de todos los atributos de
rules. frame- Maneja los bordes exteriores (o sea, alrededor de) la tabla. Prueba de todos los atributos de
frame.
Los navegadores testeados fueron:
- Motores gráficos modernos
- Firefox 1.5 (y 1.0.6)
- Konqueror 3.2 y Safari 2
- Internet Explorer 6
- Opera 7, 8 y 9 Preview 2
- Motores gráficos antiguos (y humildes)
- Netscape 4.8
- Netscape 6.2.1
- Internet Explorer 4, 5 y 5.5 (para Windows)
- Opera 5 y 6, y Act 10
- Off by one
- Dillo 0.8.5 (para Linux)
- Navegadores en modo texto
- Links 2.1 pre3 (para Linux)
Firefox 1.5 (y 1.0.6)
Ninguna observación en particular.
Konqueror 3.2 y Safari 2.0.3
Aparentemente no implementaron ninguno de estos atributos. Y no, no parece estar relacionado con el bug de CAPTION.
Las pruebas en Safari fueron hechas gracias a Safaritest, por lo que presumo que se trata de la versión 2.
Internet Explorer 6
La implementación de frame tiene varios detalles.
frame = aboveDibuja bordes sobre cada celda. Para colmo se nota que el que debería ser el borde superior de la tabla es en realidad los bordes superiores de la celda; esto es porque el borde aparece con espacios en blanco cortándolo.

frame = below- También dibuja los bordes inferiores de cada celda, pero al menos el borde inferior de la tabla está bien dibujado.
frame = hsides- Es una conjunción de los dos anteriores: borde superior e inferior para cada celda, borde superior de la tabla mal dibujado, borde inferior de la tabla bien dibujado.
frame = lhs- Bordes a la izquierda de cada celda y el borde izquierdo de la tabla mal dibujado.
frame = rhs- Bordes a la derecha de cada celda y el borde derecho de la tabla bien dibujado.
frame = vsides- Conjunción de
lhsyrhs. frame = boxyrules = all- Bordes alrededor de cada celda, incluyendo bordes alrededor de la tabla.
Todos los casos anteriores se resuelven agregando td {border:0}. frame arreglado en Internet Explorer.
Con respecto a rules, la implementación es perfecta, salvo porque dibuja bordes alrededor de la tabla cualquiera sea el valor de rules. En este caso, agregar table {border:0} resuelve el problema. rules arreglado en Internet Explorer. Hasta ahí.
Opera 7, 8 y 9 Preview 2
La implementación de ambos atributos sería perfecta si no fuera por un pequeño bug. Si agregamos table {border:0} cuando el atributo rules está definido, Opera agrega los bordes superior e izquierdo a la tabla.
- Si
rules = rows, se dibuja el borde superior de la tabla.table[rules=rows] {border:0}. - Si
rules = cols, se dibuja el borde izquierdo de la tabla.table[rules=cols] {border:0}. - Si
rulesesgroupsoall, se dibujan los bordes superior e izquierdo de la tabla.table[rules=all], table[rules=groups] {border:0}.
Todos reportados como bug #198844.
Netscape 4.8
Teóricamente, el último en la serie de Netscape 4.x. No implementó ninguno de los atributos.
Netscape 6.2
Sólo implementó frame.
Internet Explorer 4, 5, y 5.5
Igual que Internet Explorer 6.
Opera 5 y 6, y Act 10
No implementaron ninguno de los dos atributos. Sobre Act 10.
Off by one
Mencionado anteriormente. rules y frame aparecen recién en HTML 4. Off by one sólo implementó HTML 3.2. No hay implementación.
Dillo 0.8.5
No implementó ninguno de los dos atributos.
Links 2.1 pre 3
Links, a diferencia de lynx, implementó un soporte para tablas en HTML.
La implementación de rules es perfecta, pero erróneamente también dibuja bordes alrededor de la tabla. Esto, en realidad, está relacionado con un bug: cualquier valor (aún los no reconocidos) para rules, provoca bordes alrededor de la tabla.
La implementación de frame también es correcta salvo por dos bugs:
- Los valores reconocidos para
frameprovocan bordes alrededor de cada celda (que, por suerte, no se extienden fuera de la tabla). - Valores no reconocidos para
frameprovocan bordes alrededor de cada celda y de la tabla.
5 comentarios. Agregá el tuyo →
are
Interesante, no lo conocía.
No me funcionan los links de las demos.
3 de marzo de 2006
are
Bueno, parece que la nota del principio de la sección 11.3 aclara porque existen tales atributos:
Visto así parece sólo un residuo del pasado (que por algún motivo no ha sido desestimado aún).
3 de marzo de 2006
Federico
Enlaces arreglados. Esto pasa cuando escribis la mitad del post en Linux y la otra mitad en Windows.
Y sobre la aclaración en la especificación: que mal que estuve que no la ví. Lo curioso es que estos dos atributos se han mantenido incluso en XHTML Strict. Igualmente, tomando en cuenta que
COLyCOLGROUPfueron una novedad de HTML 4, no es tan raro que trataran de promocionar su uso regalando dos nuevos atributos que podrían mejorar la ¿usabilidad? de la tabla.3 de marzo de 2006
are
Confirmado lo de Safari 2.
Lo he probado con Safari 2.0.3 y no tiene nada implementado.
3 de marzo de 2006
Federico
Agregado lo de Safari. Gracias por la confirmación.
3 de marzo de 2006