hacer etiqueta ejemplos div como html css html-table

html - etiqueta - Tabla desbordante fuera de Div



div id html (7)

Intento detener una tabla cuyo ancho ha declarado explícitamente que no se desborda fuera de su div principal. Supongo que puedo hacer esto de alguna manera usando max-width , pero parece que no puedo hacer que esto funcione.

El siguiente código (con una ventana muy pequeña) causará esto:

<style type="text/css"> #middlecol { width: 45%; border-right:2px solid red; } #middlecol table { max-width:100% !important; } </style> <div id="middlecol"> <center> <table width="400" cellpadding="3" cellspacing="0" border="0" align="center"> <tr> <td bgcolor="#DDFFFF" align="center" colspan="2"> <strong>Notification!</strong> </td> <tr> <td width="50"> <img src="http://www.example.com/img.png" width="50" height="50" alt="" border="0"> </td> <td> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </td> </tr> </table> </center> </div>

La línea roja es el borde derecho del div , y si haces que la ventana de tu navegador sea pequeña, verás que la tabla no encaja en ella.


Al principio usé el método de James Lawruk. Sin embargo, esto cambió todos los anchos de los td .

La solución para mí fue usar white-space: normal en las columnas (que se estableció en white-space: nowrap en white-space: nowrap ). De esta manera, el texto siempre se romperá. Usando el word-wrap: break-word asegurará que todo se rompa cuando sea necesario, incluso a la mitad de una palabra.

El CSS se verá así luego:

td, th { white-space: normal; /* Only needed when it''s set differntly somewhere else */ word-wrap: break-word; }

Puede que esta no sea siempre la solución deseable, ya que la word-wrap: break-word sueltas puede hacer que sus palabras en la tabla sean ilegibles. Sin embargo mantendrá su mesa con el ancho correcto.


Dale la vuelta haciendo:

<style type="text/css"> #middlecol { border-right: 2px solid red; width: 45%; } #middlecol table { max-width: 400px; width: 100% !important; } </style>

También te aconsejaría que:

  • No use la etiqueta center (está en desuso)
  • No use atributos width , bgcolor , bgcolor por CSS ( width y background-color )

(suponiendo que pueda controlar la tabla que se procesó)


Hay un width="400" en la mesa, quítelo y funcionará ...


Intenté casi todo lo anterior pero no funcionó para mí ... Lo siguiente hizo

word-break: break-all;

Esto para ser agregado en el div principal (contenedor de la tabla).


Intenté todas las soluciones mencionadas anteriormente y luego no funcionó. Tengo 3 tablas una debajo de la otra. El último fluyó. Lo arreglé usando:

/* Grid Definition */ table { word-break: break-word; }

Para IE11 en modo de borde, necesita configurar esto para word-break:break-all


Puede evitar que las tablas se expandan más allá de su div principal mediante el uso de table-layout:fixed .

El siguiente CSS hará que sus tablas se expandan al ancho del div que lo rodea.

table { table-layout:fixed; width:100%; }

Encontré este truco here .


Un trabajo aproximado es establecer display: table en el div que contiene.