Настроить CSS для всех ячеек определенной таблицы, не давая каждой ячейке уникальный идентификатор? - PullRequest
1 голос
/ 07 апреля 2010

Есть ли способ изменить свойства CSS ячеек одной таблицы на основе идентификаторов таблицы, а не конкретных дочерних идентификаторов?

Я хотел бы изменить внешний вид одной таблицы (например, давая каждой ячейке цветную рамку), а другой - другим, но я бы не хотел указывать идентификатор для каждой ячейки.

Чтобы было ясно, мне не нужно индивидуально обращаться к каждой ячейке таблицы - я просто хочу установить все свойства "дочерних" ячеек различных таблиц.

1 Ответ

4 голосов
/ 07 апреля 2010

Если вы можете определить конкретную таблицу, то нет проблем.Просто используйте селектор потомков:

#tableid1 td { border: 2px solid green; }

Это говорит о том, что все ячейки таблицы, являющиеся потомками таблицы с идентификатором tableid1, имеют зеленую рамку.Также для включения <th> ячеек:

#tableid1 td, #tableid1 th { border: 2px solid green; }

Примечание: вышеописанное может иметь проблемы, если у вас есть вложенные таблицы, где, например, вы хотите, чтобы внешняя таблица имела границы, ноне внутренний стол.Обычно не рекомендуется использовать вложенные таблицы, но иногда нет других вариантов.Существует несколько способов решения этой проблемы.

Во-первых, вместо этого можно использовать дочерний селектор (>):

#id1 > tbody > td { ... }

Элемент <tbody> подразумевается здесь.

Проблема в том, что дочерний селектор не поддерживается в IE6.

Другой способ справиться с этим - отменить эффект:

#id1 td { border: 2px solid green; }
#id1 td td { border: 0 none; }

Thisне всегда практично, но работает на IE6.

...