Si se trata de una tabla de ancho fijo, es trivial diseñar con divs y flotadores. Simplemente ajuste cada ancho exactamente a lo que desea.
Para una disposición de tabla líquida y el diseño de líquido es en general muy recomendable, es mucho más difícil organizar una forma sin visualización de tabla, ya que float
y position
no permiten cálculos como "esta celda es la mitad del ancho restante del elemento principal, después de que se hayan asignado las etiquetas de ancho fijo ".
Por lo tanto, en casos como este, que sin duda incluye el tipo de formulario de dos columnas publicado, los valores de table-*
CSS display
son su única posibilidad. Si solo apunta a IE8 y a otros navegadores modernos, puede usar divs y establecer display: table-row
y otros en la hoja de estilo.Sin embargo, para compatibilidad con IE6-7 y otros navegadores antiguos/móviles/de nicho, tendrá que usar elementos reales <table>
/<tr>
/<td>
, ya que solo los navegadores modernos admiten tabla-CSS independientemente de los elementos de tabla.
No hay de qué avergonzarse. Un formulario es algo así como semipábulo y no existe una desventaja de accesibilidad práctica porque el contenido de la página sigue estando ordenado de forma adecuada.
Nota: para los formularios de diseño líquido, también tiene el problema de dimensionar los campos de entrada para que coincidan con el elemento principal. input { width: 100%; }
casi lo hace, pero no del todo, porque el width
no incluye el borde o relleno que las entradas obtienen de manera predeterminada. Puede usar CSS3 box-sizing
y las versiones específicas del navegador para evitar eso para los navegadores modernos, pero si quiere que se alinee exactamente con el píxel en IE6-7 también debería usar relleno en los elementos padres iguales a el borde/relleno en el campo de entrada del niño.
se olvidó de mencionar - lo necesito para trabajar en IE6-7, TH en agrega algo de complejidad también con el min-width trucado y otros errores de IE. –