Як я можу приховати рядок таблиці HTML <tr>, щоб він не займав місця?


105

Як я можу приховати рядок таблиці HTML, <tr>щоб він не займав місця? У мене є кілька <tr>Сета до style="display:none;", але вони до сих пір впливають на розмір таблиці і межа таблиці відображає приховані рядки.


2
Чи повторно їх показують / приховують? Або коли вони заховані, вони фактично пішли назавжди? Тому що ви можете використовувати javascript, щоб просто видалити рядок, і це, ймовірно, виправить вашу проблему.
brettkelly

Я хочу запустити їх як приховані, а потім показати, якщо користувач натискає кнопку, щоб "показати більше". Коли вони заховані, я не хочу, щоб вони займали вертикальний простір.
MikeN

У мене була ця сама проблема, якщо ви видалите () рядок з javascript, вона все ще займає деякий простір в IE6. ніяк не обходиться соковим IE
mkoryak

1
Який тип ви використовуєте? Я погоджуюсь з тим, що простий факт, який ви публікуєте на SO з хорошим представником, свідчить про те, що ви, мабуть, знаєте достатньо, щоб уникнути химерного режиму ... але єдине дурне питання - це питання, яке не задають. ... і те, що стосується папуг, явно.
Девід каже повернути Моніку

1
Я щойно тестував FF 3.5 та IE8 - обидва приховують рядок із дисплеєм: немає
17 з 26

Відповіді:


37

Я дуже хотів би побачити стилістику вашого TABLE. Наприклад, "крах кордону"

Лише здогадка, але це може вплинути на те, як відображаються «приховані» рядки.


2
Дякую! Це був стиль відсутності.
MikeN

100

Чи можете ви включити якийсь код? Я постійно додаю style="display:none;"до своїх рядків таблиці та це ефективно приховує весь ряд.


працював на мене. Я намагався встановити видимість: приховано раніше :(
Toadums

Ще є інтервал: /
fatuhoku

як не допустити цього змінити ширину таблиці, коли ви показуєте рядки приховування, я не хочу робити макет таблиці виправленим
PirateApp

57

Ви можете встановити <tr id="result_tr" style="display: none;">і потім показати його назад за допомогою JavaScript:

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

5
Класно! це те, що я шукав :)
kmario23

4
Дякую!! Сховати було легко, але повернути їх назад виявилося проблематичним.
Джеффрі Печера

це змінює ширину таблиці, я роблю фільтр, де рядки потрібно показувати прихованими на основі того, що знаходиться всередині вікна пошуку
PirateApp

13

Я думав, що я додам до цього потенційне інше рішення:

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

Я тестував його лише на Chrome, але ставлю це на <tr> хові рядку PLUS, усі комірки в рядку все ще сприяють ширині стовпців. Я інколи буду робити додатковий рядок у нижній частині таблиці з просто деякими прокладками, які роблять так, що певні стовпці не можуть бути меншими за певну ширину, а потім приховати рядок за допомогою цього методу. (Я знаю, ви повинні це зробити з іншими css, але я ніколи не змушував це працювати)

Знову ж таки, я перебуваю в чисто хромованому середовищі, тому я не маю уявлення, як це працює в інших браузерах.


1
Це працює в більшості сучасних браузерів, за винятком Safari, який забезпечує пробіл, а не приховує рядок: developer.mozilla.org/en-US/docs/Web/CSS/visibility
Оскар Шолтен

8

Якщо display: none;це не працює, як щодо налаштування height: 0;? У поєднанні з від’ємним запасом (рівним або більшим за висоту верхньої та нижньої меж, якщо такі є) для подальшого видалення елемента? Я не думаю, що position: absolute; top: 0; left: -4000px;це спрацювало б, але, можливо, варто спробувати.

З мого боку, використання display: noneчудово працює.


4

Додайте кілька наступних висот рядка: 0px; розмір шрифту: 0px; висота: 0px; поле: 0; padding: 0;

Я забуваю, хто це робить. Я думаю, що це висота лінії для IE6.


4

У мене було те саме питання, я навіть додав style = "display: none" до кожної комірки.

Врешті-решт я використав HTML коментарі <!-- [HTML] -->


4

Ви можете використовувати стиль відображення: жоден з tr, щоб приховати, і він буде працювати з усіма браузерами.


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

прекрасно працює для мене ..


2

Це трапилося зі мною, і мене спантеличили, чому. Тоді я помітив, що якщо я видалю будь-яку nbsp; у мене були рядки, тоді рядки не займали місця.


-1

Потрібно помістити тип введення зміни на прихований, усі його функції працюють, але це не видно на сторінці

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

до тих пір, поки тип вводу встановлений, ви можете змінити решту. Щасти!!


-3

У мене була така ж проблема, і я вирішив це питання. Раніше css був переповнений: приховано; z-індекс: 999999;

Я змінюю його на переповнення: видно;


-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 видалить його з потоку макета і має вирішити вашу проблему - елемент залишиться в DOM, але не вплине на інших.


fwiw Я думаю, що це чудове рішення, якщо ви хочете приховати стовпчик у деяких конкретних ситуаціях. на додаток додайтеopacity: 0
Графо

-5

Ви можете встановити

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

5
З visibility: hidden;елементом буде ще простір, що різниця між visibilityі displayвластивостями
Дмитро Пашкевич

Використовуйте так<table><tr style="display: none;"><td></td></tr></table>
Сану
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.