#html #css
#HTML #css
Вопрос:
Есть таблица, которая содержит 3 столбца. Теперь я хочу установить ширину первого столбца 100 пикселей, второго столбца 200 пикселей и последнего столбца 300 пикселей.
Неудобно устанавливать все td с идентификатором, который указывает, какие это столбцы.
Есть ли более разумный способ сделать?
Комментарии:
1. Вы пробовали использовать элемент: селектор last-child {…}?
Ответ №1:
Предполагая, что ваша таблица имеет стандартную разметку, вы можете использовать nth-child
или nth-of-type
для таргетинга на определенные ячейки в каждой строке. Вы можете заменить любое число на nth-child
, если в вашей таблице больше столбцов.
/* nth-child(1) = the first td in each tr */
td:nth-child(1) {
width: 100px;
background: #ddd;
}
/* the second */
td:nth-child(2) {
width: 200px;
background: #ccc;
}
/* the third */
td:nth-child(3) {
width: 300px;
background: #bbb;
}
<table>
<tbody>
<tr>
<td>1.1</td>
<td>1.2</td>
<td>1.3</td>
</tr>
<tr>
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
</tr>
</tbody>
</table>
Ответ №2:
Вы можете сделать это в CSS, используя nth-child:
#myTable tr td {
border: 1px solid #000;
}
#myTable tr td:first-child {
width: 100px;
}
#myTable tr td:nth-child(2) {
width: 200px;
}
#myTable tr td:last-child {
width: 300px;
}
<table id="myTable">
<tr>
<td>100px</td>
<td>200px</td>
<td>300px</td>
</tr>
</table>
Если есть более 3 столбцов, вы можете просто указать nth-child (x)..
Ответ №3:
Для этого вы можете использовать nth-child
:
table tr td {
padding:0;
}
table tr td:nth-child(1) {
width:100px;
}
table tr td:nth-child(2) {
width:200px;
}
table tr td:nth-child(3) {
width:300px;
}
<table>
<tr>
<td>100px</td>
<td>200px</td>
<td>300px</td>
</tr>
</table>
Подсказка: столбцы шире, чем определенная ширина в CSS, потому что есть заполнение ячеек по умолчанию. Чтобы удалить заполнение, вы можете использовать дополнительное правило CSS (в этом примере правило
table tr td
).