У меня есть переменное число строк таблицы (n), и я хотел бы, чтобы нижняя граница применилась к строкам 0.. (n-1)
как это сделать?
У меня есть переменное число строк таблицы (n), и я хотел бы, чтобы нижняя граница применилась к строкам 0.. (n-1)
как это сделать?
У вас есть два варианта: (1) добавление специализированного класса в HTML к последней строке; или (2) с использованием псевдо-класса :last-child
в вашем CSS.
Если вы можете применить классы к своему HTML, вы можете добавить специализированный класс к последней строке. Если ваша разметка создается серверной стороной script (например, PHP скрипт), вам нужно будет отредактировать это script, чтобы добавить аналогичную разметку.
HTML:
<table>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr class="last">
<td>
</td>
</tr>
</table>
CSS
table
{
border-collapse:collapse;
}
tr
{
border-bottom: 1px solid #000;
}
tr.last
{
border-bottom: none;
}
Альтернативой является использование псевдо-класса :last-child
CSS. Использование класса :last-child
не требует каких-либо изменений в HTML и поэтому может быть лучшим выбором, если вы не можете изменить HTML. CSS почти идентичен приведенному выше:
CSS
table
{
border-collapse:collapse;
}
tr
{
border-bottom: 1px solid #000;
}
tr:last-child
{
border-bottom: none;
}
Недостатком этого подхода является то, что версии Internet Explorer до 9 не поддерживают псевдокласс class :last-child
.
Я знаю, что это старый вопрос, но стоит упомянуть, что теперь с CSS3 все, что вам нужно сделать, это селектор not()
в вашем CSS, например:
tr:not(:last-child) {
border-bottom: 1px solid #E3E3E3;
}
tr:last-child td {
border-bottom: none;
}
Сохраняет ваш класс в последнем теге.
это используется с любым вызовом класса в html
tr:last-child {
border-bottom: none;
}
Если вы используете jQuery, вы можете использовать следующие script
$(document).ready(function() {
$(".tableClass tr:not(:last) > td").css('border-bottom', ' 1px solid #DDD');
});
Вы также можете использовать этот способ
table tr:not(:last-of-type) { border-bottom: none; }