barra de desplazamiento para una celda de tabla

2 minutos de lectura

avatar de usuario
Prasana

¿Hay alguna manera de agregar una barra de desplazamiento a una etiqueta ‘td’? Tengo un contenido dinámico dentro de una etiqueta ‘td’. Quiero que ‘td’ tenga un tamaño fijo y si el contenido se vuelve más grande que el tamaño ‘td’, quiero que aparezca una barra de desplazamiento solo en esa celda en particular. ¿Hay una manera de lograr esto?

avatar de usuario
Denys Séguret

Si tu puedes hacerlo.

La forma más fácil es poner dentro de su celda un div llenándolo y establecer su overflow propiedad de estilo.

CSS:

div.scrollable {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: auto;
}

html:

<td><div class=scrollable>
    Some content with a scrollbar if it's too big for the cell
</div></td>

Si desea que la barra de desplazamiento esté siempre visible, incluso cuando el contenido no esté recortado, reemplace auto con scroll en el CSS.

Demostración

  • ¿Es posible agregar una barra de desplazamiento a todas las celdas td en una fila de la tabla, excepto la primera y la última celda en la misma fila?

    – usuario3281466

    2 de septiembre de 2014 a las 11:07

  • yo también necesitaba table-layout: fixed; para que funcione.

    – Stefan Dragnev

    6 de septiembre de 2017 a las 9:14

<table  width ="400" >
    <tr>
        <td >
            <div style="width:100%; max-height:300px; overflow:auto">Your content here 
             </div>
        </td>
    </tr>
</table>

http://jsfiddle.net/7T2S4/1/

Espero que esto ayude

  • tu código también falla: jsfiddle.net/7T2S4/78 porque ha hecho un ejemplo muy, muy específico que funciona, no significa que sea una buena solución.

    – vsync

    23 de marzo de 2014 a las 15:39

  • vsync, fui a esa página con la nueva versión de FF en 2016 y parece funcionar bien. Tal vez tuviste problemas con el navegador “antiguo”. Un punto importante, un requisito mínimo, es que el div aparentemente necesita tener el atributo “alto” establecido de alguna manera además del “desbordamiento: automático”.

    – Jose_X

    22 de agosto de 2016 a las 23:45

  • Funciona muchas gracias. Tuve problemas para encontrar una solución válida.

    – Flyout91

    29 de junio de 2017 a las 9:03

  • Encontré muchas soluciones pero solo esta funciona… muchas gracias Parag

    –Manthan Patel

    27 de noviembre de 2017 a las 6:15

Debe proporcionar “alto” o “ancho” del elemento div, para que se desplace en consecuencia. por ejemplo, desea aplicar Desplazamiento vertical (eje Y): –

<td><div class="scrollable">
    Some content with a scrollbar if it's not fit in your customized container
</div></td>

div.scrollable
{
width:100%;
height: 100px;
margin: 0;
padding: 0;
overflow-y: scroll
}

¿Ha sido útil esta solución?