HTML tablosundaki sütunlar nasıl gizlenir?


96

ASPX'te bir tablo oluşturdum. İhtiyaca göre sütunlardan birini gizlemek istiyorum ancak visibleHTML tablo oluşturmadaki gibi bir özellik yok . Sorunumu nasıl çözebilirim?

Yanıtlar:


177

Bu amaçla Stil Sayfası kullanmanız gerekir.

<td style="display:none;">

1
html'nin css kullanan sadece ilk sütununa ne dersiniz
ofis 302

javascript createelement (td) kullanarak tablo oluştururken ona nasıl stil eklemeliyim;
ofis 302

1
@ office302 Bu stil yalnızca ilk td'ye uygulansın mı? Veya yalnızca CSS kullanmak istiyorsunuz - Bunu, bunun gibi bir şey yapabilirsiniztd:first-child { display:none; }
Anuraj

@Anuraj not edilmelidir ki: ilk çocuk vb. Destekleniyor> IE 11 ve Edge, yine de iyi
Vitaliy Terziev

88

nth-childTüm bir sütunu gizlemek için CSS seçiciyi kullanabilirsiniz :

#myTable tr > *:nth-child(2) {
    display: none;
}

Bu, N sütununun bir hücresinin (a thveya olsun td) her zaman satırının N. alt öğesi olduğu varsayımına göre çalışır .

İşte bir demo.


Sütun numarasının dinamik olmasını istiyorsanız, bunu kullanarak querySelectorAllveya benzer işlevselliği sunan herhangi bir çerçeve kullanabilirsiniz, örneğin jQuery:

$('#myTable tr > *:nth-child(2)').hide();

JQuery ile demo

(JQuery çözümü, desteklemeyen eski tarayıcılardanth-child da çalışır ).


1
Bunun zararlı yan etkileri olabilir, daha iyi bir çözüm için aşağıdaki cevabıma bakın .
Rick Smith

@RickSmith İyi nokta. Sorunu başka bir şekilde önlemek için gönderimi güncelledi (çocuk seçiciyi kullanarak).
Kos

çocuk seçici kesinlikle daha iyidir. İyi cevap.
Rick Smith

Güzel çözüm, ancak colspan vakası üzerinde biraz daha düşünülmesi gerekiyor.
Cinoss

30

Ayrıca kullanabilirsin:

<td style="visibility:hidden;">
or
<td style="visibility:collapse;">

Aralarındaki fark, hücreyi gizleyen, ancak alanı tutan, ancak "daraltma" ile alan, ekran gibi tutulmaz: yok. Bu, tüm bir sütun veya satırı gizlerken önemlidir.


1
Div etiketleri için daraltmanın da alanı tutacağını buldum. Div etiketleri için display: none kullanmanız gerekir; alanı gerçekten çökertmek ve tutmamak için.
Dov Miller

5
visibility: collapseBu ve arasında hücre genişliğini / yüksekliğini yeniden hesaplarken bir fark olduğundan, özellikle hücre gösterme / gizleme işlemlerini gerçekleştirmek için tasarlanmıştır display:none. Developer.mozilla.org/en-US/docs/Web/CSS/visibility#Values
SteveB

29

Kos'un cevabı neredeyse doğrudur, ancak zararlı yan etkileri olabilir. Bu daha doğrudur:

#myTable tr td:nth-child(1), #myTable th:nth-child(1) {
    display: none;
}

CSS (Basamaklı Stil Sayfaları) öznitelikleri tüm alt öğelerine basamaklandırır . Bu , her birinin ilkini gizleyeceği VE tüm çocukların ilk öğesini *:nth-child(1)gizleyeceği anlamına gelir . Herhangi birinizde düğmeler, simgeler, girişler veya seçimler gibi şeyler varsa , ilki gizlenecektir (woops!).tdtr tdtd

Şu anda gizlenecek şeyleriniz olmasa bile , bir tane eklemeniz gerekirse hayal kırıklığınızı yolun aşağısında hayal edin. Gelecekteki halinizi bu şekilde cezalandırmayın, bu hata ayıklamak için bir acı olacak!

Benim cevabım sadece ilk gizler tdve thtüm üzerinde trde #myTablegüvende diğer elemanları tutmak.




2

<style>
.hideFullColumn tr > .hidecol
{
    display:none;
}
</style>

Tabloda .hideFullColumn ve th içinde .hidecol kullanın. td'ye ayrı ayrı sınıf eklemenize gerek yoktur, çünkü bu sorun olacaktır çünkü indeks her td için akılda tutulmayabilir.


1

Ayrıca, stili Javascript ile atayarak ve bu stile sahip olmak için belirli bir dizinde td öğesini ayarlayarak programatik olarak ne vs dev'in önerdiğini yapabilirsiniz.


0
<!doctype html>
<html lang="en">
<head>
<style id="myStyleSheet">
...
</style>

var column = 3;
var styleSheet = document.getElementById("myStyleSheet").sheet;
var rule = "table  tr td:nth-child("+ column +"),table th:nth-child("+ column +") 
{display: none}";
styleSheet.insertRule(rule);

2
Umarım sorunu çözecektir, ancak lütfen kodunuzun açıklamasını ekleyin, böylece kullanıcı gerçekten istediği şeyi mükemmel bir şekilde anlayacaktır.
Jaimil Patel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.