Використовуючи CSS, як змінити лише 2-й стовпець таблиці


126

Як використовувати лише css, як я можу переосмислити css лише 2-го стовпця таблиці.

Я можу дістатися до всіх стовпців за допомогою:

.countTable table table td

Я не можу потрапити на html на цій сторінці, щоб змінити його, оскільки це не мій сайт.

Дякую.

css 

Відповіді:


239

Ви можете використовувати :nth-childпсевдоклас так:

.countTable table table td:nth-child(2)

Зауважте, що це не працюватиме в старих браузерах (або IE), вам потрібно буде дати класам клас або використовувати javascript у цьому випадку.


Це дасть лише другу клітинку в кожній таблиці, а не другу клітинку в кожному рядку. Вам потрібно .countTable table table tr td: nth-child (2)
— Deeksy

3
@Deeksy - Це не точно, не байдуже, що таке селектор. nth-childзастосовується після знаходження елемента, і він nthпорівнюється з тим, у кого він є, незалежно від того, був він у селекторі чи ні. Ви можете це побачити тут: jsfiddle.net/JQQPz
— Нік Крейвер

як щодо зміни лише css елемента всередині td: nth-child (2). Як тег <a> це буде td a: nth-дитина (2) {}?
— Іво Сан

1
@ ivory-santos просто додайте aкінець, наприклад, td:nth-child(2) aдо стильових посилань під цим елементом.
— Нік Крейвер

Чому у вас є таблиця двічі (на відміну від інших відповідей нижче)?
— UlFie

26

Спробуйте це:

.countTable table tr td:first-child + td

Ви також можете повторити, щоб стилізувати інші стовпці:

.countTable table tr td:first-child + td + td {...} /* third column */
.countTable table tr td:first-child + td + td + td {...} /* fourth column */
.countTable table tr td:first-child + td + td + td +td {...} /* fifth column */

1
Я вибрав це для ситуації, коли власники сайту, що підтримують код, не були розробниками, і це дало їм можливість змінювати вирівнювання стовпців у своїх таблицях даних дуже прямо, тому що, хоч і трохи детально, з коментарями, як ви тут, полегшили їм зрозуміти, який селекторний блок був для якого стовпця зліва. Знову не найелегантніший та найефективніший спосіб, але він спрацював!
— Ерік Бішард

18

Для зміни лише другого стовпця таблиці використовуйте наступне:

Загальний випадок:

table td + td{  /* this will go to the 2nd column of a table directly */

background:red

}

Ваш випадок:

.countTable table table td + td{ 

background: red

}

Примітка. Це працює для всіх браузерів (сучасних та старих), тому я додав свою відповідь на старе запитання


Який би твік, щоб просто вибрати перший стовпець? Використовуючи таблицю td {...}, також вибираються всі комірки в інших стовпцях.
— j4v1

1
@ j4v1 table td {background: red;} // перший стовпець матиме червоний фон таблиці td + td {background: blue;} // відпочинок матиме синій
— Abzoozy

-2

Ви можете призначити клас для кожної комірки у другому стовпчику.

<table>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
</table>

Я не можу цим скористатися. Як я вже говорив, це не моя сторінка, тому я не можу змінити html.

2
@Duniyadnd це не гарний підхід, порівняно з існуючим способом використання селекторів.
— PM

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.