@Unkn0vvn

Почему нельзя обращаться к блоку на прямую, а лишь через класс?

Добрый вечер!
За ранее прошу прощения, если этот вопрос поднимался ранее на форуме и я засоряю топик, не нашёл извините.
Суть вопроса вот в чём, почему нельзя обращяться из css напрямую к тегам, а только к классам этих тегов.
Условная ситуация:
Создаю галерею из карточек товаров через список (ul), и хочу обнулить list-style во всём документе, могу ли я обращаться напрямую к ul и li? Нужен ли мне класс?
Проблема возникла из-за того, что я учусь на Фуллстак-Вебдизайнера в Скиллбокс и там дали данное правило (обращатсья исключительно по именам классов) как аксиому. А мне хотелось бы разобраться подробнее (куратор тоже отмахнулся) ибо меньше кода - легче сайту
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 3
iiiBird
@iiiBird Куратор тега CSS
Пока ты спишь - твой конкурент совершенствуется
дали данное правило (обращатсья исключительно по именам классов) как аксиому

если кратко - когда браузер анализирует твои css стили - он читает их грубо говоря "справа налево".
к примеру стиль: .list li a {}
браузер читает это как "найди на странице все «a», у которых есть родитель «li», у которого в свою очередь есть родитель с классом .list"
чуешь да какой запрос получается не оптимизированный?

хочу обнулить list-style во всём документе

плохая затея. при обнулении стилей ты не должен ломать функционал элемента.
Ответ написан
Комментировать
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик
Обращаться по тегу можно, но если давать стили к тегам - они будут даваться каждому тегу с таким названием. В таком случае елементу с таким тегом могут даваться лишние стили, но это уже относительно того, что вы прописываете для этого тега. В таком случае лучше "конкретизировать" обращение к определенным елементам, используя классы либо айди. Также не забывайте, по классу также можно давать стили "деткам", не прописывая для них классы. В таком случае можно безпроблемно задавать класс только родительскому блоку, если не хотите засорять html. Вот пример:
<ul class="list">
<li>Елемент 1</li>
<li>Елемент 2</li>
<li>Елемент 3</li>
</ul>

.list li{
list-style:none;
}
Ответ написан
Комментировать
@stan288
Ты можешь обращаться к списку простым селектором ul, тебе не обязательно присваивать ему класс. Такой же принцип работает с любыми другими элементами
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 17:47
7000 руб./за проект
21 нояб. 2024, в 17:30
1500 руб./за проект
21 нояб. 2024, в 17:22
7000 руб./за проект