HTML tablosu satırını <tr>, yer kaplamaması için nasıl gizleyebilirim?


105

Yer kaplamaması için bir HTML tablosu satırını nasıl gizleyebilirim <tr>? Birkaç var <tr>etmek 'ın setini style="display:none;", ama yine de tablonun büyüklüğü ve tablonun sınır gizli satırlar yansıtmaktadır etkiler.


2
Tekrar tekrar gösteriliyor / saklanıyorlar mı? Ya da saklandıklarında, etkili bir şekilde ortadan kalkıyorlar mı? Çünkü sadece satırı kaldırmak için javascript kullanabilirsiniz ve bu muhtemelen sorununuzu çözecektir.
brettkelly

Bunları gizli olarak başlatmak ve ardından kullanıcı "daha fazlasını göstermek" için bir düğmeyi tıkladığında göstermek istiyorum. Gizlendiklerinde dikey yer kaplamalarını istemiyorum.
MikeN

Aynı sorunu yaşadım, javascript ile satırı kaldırırsanız (), IE6'da hala biraz yer kaplar. berbat IE
mkoryak

1
Hangi belge türünü kullanıyorsunuz? SO'da iyi bir temsilciye sahip olmanın basit gerçeğinin, muhtemelen tuhaflık modundan kaçınmak için yeterince bilgi sahibi olduğunuzu gösterdiğini kabul ediyorum ... ancak tek aptalca soru, sorulmayan sorudur. ... ve muhabbet kuşları ile ilgili olan, belli ki.
David, Monica'nın

1
Az önce FF 3.5 ve IE8'de test ettim - her ikisi de satırı ekranla gizleyin: yok
17 of 26

Yanıtlar:


37

TABLE'nizin stilini gerçekten görmek isterim. Ör. "Kenarlık daraltma"

Sadece bir tahmin, ancak 'gizli' satırların nasıl işlendiğini etkileyebilir.


2
Teşekkürler! Eksik tarz buydu.
MikeN

100

Biraz kod ekleyebilir misin? style="display:none;"Tablo satırlarıma her zaman eklerim ve tüm satırı etkili bir şekilde gizler.


benim için çalıştı. Görünürlüğü ayarlamaya çalışıyordum: daha önce gizli :(
Toadums

Hala boşluk var: /
fatuhoku

satırları gizle gösterdiğinizde bunun tablonun genişliğini değiştirmesini nasıl önleyebilirim, masa düzenini
düzeltmek

57

<tr id="result_tr" style="display: none;">JavaScript ile ayarlayabilir ve sonra tekrar gösterebilirsiniz:

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

5
Güzel! aradığım
buydu

4
Teşekkür ederim!! Saklanmak kolaydı ama onları geri getirmek sorunluydu.
Jefferey Mağarası

bu, tablonun genişliğini değiştirir, satırların arama
kutusunun

13

Buna potansiyel başka bir çözüm ekleyeceğimi düşündüm:

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

Bunu yalnızca Chrome'da test ettim, ancak bunu <tr>PLUS satırına koymak , satırın içindeki tüm hücreler hala sütunların genişliğine katkıda bulunuyor. Bazen bir tablonun altında, belirli sütunların belirli bir genişlikten daha az olmamasını sağlayan birkaç boşluk bırakıcıyla fazladan bir satır oluşturacağım ve sonra bu yöntemi kullanarak satırı gizleyeceğim. (Bunu diğer css ile yapabilmen gerektiğini biliyorum ama bunu asla işe yaramamıştım)

Yine, tamamen krom bir ortamdayım, bu yüzden bunun diğer tarayıcılarda nasıl çalıştığını bilmiyorum.


1
Bu, çoğu modern tarayıcıda çalışır, Safari dışında, satırı gizlemek yerine beyaz boşluklar oluşturur: developer.mozilla.org/en-US/docs/Web/CSS/visibility
Oscar Scholten

8

Eğer display: none;, nasıl ayarlama hakkında çalışmaz height: 0;yerine? Öğeyi daha da kaldırmak için negatif bir kenar boşluğuyla (varsa, üst ve alt kenarlıkların yüksekliğine eşit veya daha büyük) birlikte mi? Bunun işe position: absolute; top: 0; left: -4000px;yarayacağını sanmıyorum , ama denemeye değer olabilir.

Benim açımdan, display: noneişler iyi.


4

Aşağıdaki satır yüksekliğinden bazılarını ekleyin: 0px; font-size: 0px; height: 0px; margin: 0; padding: 0;

Hangisinin yaptığını unutuyorum. Sanırım IE6 için satır yüksekliği.


4

Aynı sorunu yaşıyordum, hatta her hücreye style = "display: none" bile ekledim.

Sonunda HTML yorumları kullandım <!-- [HTML] -->


4

Stil gösterimini kullanabilirsiniz: hiçbiri, gizlemek için tr ile birlikte ve tüm tarayıcılarda çalışır.


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

benim için mükemmel çalışıyor ..


2

Bu bana oldu ve neden olduğu konusunda şaşkındım. Sonra fark ettim ki herhangi bir nbsp'yi kaldırırsam; Satırların içindeydim, sonra satırlar hiç yer kaplamadı.


-1

Değişikliği giriş türünü gizli olarak ayarlamanız gerekir, tüm işlevleri çalışır ancak sayfada görünmez

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

giriş türü ayarlandığı sürece geri kalanını değiştirebilirsiniz. İyi şanslar!!


-3

Ben de aynı sorunu yaşıyordum ve sorunu çözdüm. Daha önce css taşıyordu: gizli; z-endeksi: 999999;

Ben onu overflow olarak değiştiriyorum: visible;


-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;
}

-5

position: absolute bunu düzen akışından kaldıracak ve sorununuzu çözecektir - öğe DOM'da kalacak ancak diğerlerini etkilemeyecektir.


fwiw Bazı özel durumlarda bir sütunu gizlemek istiyorsanız bunun harika bir çözüm olduğunu düşünüyorum. ek olarak şunu ekleyinopacity: 0
Grapho

-5

Ayarlayabilirsiniz

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

5
İle visibility: hidden;arasındaki fark bu hala boşluk alacak eleman, visibilityve displayözellikleri
Dmitry Pashkevich

Bunun gibi kullanın<table><tr style="display: none;"><td></td></tr></table>
Sanu
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.