Я хочу применять стили только к таблице внутри DIV с определенным классом:
Примечание: я бы предпочел использовать css-селектор для дочерних элементов.
Почему № 1 работает, а № 2 нет?
1:
div.test th, div.test td, div.test caption {padding:40px 100px 40px 50px;}
2:
div.test th, td, caption {padding:40px 100px 40px 50px;}
HTML:
<html>
<head>
<style>
div.test > th, td, caption {padding:40px 100px 40px 50px;}
</style>
</head>
<body>
<div>
<table border="2">
<tr><td>some</td></tr>
<tr><td>data</td></tr>
<tr><td>here</td></tr>
</table>
</div>
<div class="test">
<table border="2">
<tr><td>some</td></tr>
<tr><td>data</td></tr>
<tr><td>here</td></tr>
</table>
</div>
</body>
</html>
Что я делаю не так?
css
css-selectors
Роман М
источник
источник
Ответы:
Этот код "
div.test th, td, caption {padding:40px 100px 40px 50px;}
" применяет правило ко всемth
элементам, которые содержатся вdiv
элементе с именем классаtest
, в дополнение ко всемtd
элементам и всемcaption
элементам.Это не то же самое, что «все
td
,th
иcaption
элементы, содержащиеся вdiv
элементе с классомtest
». Для этого вам необходимо изменить селекторы:'
>
' не полностью поддерживается некоторыми старыми браузерами (я смотрю на вас, Internet Explorer).источник
источник
.test *
это будет наиболее конкретное правило для каждого дочернего элемента. Другими словами, имейте в виду, что все, что вы помещаете внутрь,.test *
не может быть переопределено никаким более конкретным правилом CSS, потому чтоtest *
это самое конкретное правило.>
Селектор соответствует прямым детям только, а не потомки.Вы хотите
или более вероятно
Редактировать:
Первый говорит
Тогда как второй говорит
В вашем оригинале
div.test > th
говоритсяany <th> which is a **direct** child of <div class="test">
, что это будет соответствовать,<div class="test"><th>this</th></div>
но не будет соответствовать<div class="test"><table><th>this</th></table></div>
источник
Если вы хотите добавить стиль во всех дочерних элементах и не указывать спецификацию для тега html, используйте его.
Родительский тег
div.parent
дочерний тег внутри div.parent, как
<a>
,<input>
и<label>
т. д.код:
div.parent * {color: #045123!important;}
Вы также можете удалить важные, его не требуется
источник
Вот код, который я недавно написал. Я думаю, что это обеспечивает базовое объяснение объединения имен классов / идентификаторов с псевдоклассами.
источник
//
. См stackoverflow.com/questions/4656546/...работает для меня.
Дочерний селектор> не работает в IE6.
источник
Насколько я знаю это:
или в вашем случае даже это:
(но это будет работать для элементов,
yourclass
которые не могут бытьdiv
s), повлияет только на таблицы внутриyourclass
. И, как говорит Кен,> не поддерживается везде (иdiv[class=yourclass]
тоже, поэтому используйте точечную запись для классов).источник
Этот код также может помочь, используя синтаксис SCSS
источник