Ich habe eine Tabelle in ASPX erstellt. Ich möchte eine der Spalten basierend auf der Anforderung ausblenden, aber es gibt kein Attribut wie visible
im HTML-Tabellenaufbau. Wie kann ich mein Problem lösen?
Wie verstecke ich Spalten in einer HTML-Tabelle?
Benutzer601367
Zu diesem Zweck müssen Sie Stylesheet verwenden.
<td style="display:none;">
-
Was ist mit nur der ersten Spalte mit CSS von HTML?
– Büro 302
8. September 15 um 19:18 Uhr
-
Wie soll ich ihm Stil hinzufügen, wenn ich eine Tabelle mit Javascript createelement (td) mache?
– Büro 302
8. September 15 um 19:20 Uhr
-
@office302 Diesen Stil nur auf das erste TD anwenden? Oder Sie möchten nur CSS verwenden – Dies können Sie so tun
td:first-child { display:none; }
– Anuraj
9. September 15 um 6:08 Uhr
-
@Anuraj es sollte beachtet werden, dass :first-child usw. unterstützt werden > IE 11 und Edge, sowieso gut
– Vitalij T.
26. Juli 17 um 9:41 Uhr
Kos
Du kannst den … benutzen nth-child
CSS-Selektor zum Ausblenden einer ganzen Spalte:
#myTable tr > *:nth-child(2) {
display: none;
}
Dies funktioniert unter der Annahme, dass eine Zelle der Spalte N (sei es a th
oder td
) ist immer das N-te untergeordnete Element seiner Zeile.
Wenn Sie möchten, dass die Spaltennummer dynamisch ist, können Sie dies mit tun querySelectorAll
oder ein Framework mit ähnlicher Funktionalität, wie z jQuery
Hier:
$('#myTable tr > *:nth-child(2)').hide();
(Die jQuery-Lösung funktioniert auch auf Legacy-Browser, die das nicht unterstützen nth-child
).
-
Dies kann schädliche Nebenwirkungen haben, siehe meine Antwort unten für eine verbesserte Lösung.
– Rick Smith
7. April 15 um 20:12 Uhr
-
@RickSmith Guter Punkt. Mein Beitrag wurde aktualisiert, um das Problem auf andere Weise zu vermeiden (mithilfe des untergeordneten Selektors).
– Kos
7. April 15 um 20:38 Uhr
-
Kinderauswahl ist definitiv besser. Gute Antwort.
– Rick Smith
7. April 15 um 20:42 Uhr
-
Schöne Lösung, aber beim Colspan-Fall muss etwas mehr berücksichtigt werden.
– Cinoss
26. März 16 um 09:27 Uhr
Sie können auch verwenden:
<td style="visibility:hidden;">
or
<td style="visibility:collapse;">
Der Unterschied zwischen ihnen, dass “hidden” die Zelle verbirgt, aber den Raum enthält, aber mit “collapse” wird der Raum nicht wie display:none gehalten. Dies ist wichtig, wenn eine ganze Spalte oder Zeile ausgeblendet wird.
-
Ich habe festgestellt, dass für div-Tags auch das Kollabieren den Platz enthält. Für die div-Tags müssten Sie display: none verwenden; um wirklich zusammenzubrechen und den Raum nicht zu halten.
– Dov Miller
3. April 16 um 11:30 Uhr
-
visibility: collapse
wurde speziell für das Ein-/Ausblenden von Zellen entwickelt, da es einen Unterschied bei der Neuberechnung der Zellenbreite/-höhe zwischen diesem und gibtdisplay:none
. Sehen developer.mozilla.org/en-US/docs/Web/CSS/visibility#Values– SteveB
23. September 16 um 7:18 Uhr
Rick Smith
Die Antwort von Kos ist fast richtig, kann aber schädliche Nebenwirkungen haben. Das ist richtiger:
#myTable tr td:nth-child(1), #myTable th:nth-child(1) {
display: none;
}
CSS (Cascading Style Sheets) wird Kaskade Attribute für alle seine Kinder. Das bedeutet, dass *:nth-child(1)
wird die erste verstecken td
von jedem tr
UND verstecke das erste Element von allen td
Kinder. Wenn einer von Ihnen td
Dinge wie Schaltflächen, Symbole, Eingaben oder Auswahlen haben, wird die erste ausgeblendet (woops!).
Auch wenn du es nicht tust zur Zeit Dinge haben, die versteckt werden, stellen Sie sich Ihre Frustration vor, wenn Sie eine hinzufügen müssen. Bestrafen Sie Ihr zukünftiges Ich nicht so, das wird mühsam zu debuggen sein!
Meine Antwort wird nur die erste verbergen td
und th
auf alle tr
in #myTable
Halten Sie Ihre anderen Elemente sicher.
derapache64
Bootstrap-Leute verwenden .hidden
Klasse an <td>
.
Sie können eine Spalte auch mit dem Element col ausblenden https://developer.mozilla.org/en/docs/Web/HTML/Element/col
So blenden Sie die zweite Spalte in einer Tabelle aus:
<table>
<col />
<col style="visibility:collapse"/>
<tr><td>visible</td><td>hidden</td></tr>
<tr><td>visible</td><td>hidden</td></tr>
Bekannte Probleme: Dies funktioniert nicht in Google Chrome. Bitte stimmen Sie für den Fehler unter https://bugs.chromium.org/p/chromium/issues/detail?id=174167
souvik sett
<style>
.hideFullColumn tr > .hidecol
{
display:none;
}
</style>
Verwenden Sie .hideFullColumn in der Tabelle und .hidecol in th. Sie müssen die Klasse in td nicht einzeln hinzufügen, da dies ein Problem darstellt, da der Index möglicherweise nicht an jede td denkt.
.