2009-07-17 80 views
83

¿Cómo puedo ocultar una fila de la tabla HTML <tr> para que no ocupe espacio? Tengo varios <tr> establecidos en style="display:none;", pero aún afectan el tamaño de la tabla y el borde de la tabla refleja las filas ocultas.¿Cómo puedo ocultar una fila de la tabla HTML <tr> para que no ocupe espacio?

+2

¿Se muestran/ocultan repetidamente? O cuando están ocultos, ¿se han ido efectivamente para siempre? Porque podría usar javascript para eliminar la fila y probablemente solucionaría su problema. – inkedmn

+0

Quiero iniciarlos como ocultos, y luego mostrarlos si el usuario hace clic en un botón para "mostrar más". Cuando están ocultos, no quiero que ocupen espacio vertical. – MikeN

+0

tuve este mismo problema, si elimina() la fila con javascript, aún ocupa algo de espacio en IE6. no hay forma de evitar sucky IE – mkoryak

Respuesta

32

Realmente me gustaría ver el estilo de su TABLE. P.ej. "border-collapse"

Solo supongo, pero podría afectar la forma en que se representan las filas "ocultas".

+2

¡Gracias! Ese era el estilo que faltaba. – MikeN

77

¿Puede incluir algún código? Agrego style="display:none;" a las filas de mi tabla todo el tiempo y efectivamente oculta toda la fila.

+0

funcionó para mí. Estaba tratando de establecer la visibilidad: oculto antes :( – Toadums

+0

Todavía hay espacio:/ – fatuhoku

3

Agregue algunos de los siguientes line-height: 0px; font-size: 0px; height: 0px; margin: 0; padding: 0;

Olvidé cuál lo hace. Creo que es la altura de línea para IE6.

7

Si display: none; no funciona, ¿qué hay de la configuración height: 0; en su lugar? ¿En conjunción con un margen negativo (igual o mayor que, la altura de los bordes superior e inferior, si corresponde) para eliminar más el elemento? No creo que position: absolute; top: 0; left: -4000px; funcione, pero podría valer la pena intentarlo.

Por mi parte, el uso de display: none funciona bien.

2

Esto me sucedió a mí y estaba desconcertado sobre por qué. Entonces noté que si eliminaba cualquier nbsp; Tenía dentro de las filas, entonces las filas no ocuparon ningún espacio.

4

Estaba teniendo el mismo problema, incluso agregué style = "display: none" a cada celda.

Al final utilicé comentarios HTML <!-- [HTML] -->

41

Puede establecer <tr id="result_tr" style="display: none;"> y luego mostrar de nuevo con JavaScript:

var result_style = document.getElementById('result_tr').style; 
result_style.display = 'table-row'; 
+4

¡Genial! Esto es lo que estaba buscando :) – kmario23

+3

¡Gracias! Esconderse era fácil, pero sacarlos de vuelta era problemático. –

2

Puede usar la indicación de estilo: ninguno con tr para ocultar y lo hará trabajar con todos los navegadores

-4

position: absolute lo eliminará del flujo de disposición y debería resolver su problema: el elemento permanecerá en el DOM pero no afectará a los demás.

+0

fwiw Creo que esta es una gran solución si desea ocultar una columna, en algunas situaciones específicas. Además, agregue 'opacity: 0' – Grapho

-3

Puede establecer

<table> 
    <tr style="visibility: hidden"></tr> 
</table> 
+4

Con' visibility: hidden; 'el elemento aún ocupará espacio, esa es la diferencia entre las propiedades' visibility' y 'display' –

1
var result_style = document.getElementById('result_tr').style; 
result_style.display = ''; 

está trabajando perfectamente para mí ..

-1

HTML:

<input type="checkbox" id="attraction" checked="checked" onchange="updateMap()">poi.attraction</input> 

JavaScript:

function updateMap() { 
    map.setOptions({'styles': getStyles() }); 
} 

function getStyles() { 
    var styles = []; 
    for (var i=0; i < types.length; i++) { 
     var style = {}; 
     var type = types[i]; 
     var enabled = document.getElementById(type).checked; 
     style['featureType'] = 'poi.' + type; 
     style['elementType'] = 'labels'; 
     style['stylers'] = [{'visibility' : (enabled ? 'on' : 'off') }]; 
     styles.push(style); 
    } 
    return styles; 
} 
0

Es necesario poner el cambio del tipo de entrada a escondidas, todas las funciones de su trabajo, pero no es visible en la página

<input type="hidden" name="" id="" value=""> 

siempre y cuando el tipo de entrada se establece en que puede cambiar el resto . ¡Buena suerte!

-2

Estaba teniendo el mismo problema y resolví el problema. El css anterior estaba desbordado: oculto; índice z: 999999;

Lo cambio a desbordamiento: visible;

Cuestiones relacionadas