Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   CSS3 Как по ребенку изменить стиль родителя? (https://javascript.ru/forum/xhtml-html-css/66725-css3-kak-po-rebenku-izmenit-stil-roditelya.html)

sovsem-nub 06.01.2017 11:59

CSS3 Как по ребенку изменить стиль родителя?
 
Например
<ul>
<li class="myli">
<a>Привет</a>
</li>
</ul>

Как зная только класс .myli , добавить отступ родителю? в нашем случае родитель ul

Нашел кучу псевдоклассов для детей, а для родителя ни одного.

TestUser013 06.01.2017 12:09

Для родителя нету. CSS селекторы анализируются только справа налево (для производительности).
В данном случаи поможет только js.

MallSerg 06.01.2017 12:13

Никак иначе это может приводить к бесконечной рекурсии и полному распаду каскадности стилей.
Если грубо на пальцах объяснять то ребенок не должен никак влиять на родителя т.к. родитель по умолчанию влияет на ребенка. Взаимное влияние сделает невозможным разрешение стилей по этому это принципиально запрещено.

Malleys 06.01.2017 12:16

В настоящее время нет способа выбрать родительский элемент в CSS.

Черновик проекта "Селекторы Уровень 4" включает в себя псевдо-класс :has() , который позволяет это делать. https://drafts.csswg.org/selectors-4/#relational
ul:has(> .myli) {
    margin: 1em;
}

По состоянию на 2017 год, это не доступно ни в одном браузере.
http://caniuse.com/#feat=css-has


Часовой пояс GMT +3, время: 13:24.