2012-07-10 24 views
30

¿Cómo puedo hacer la tabla con 2 columnas (células) se parece a esto:¿Cómo hacer que la celda de la tabla se encoja según el contenido?

  • primera célula es reducir el tamaño de acuerdo con el contenido
  • la otra celda se ajusta al resto de la mesa (más ancho que ambos contenidos en conjunto)

Ejemplo:

<table style="width: 500px;"> 
    <tr> 
     <td>foo</td> 
     <td>bar</td> 
    </tr> 
</table> 

necesito la mesa para tener este aspecto:

.___________________________________________________________________________. 
| foo | bar   <a lot of space here>        | 
|_____|_____________________________________________________________________| 
          500 px total width 

Aviso: No conozco el ancho de "foo", así que no puedo configurar "50px", "10%" o algo así.

+0

establece un ancho como 10px ... p. Ej. ' foo' –

+0

Bueno, está justo al final de mi publicación. No sé el ancho de la celda, así que no puedo configurarlo manualmente. Necesito que el navegador se reduzca debido al contenido ("foo" en mi ejemplo, pero puede ser "foooooooooo", que es demasiado largo para 10 px). –

+2

incluso si establece un ancho de 10px, la celda crecerá según el contenido. Ver violín aquí: http://jsfiddle.net/7X4XT/2/ –

Respuesta

34

Puede configurar el width de la segunda célula a 100%

HTML:

<table> 
    <tr> 
     <td>foo</td> 
     <td class="grow">bar</td> 
    </tr> 
</table>​ 

CSS:

table { width: 500px; } 
.grow { width: 100%; }​ 

Comprobar this fiddle a cabo.

+15

Esto solo funciona si 'table-layout' está establecido en' auto' en la tabla. Este es el valor predeterminado, pero es común establecer 'table-layout' en' fixed', lo que provocará que el valor del 100% se tome literalmente (la celda abarcará toda la tabla y todas las celdas se superpondrán). – Zenexer

2

Si el tamaño total de la tabla es de 500 píxeles y no pasará, ponga td{max-width: 500px;}; Si el valor mínimo es 500 píxeles, td {min-width: 500px;}; Mira esto exemple.

4

conjunto

td{ 
max-width:100%; 
white-space:nowrap; 
} 

se va a resolver problema ur ..

12

Sé que esto se le pidió hace años. El OP probablemente ya lo haya resuelto. Pero esto podría ser útil para alguien. Así que estoy publicando lo que funcionó para mí. Esto es lo que hice con el mío. Establecí el ancho a cualquier valor cercano a cero, para reducirlo, luego configuré el espacio en blanco para que se acabase. Resuelto

td { 
width:0.1%; 
white-space: nowrap; 
} 
+0

Gracias. (+ 8 caracteres) – Andrew

+2

¡Gracias! Curiosamente, un ancho de '0 'no tiene ningún efecto, pero su' 0.1% 'parece ser un truco agradable para lograr esto. –

+0

personalmente, fui con ancho: 1px. gran idea Nat! – SnailCoil

Cuestiones relacionadas