@almassar
web программист

Как применить стиль к прямым потомкам?

<div class="test">
    <ul>
        <li>
            Первый
            <ul>
                <li>
                    Потомок 1
                </li>
                 <li>
                    Потомок 2
                  </li>
            </ul>
        </li>
        <li>
            Второй
        </li>
    </ul>
</div>

Как сделать чтобы слова "Первый" и "Второй" были красным цветом, но при этом Потомок 1 и Потомок 2 оставались черным.
.test ul > li {
	color:red;
}
вот этот кусок стиля, окрашивает все в красный цвет, получается Потомок 1 и Потомок 2 наследует их.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега CSS
Так:

.test ul {
  color: red;
}

.test ul ul {
  color: black;
}

??

UPD. Вынесено из комментариев:

это решение требует, постоянно сбрасывать стили по умолчанию

В смысле - для вложенных элементов ul? Решим вопрос один раз для всех, вместо того, чтобы стилизовать .test ul ul, пусть будет

ul {
  color: initial;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sfi0zy
@sfi0zy Куратор тега CSS
Creative frontend developer
Как сделать чтобы слова "Первый" и "Второй" были красным цветом, но при этом Потомок 1 и Потомок 2 оставались черным.

Можно сделать по-простому:
ul {
    color: #f00;
}

ul ul {
    color: #000;
}


Но в перспективе предпочтительнее отойти от использования подобных селекторов и прийти к бэм или какой-нибудь еще методологии.
Ответ написан
alex_shevch
@alex_shevch
Frontend Developer
Ой вы мудриииите все. Всё просто же:
.test > ul > li {
color:red;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы