Wie kann ich eine HTML-Tabellenzeile <tr> ausblenden, damit sie keinen Platz beansprucht?

105

Wie kann ich eine HTML-Tabellenzeile ausblenden <tr>, damit sie keinen Platz beansprucht? Ich habe mehrere <tr>festgelegt style="display:none;", aber sie wirken sich immer noch auf die Größe der Tabelle aus, und der Tabellenrand spiegelt die ausgeblendeten Zeilen wider.

MikeN
quelle
2
Werden sie wiederholt angezeigt / versteckt? Oder wenn sie versteckt sind, sind sie tatsächlich endgültig verschwunden? Weil Sie Javascript verwenden könnten, um nur die Zeile zu entfernen, und es würde wahrscheinlich Ihr Problem beheben.
brettkelly
Ich möchte sie als versteckt starten und dann anzeigen, wenn der Benutzer auf eine Schaltfläche klickt, um "mehr anzuzeigen". Wenn sie versteckt sind, möchte ich nicht, dass sie vertikalen Raum einnehmen.
MikeN
Ich hatte das gleiche Problem, wenn Sie () die Zeile mit Javascript entfernen, nimmt es immer noch etwas Platz in IE6. kein Weg um saugen IE
mkoryak
1
Welchen Doctype verwenden Sie? Ich akzeptiere, dass die einfache Tatsache, dass Sie mit einem guten Repräsentanten auf SO posten, darauf hinweist, dass Sie wahrscheinlich genug wissen, um den Mackenmodus zu vermeiden ... aber die einzige dumme Frage ist eine, die nicht gestellt wird. ... und natürlich die über die Wellensittiche.
David sagt, Monica
1
Ich habe gerade in FF 3.5 und IE8 getestet - beide verstecken die Zeile mit Anzeige: keine
17 vom 26.

Antworten:

37

Ich würde wirklich gerne das Styling Ihres TISCHS sehen. ZB "Grenzkollaps"

Nur eine Vermutung, aber es könnte sich darauf auswirken, wie "versteckte" Zeilen gerendert werden.

OK W
quelle
2
Vielen Dank! Das war der fehlende Stil.
MikeN
100

Können Sie Code einfügen? Ich füge style="display:none;"meine Tabellenzeilen ständig hinzu und es verbirgt effektiv die gesamte Zeile.

Calvin
quelle
arbeitete für mich. Ich habe versucht, die Sichtbarkeit einzustellen: versteckt vor :(
Toadums
Es gibt noch Abstand: /
Fatuhoku
Wie man verhindert, dass dies die Breite der Tabelle ändert, wenn Sie
ausgeblendete
57

Sie können <tr id="result_tr" style="display: none;">es mit JavaScript festlegen und dann wieder anzeigen:

var result_style = document.getElementById('result_tr').style;
result_style.display = 'table-row';
Jamshid Hashimi
quelle
5
Cool! das ist, wonach ich gesucht habe :)
kmario23
4
Danke!! Das Verstecken war einfach, aber es erwies sich als problematisch, sie zurückzubringen.
Jefferey Cave
Dies ändert die Breite der Tabelle, ich mache einen Filter, in dem Zeilen versteckt angezeigt werden müssen, basierend auf dem, was in der Suchbox ist
PirateApp
13

Ich dachte, ich würde dem eine mögliche andere Lösung hinzufügen:

<tr style='visibility:collapse'><td>stuff</td></tr>

Ich habe es nur auf Chrome getestet, aber wenn ich dies auf die <tr>Verstecke der Zeile stecke, tragen alle Zellen in der Zeile immer noch zur Breite der Spalten bei. Ich werde manchmal eine zusätzliche Zeile am Ende einer Tabelle mit nur einigen Abstandshaltern erstellen, damit bestimmte Spalten nicht kleiner als eine bestimmte Breite sein können, und dann die Zeile mit dieser Methode ausblenden. (Ich weiß, dass du das mit anderen CSS machen sollst, aber ich habe das nie zum Laufen gebracht)

Auch hier bin ich in einer rein verchromten Umgebung, daher habe ich keine Ahnung, wie dies in anderen Browsern funktioniert.

rgbflawed
quelle
1
Dies funktioniert in den meisten modernen Browsern, mit Ausnahme von Safari, bei dem Leerzeichen gerendert werden, anstatt die Zeile zu verbergen: developer.mozilla.org/en-US/docs/Web/CSS/visibility
Oscar Scholten
8

Wenn display: none;dies nicht funktioniert, wie wäre es height: 0;stattdessen mit einer Einstellung ? In Verbindung mit einem negativen Rand (gleich oder größer als die Höhe des oberen und unteren Randes, falls vorhanden), um das Element weiter zu entfernen? Ich kann mir nicht vorstellen, dass position: absolute; top: 0; left: -4000px;das funktionieren würde, aber es könnte einen Versuch wert sein.

Für meinen Teil display: nonefunktioniert die Verwendung gut.

David sagt, Monica wieder einsetzen
quelle
4

Fügen Sie einige der folgenden Zeilenhöhen hinzu: 0px; Schriftgröße: 0px; Höhe: 0px; Rand: 0; Auffüllen: 0;

Ich vergesse, welcher es tut. Ich denke, es ist Zeilenhöhe für IE6.

s_hewitt
quelle
4

Ich hatte das gleiche Problem, ich habe sogar style = "display: none" zu jeder Zelle hinzugefügt.

Am Ende habe ich HTML-Kommentare verwendet <!-- [HTML] -->

Simon Hughes
quelle
4

Sie können die Stilanzeige verwenden: keine mit tr zum Ausblenden und sie funktioniert mit allen Browsern.

Shahid Siddique
quelle
3
var result_style = document.getElementById('result_tr').style;
result_style.display = '';

funktioniert perfekt für mich ..

Vignesh
quelle
2

Das passierte mir und ich war verblüfft, warum. Dann bemerkte ich, dass, wenn ich nbsp entfernte; Ich hatte innerhalb der Reihen, dann nahmen die Reihen keinen Platz ein.

Kevin H.
quelle
-1

Sie müssen die Änderung des Eingabetyps auf "Ausgeblendet" setzen. Alle Funktionen funktionieren, aber sie sind auf der Seite nicht sichtbar

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

Solange der Eingabetyp auf diesen eingestellt ist, können Sie den Rest ändern. Viel Glück!!

user5431987
quelle
-3

Ich hatte das gleiche Problem und habe das Problem behoben. Frühere CSS war überlaufen: versteckt; Z-Index: 999999;

Ich ändere es auf Überlauf: sichtbar;

Ray Innov
quelle
-3

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;
}
alpc
quelle
-5

position: absolute entfernt es aus dem Layoutfluss und sollte Ihr Problem lösen - das Element bleibt im DOM, wirkt sich jedoch nicht auf andere aus.

user2415617
quelle
fwiw Ich denke, dies ist eine großartige Lösung, wenn Sie eine Spalte in bestimmten Situationen ausblenden möchten. zusätzlich hinzufügenopacity: 0
Grapho
-5

Sie können einstellen

<table>
  <tr style="visibility: hidden"></tr>
</table> 
Ramy sagte
quelle
5
Mit visibility: hidden;dem Element wird noch Platz nehmen, das ist der Unterschied zwischen visibilityund displayEigenschaften
Dmitry Pashkevich
Verwenden Sie wie <table><tr style="display: none;"><td></td></tr></table>
Sanu