Я создал таблицу в ASPX. Я хочу скрыть один из столбцов в зависимости от требования, но нет такого атрибута, как visible
в построении таблицы HTML. Как я могу решить свою проблему?
Я создал таблицу в ASPX. Я хочу скрыть один из столбцов в зависимости от требования, но нет такого атрибута, как visible
в построении таблицы HTML. Как я могу решить свою проблему?
Ответы:
Для этого вам необходимо использовать таблицу стилей.
<td style="display:none;">
td:first-child { display:none; }
Вы можете использовать nth-child
селектор CSS, чтобы скрыть весь столбец:
#myTable tr > *:nth-child(2) {
display: none;
}
Это работает при предположении, что ячейка столбца N (будь то a th
или td
) всегда является N-м дочерним элементом своей строки.
Если вы хотите, чтобы номер столбца был динамическим, вы можете сделать это с помощью querySelectorAll
или любой другой инфраструктуры, имеющей аналогичные функции, например jQuery
здесь:
$('#myTable tr > *:nth-child(2)').hide();
(Решение jQuery также работает в устаревших браузерах, которые не поддерживаютnth-child
).
вы также можете использовать:
<td style="visibility:hidden;">
or
<td style="visibility:collapse;">
Разница между ними в том, что «скрытый» скрывает ячейку, но удерживает пространство, но при «свертывании» пространство не удерживается как отображение: нет. Это важно при скрытии целого столбца или строки.
visibility: collapse
разработан специально для обработки отображения / скрытия ячеек, так как существует разница при пересчете ширины / высоты ячейки между этим и display:none
. См developer.mozilla.org/en-US/docs/Web/CSS/visibility#Values
Ответ Коса почти правильный, но может иметь серьезные побочные эффекты. Это более правильно:
#myTable tr td:nth-child(1), #myTable th:nth-child(1) {
display: none;
}
CSS (каскадные таблицы стилей) будут каскадировать атрибуты для всех своих дочерних элементов. Это означает, что *:nth-child(1)
скроет первый элемент td
каждого tr
И скроет первый элемент всех td
дочерних элементов . Если у кого-то из вас td
есть такие вещи, как кнопки, значки, входы или элементы выбора, первый будет скрыт (ух!).
Даже если в настоящее время у вас нет вещей, которые можно было бы спрятать, представьте свое разочарование в будущем, если вам нужно что-то добавить. Не наказывайте себя так в будущем, отладить это будет сложно!
Мой ответ будет только скрыть первый td
и th
на все tr
в #myTable
сохранности ваших другие элементы безопасности.
Bootstrap использует .hidden
class на <td>
.
Вы также можете скрыть столбец с помощью элемента col https://developer.mozilla.org/en/docs/Web/HTML/Element/col
Чтобы скрыть второй столбец в таблице:
<table>
<col />
<col style="visibility:collapse"/>
<tr><td>visible</td><td>hidden</td></tr>
<tr><td>visible</td><td>hidden</td></tr>
Известные проблемы: это не работает в Google Chrome. Проголосуйте за ошибку на https://bugs.chromium.org/p/chromium/issues/detail?id=174167.
<style>
.hideFullColumn tr > .hidecol
{
display:none;
}
</style>
используйте .hideFullColumn в таблице и .hidecol в th. Вам не нужно добавлять класс в td индивидуально, так как это будет проблемой, потому что индекс может не учитывать каждый td.
Вы также можете делать то, что предлагает vs dev программно, назначая стиль с помощью Javascript, перебирая столбцы и устанавливая элемент td по определенному индексу, чтобы иметь этот стиль.
<!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);