Actualmente, la tabla es demasiado ancha y hace que el navegador agregue una barra de desplazamiento horizontal.¿Cómo puedo hacer que una tabla CSS se ajuste al ancho de la pantalla?
Respuesta
Si el contenido de la tabla es demasiado ancho (como en this example), no hay nada que pueda hacer otra cosa que alterar el contenido para que sea posible que el navegador para mostrarla en un formato más estrecho. Contrariamente a las respuestas anteriores, establecer el ancho al 100% no tendrá ningún efecto si el contenido es demasiado ancho (como demuestran ese enlace, y this one). Los navegadores ya intentan mantener las tablas dentro de los márgenes izquierdo y derecho si pueden, y solo recurren a una barra de desplazamiento horizontal si no pueden.
Algunas maneras en que puede alterar el contenido para hacer una tabla más estrecha:
- reducir el número de columnas (tal vez romper una tabla megalítica en varias tablas independientes).
- Si está usando CSS
white-space: nowrap
en cualquiera de los contenidos (o el antiguonowrap
atributo,
, un elementonobr
, etc.), ver si se puede vivir sin ellos por lo que el navegador tiene la opción de envolver a ese contenido mantener el ancho hacia abajo. - Si está utilizando márgenes realmente amplios, relleno, bordes, etc., intente reducir su tamaño (pero estoy seguro de que pensó en eso).
Si la tabla es demasiado ancha pero no ve una buena razón para ello (el contenido no es tan amplio, etc.), tendrá que proporcionar más información acerca de cómo está diseñando la tabla, los elementos circundantes, etc. Nuevamente, de forma predeterminada, el navegador evitará la barra de desplazamiento si puede.
¿Qué tal:
table {
width: 100%;
}
Tal vez usted tiene algunas imágenes que son demasiado grandes y que hace que la tabla sea más amplia.
Además, compruebe cómo se ve su mesa en otros navegadores.
table { width: 100%; }
No se obtendrá el resultado exacto que está esperando, debido a todos los márgenes y rellenos utilizados en el cuerpo. Entonces SI los scripts están BIEN, entonces usa Jquery.
$("#tableid").width($(window).width());
Si no es así, utilice este fragmento
<style>
body { margin:0;padding:0; }
</style>
<table width="100%" border="1">
<tr>
<td>Just a Test
</td>
</tr>
</table>
Usted se dará cuenta de que la anchura está cubriendo perfectamente la página.
Lo principal es anular demasiado el margin
y padding
como lo he mostrado en el cuerpo, entonces está configurado.
Disculpe T.J. Creo que tienes muchas agallas diciendo jQuery! = JavaScript. ¿Sabes incluso que jQuery es '" una biblioteca de JavaScript "'. Además ... me he aclarado perfectamente diciendo 'SI los guiones están BIEN ' – Starx
@Starx: has leído mal mi comentario. Mi punto no es que jQuery no use JavaScript, es que no es una suposición válida de que cualquier persona que haga desarrollo web automáticamente use jQuery. Mucha gente no, o no usan una biblioteca o usan [Prototype] (http://prototypejs.org), [YUI] (http://developer.yahoo.com/yui/), [ Cierre] (http://code.google.com/closure/library), o [cualquiera de varios otros] (http://en.wikipedia.org/wiki/List_of_JavaScript_libraries). jQuery es una gran biblioteca de JavaScript, sin dudas; simplemente no es útil introducirlo (o crear scripts) en una pregunta sobre HTML/CSS. –
@ T.J. Crowder y? ¿Has encontrado alguna solución con HTML o CSS? Si no, ¡entonces la única forma es usar JavaScript! – nyuszika7h
CSS:
table {
table-layout:fixed;
}
actualización con CSS a partir de los comentarios:
td {
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
}
Para teléfonos móviles les dejo el ancho de la tabla, pero asignar una clase CSS adicional a la tabla para permitir el desplazamiento horizontal (tabla ya no pasará por la pantalla del móvil):
@media only screen and (max-width: 480px) {
/* horizontal scrollbar for tables if mobile screen */
.tablemobile {
overflow-x: auto;
display: block;
}
}
Suficiente sufciente.
Ya hay una buena solución para esta pregunta. Pero todos se olvidaron del tamaño de la fuente. Esta es la última pero no la menor solución. puedes disminuir el tamaño de tu fuente en 2 o 3 px. seguirá siendo visible para el usuario y puede disminuir el ancho de la mesa. esto funcionó para mí. como mi tabla tiene 5 columnas 4 que muestran perfectamente 5º salió de la ventana gráfica. de modo I disminuyó de tamaño de fuente y los 5 columnas se encajan en la pantalla
table th td
{
font-size:14px;
}
FYI, si sus tablas tiene demasiadas columnas pero no se puede disminuir a continuación, hacer que el tamaño de fuente pequeña es mejor que la de desplazamiento horizontal. hay dos ventajas su estilo para la web móvil seguirá siendo el mismo (bueno sin desplazamiento horizontal) y cuando el usuario vea tamaño pequeño, la mayoría de los usuarios acercarán la mesa a su nivel de comodidad.
Establecer font-size
en unidades de visualización de la anchura relacionada, por ejemplo .:
table { font-size: 0.9vw; }
Esto hará que la fuente ilegible cuando la página es demasiado estrecha, pero a veces esto es aceptable.
Poner la tabla en un elemento contenedor que tiene
overflow: scroll; max-width: 95vw;
o ajuste la tabla a la pantalla y desborde: desplaza todas las celdas de la tabla.
- 1. ¿Cómo puedo anular una tabla de propiedades de CSS ancho
- 2. ¿Cómo hacer que el ancho de una columna se ajuste a su contenido en la tabla HTML?
- 3. cómo hacer que el botón se llene al 50% del ancho de la pantalla en Android?
- 4. ancho tbody que no se extiende automáticamente al ancho de la tabla
- 5. ¿Cómo hacer que td (celda) de la tabla html se expanda para que la fila encaje en una línea?
- 6. CSS: cómo hacer que los niños se ajusten al ancho de los padres
- 7. Hacer un ajuste div en la pantalla inicial
- 8. ¿Cómo hacer que la sugerencia de EditText no se ajuste?
- 9. ¿Cómo hacer que un elemento de bloque se ajuste al tamaño de lo que está dentro de él?
- 10. Cómo hacer que la altura de la página web se ajuste a la altura de la pantalla
- 11. ¿Cómo hacer que mi aplicación Windows Form se ajuste a los bordes de la pantalla?
- 12. ¿Cómo hago que el contenido de UIWebView se ajuste al tamaño de la pantalla del iPhone?
- 13. ¿Cómo puedo hacer que mi área de lienzo se ajuste al navegador iphone?
- 14. Hacer una ventana de Qt con ajuste automático al tamaño de la pantalla
- 15. ¿Cómo construir una tabla compleja usando CSS?
- 16. Ajuste automático de CSS no problema de ancho COMPLETO
- 17. ¿Cómo puedo hacer que una tabla sea desplazable
- 18. ¿Cómo limito el ancho de la tabla al elemento contenedor (o pantalla)?
- 19. Cómo hacer que la última celda de una fila en una tabla ocupe el ancho restante
- 20. GridViewColumn ajuste de ancho
- 21. ¿Cómo configuro el ancho de QComboBox para que se ajuste al elemento más grande?
- 22. ¿Cómo hacer que la imagen de fondo se ajuste a toda la página sin repetir usando css simple?
- 23. Crear una página maestra que se ajuste a cualquier resolución de pantalla
- 24. ¿Cómo puedo hacer para que la tabla de estilo tenga el ancho completo del contenedor y hacer que las celdas usen el porcentaje del ancho?
- 25. ¿Cómo hacer que el ancho de CSS llene el elemento primario?
- 26. Truncar texto para que se ajuste a la celda de la tabla sin aplicar css o jquery
- 27. Hacer que los DIV actúen como una tabla usando CSS
- 28. Filas de tabla HTML: ¿cómo hacer que una celda única tenga un ancho del 100%? (Con las explicaciones pantalla)
- 29. ¿Cómo cambio el tamaño de un UIButton para que se ajuste al texto sin que sea más ancho que la pantalla?
- 30. ¿Cómo hacer que FigureCanvas se ajuste a un panel?
@defina el ancho de la tabla y no obtendrá la barra horizontal. – kobe
@all: Bien, ¿me estoy perdiendo algo? El OP dice que la tabla es * "demasiado ancha y hace que el navegador agregue una barra de desplazamiento horizontal." * Y hay tres respuestas "use un ancho del 100%". Si la mesa ya es demasiado ancha, eso no va a hacer ninguna diferencia. No funciona con CSS (http://jsbin.com/emivi4) y no funciona con un atributo 'width' (http://jsbin.com/emivi4/2). –
@T J Crowder; la barra horizontal puede ser debido a un ancho absoluto que es más ancho que el ancho del navegador; al establecerlo en un 100%, se asegurará de que tenga el mismo ancho que el navegador. Bajar la votación de todas las respuestas no va bien con "¿Me estoy perdiendo algo?" – BeemerGuy