RocknRoolla
@RocknRoolla

Как правильно присваивать стили?

Хотелось бы по конструктивней узнать про
как правильно задавать стили элементам.
Все говорят что задавать стили чере id моветон,
но можно же задавать через теги не используя классы.
Какой вариант лучше использовать и почему?

<ul class="nav">
                    <li><a href="" class="nav__link">About</a></li>
                    <li><a href="" class="nav__link">Support</a></li>
                    <li><a href="" class="nav__link">Download</a></li>
                    <li><a href="" class="nav__link">Blog</a></li>
                </ul>

.nav li {
    background-color: #2bff00;
}

.nav__link  {
    background-color: #2bff00;
}
  • Вопрос задан
  • 783 просмотра
Решения вопроса 1
@khomaldi
разбираюсь потихоньку
Ответом на вопрос может служить БЭМ
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Vaultboy84
Что то отвечающие, все как на подбор какую то чушь пишут. При чем тут БЭМ? Это всего лишт методология, одна из многих. Суть не в БЭМ, а в том как читаются стили при строительстве дерева DOM. А читаются они не слев направо, а наоборот справа на лево. Таким образом, в первом случае изначально берутся все li в документе, потом из них выбираются li вложенные в nav. А если у вас много li в документе и таким вот образом написаны все стили, то отрисовываться все будет медленее. Указывая же конкретный класс вы сразу же сужаете диапазон и свойства применяются при отрисовке быстрее. Таким образом применять классы более целесооборазно.
Ответ написан
Комментировать
@Migen_ru
В CSS есть понятие специфичности:
1.Специфичность id
2.Специфичность class
3.Специфичность tag

Применяя tag вы будете использовать наименьшую специфичность,
применяя id - наивысшую специфичность. (Более подробно можно прочитать в книге "CSS для Профи").
Поэтому применяя классы вы не будете перевешивать специфичность id, которые в свою очередь обычно применяются для работы с сценариями JS.
А используя только специфичность tag вам нужно будет применять большое количество вложений этих тегов, а программисты народ ленивый, поэтому они используют классы, как самый оптимальный вариант.

А чтобы как-то договориться о стандартах, применяют одну из методологий, например БЭМ от Яндекса (у вас может быть своя, если вы считаете что у вас она лучше).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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