2011-08-16 17 views
18

¿Por qué Safari y Chrome ignoran la propiedad de CSS de ancho mínimo? Ejemplo http://jsfiddle.net/8YFHu/2/ Esto funciona en IE y Firefox pero no en Safari y Chrome.Safari y Chrome ignoran la propiedad de CSS de ancho mínimo

+7

Establezca el 'min-width' en el' td' en lugar de 'tabla' y debería funcionar bien. Consulte el artículo de MDN para obtener más información sobre el soporte para 'table': https://developer.mozilla.org/en/CSS/min-width#Browser_compatibility –

+0

Nota: Dice que el ancho mínimo no se aplica a IE. Parece que no funciona en IE7 pero 8 y 9 lo admiten. –

Respuesta

19

Chrome y Safari simplemente no admiten la propiedad min-width en elementos table. Sin embargo, respetarán min-width cuando se apliquen a las celdas de la tabla.

Después de algunas pruebas rápida, parece que el apoyo es el siguiente:

  • Firefox: Apoyado (probado en 5, no estoy seguro ya que la versión)
  • Internet Explorer: Compatible (desde . IE8 IE7 y abajo no parecen apoyarla)
  • Chrome: no compatible (todas las versiones por lo que yo puedo decir)
  • Safari: no se admite (todas las versiones por lo que yo puedo decir)
  • Opera: Apoyado (probado en 11.5, no estoy seguro ya que la versión)

Más información se puede encontrar en el MDN article en la propiedad, aunque el artículo afirma que la propiedad no es compatible con IE, a pesar de que es desde IE8.

El CSS2.1 specification establece que min-width (y max-width para el caso) se aplican a:

todos los elementos excepto los elementos de línea no reemplazados, filas de la tabla, y la fila grupos

por lo que sería parece que Chrome y Safari son los que no se ajustan al estándar.

Editar

Habiendo parecía un poco más abajo en la sección correspondiente de la especificación, he notado que a continuación establece:

En CSS 2.1, el efecto de 'min-width' y 'max-width' en tablas, tablas en línea, celdas de tabla, columnas de tabla y grupos de columnas es undefined.

Así que en realidad parece que nadie se equivocó, y todos pueden hacer lo que quieran.

+2

Actualización: parece que Chrome ahora * no * admite esto.No estoy seguro desde cuando este es el caso, pero acabo de probarlo en Chrome 19. –

+0

Me di cuenta de que Chrome parece ser compatible cuando se establece el mínimo ancho en algunos píxeles, pero no al configurarlo en un valor porcentual Firefox lo hace en ambos casos. –

6

En mi experiencia, a menudo no es práctico definir anchuras en elementos td. La mejor solución que he encontrado para esta limitación es establecer un min-ancho en un elemento div que contiene para la tabla.

+0

Estoy de acuerdo con Roland Barker: la mejor manera de garantizar el ancho mínimo para una tabla es establecer el ancho mínimo en el div que contiene la tabla y establecer el ancho de la tabla al 100%. –

Cuestiones relacionadas