2011-08-10 9 views
10

Tengo un proyecto que requiere una tabla que incluya columnas de ancho fijo y de ancho flexible.table-layout: fixed ignora el ancho mínimo de td

Algunas de las columnas deben tener siempre 80 px de ancho, sin importar el ancho del navegador.

El resto de las columnas deben tener un ancho flexible, pero todas deben tener el mismo ancho, con un ancho mínimo de 75px;

Agregando table-layout: fixed; a la mesa puedo obtener las anchuras de ancho flexibles para todos tienen anchos iguales, PERO, entonces la tabla ignora el atributo de min-ancho del td.

Si elimino el diseño de la tabla: fijo, el ancho mínimo funciona pero las columnas de ancho flexible tienen anchuras diferentes (según la longitud del texto que contienen).

El número de columnas varía según los datos extraídos de db.

he puesto un ejemplo de la mesa con mesa de diseño: fijos y min-width en jsFiddle: http://jsfiddle.net/7d2Uj/

Alguna idea de cómo llegar min-width para trabajar en esta situación, o por qué esto está ocurriendo ?

Respuesta

2

Debe utilizar width, no min-width para las columnas de ancho fijo, y debe establecer el ancho de las columnas restantes en un porcentaje basado en el número de columnas. En su caso, tenía 6 columnas, por lo que configuré en 16.66%.

ejemplo de trabajo: http://jsfiddle.net/6vw66/

+0

Hola, gracias por tu respuesta. Estaba usando ancho y ancho mínimo porque impedía que el col se colapsara cuando reduje la ventana del navegador antes de poner el diseño de tabla: fijo. Intenté sacar el ancho mínimo y solo dejar el ancho, pero eso no pareció cambiar nada. Lamentablemente, el número de columnas cambia según los datos de la base de datos, por lo que no puedo calcular el ancho como un% en una CSS estática. Escribiendo esto ahora me doy cuenta de que una opción podría ser construir dinámicamente el CSS a través de PHP basado en col num que no había pensado antes. Tal vez eso es lo que tendré que hacer. – salonMonsters

+1

El resultado final es que creé una regla css generada dinámicamente para establecer un porcentaje de ancho en cada columna de ancho flexible, dependiendo del número total de columnas. No es ideal, pero está funcionando. – salonMonsters

11

Mi solución para este era para exprimir la tabla a donde las columnas casi se solapan, compruebe el ancho de la tabla en ese punto, y establecer el min-anchura del elemento <table> sí a ese valor . Esta técnica también es útil si tiene un diseño fijo con una columna expansible porque, de lo contrario, la columna desplegable desaparecería por completo a medida que la ventana se encoja.

Ej: http://jsfiddle.net/KTCfs/

+0

Excelente, gracias! – RockyMM

Cuestiones relacionadas