2009-11-27 16 views
22

estoy teniendo este marcado:CSS: Fix altura de la fila

<style> 
    table 
    { 
     border:1px solid black; 
     width:400px; 
     height:300px; 
     border-collapse:collapse; 
    } 
    table tbody 
    { 
     border:1px solid red; 
    } 
    table td 
    { 
     background:yellow; 
     padding:10px; 
     border-bottom:1px solid green; 
     height:20px; 
    } 
</style> 


<table> 
<tbody> 
    <tr><td>test</td></tr> 
    <tr><td>test</td></tr> 
</tbody> 
</table> 

Lo que necesito es que las filas no se estirarán de altura. ¿Hay alguna forma de tener una altura de fila fija?

+0

¿Qué desea hacer con el contenido que es más alto que la altura de la fila fija? –

+1

Use min-height, y espero que los usuarios no tengan IE6. – tahdhaze09

+1

@tad: min-height hace exactamente lo contrario de lo que pidió. También tenga en cuenta que max-height no funciona correctamente bajo ciertas circunstancias en IE8 menos que esté utilizando el modo de compatibilidad: http://edskes.net/ie8overflowandexpandingboxbugs.htm – diadem

Respuesta

25

HTML alturas fila de la tabla normalmente se cambian proporcionalmente a la altura de la mesa, si la altura de la mesa es mayor que la altura de sus filas. Dado que la tabla está forzando la altura de sus filas, puede eliminar la altura de la tabla para resolver el problema. Si esto no es aceptable, también puede dar a las filas una altura explícita y agregar una tercera fila que auto tamaño a la altura restante de la tabla.

Otra opción en CSS2 es la propiedad max-height, aunque puede conducir a un comportamiento extraño en una tabla. http://www.w3schools.com/cssref/pr_dim_max-height.asp

.

+1

mejor. responder. establecer con dificultad la altura de la mesa estaba causando todos mis problemas, eliminándolo de forma impresionante. –

+2

+1 para "también se puede dar a las filas una altura explícita y agregar una tercera fila que se ajustará automáticamente a la altura restante de la tabla". –

4

No lo he intentado pero si coloca un div en su conjunto de celdas de la tabla para que tenga barras de desplazamiento si es necesario, puede insertarlo allí, con una altura fija en el div y debe mantener su tabla remar a una altura fija.

6

También puede probar esto, si esto es lo que necesita:

<style type="text/css"> 
    .... 
    table td div {height:20px;overflow-y:hidden;} 
    table td.col1 div {width:100px;} 
    table td.col2 div {width:300px;} 
</style> 


<table> 
<tbody> 
    <tr><td class="col1"><div>test</div></td></tr> 
    <tr><td class="col2"><div>test</div></td></tr> 
</tbody> 
</table> 
23

sólo tiene que añadir style="line-height:0" a cada célula. Esto funciona en IE porque establece el alto de la línea de texto existente y no existente a aproximadamente 19px y eso obliga a las celdas a expandirse verticalmente en la mayoría de las versiones de IE. Independientemente de si tiene o no texto, debe hacerlo para que IE muestre correctamente filas de menos de 20 píxeles de alto.

+0

Esto se resolvió mi problema en Chrome 30 también, yo estaba tratando de hacer una ocupan el tamaño completo de la celda de tabla que estaba en sin huecos –

+1

line-height 0 parece que el texto correr juntos si se trata de envolver: http://jsfiddle.net/6wXd8/ – Kasapo

Cuestiones relacionadas