Столкнулся с проблемой: нужно разместить стиль для соседей, которые находится слева от элемента. В моём случае, нужно, чтобы ul элемент красил элемент a в красный.
Вот мой html код:
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a>
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a></li>
</ul>
</li>
</ul>
Конечно, у меня у второго меню стиль position:absolute и можно просто сделать вот так:
ul > li > ul {position:absolute}
ul > li > ul ~ a {color: red}
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a></li>
</ul>
<a href="javascript://">Пункт 4</a>
</li>
</ul>
Но в html это выглядит странно.
Простите за такой идиотский вопрос, конечно, можно добавлять какой-то класс пунктам, которые имеют второе меню, но хотелось бы обойтись без этого
Выбрать предыдущего соседа с помощью селектора невозможен средствами CSS. И даже в черновике CSS4 на момент написания этой возможности нет.
Поэтому да, только
nth-child и подобные, если это подходит для данного случая.Меняя разметку (если возможно). Допустим есть элементы first и second. И нужно добавить селектор, когда first перед second. Можно это сделать через flexbox, для этого нужно их поменять местами в раз, применить селектор second + first, затем сделать чтобы order second был меньше first.
Исполняемый код
.flex {
display: flex;
}
.second + .first {
color: red;
margin-right: 10px;
}
.second {
order: 2;
}
.first {
order: 1;
}
<div class="flex">
<div class="second">
Second
</div>
<div class="first">
First
</div>
</div>
Продвижение своими сайтами как стратегия роста и независимости