Почему в CSS и HTML преобладают тире, а не подчеркивания?

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

В практиках CSS и HTML дефисы предпочтительнее, так как они обеспечивают чёткость и разделяют слова, в отличие от подчёркиваний и camelCase, которые могут сливать их. Дефисы идеально соответствуют устоявшимся стилистическим традициям CSS и удобно сочетаются с camelCase, используемым в JavaScript. В HTML5 дефисы применяются в атрибутах data-, что стало важным вкладом в стандартизацию их использования. Вот как можно использовать дефисы:

HTML
Скопировать код
<!-- Дефисы как элемент структурирования -->
<div class="user-profile" data-user-id="123"></div>
CSS
Скопировать код
/* Дефисы придают элегантности */
.user-profile {
    color: #333; /* Так выглядит идеальный CSS */
}

Соблюдение норм именования

В сфере программирования и формирования URL-сегментов дефисы по-прежнему активно используются. Они поддерживают единый стиль кода и стандартизированное использование на основе исторических предпочтений и объективных критериев, например, рекомендаций Google по SEO-оптимизации, что отчасти объясняет их распространённость.

Эхо исторических предпочтений

Исторически в HTML и CSS дефисы стали предпочтительными из-за особенностей старых версий CSS: использование подчёркиваний требовало экранирования, что снижало читаемость кода. Сообщество разработчиков предпочло дефисы, поддержав обратную совместимость и удобство поддержки кода.

Визуализация

Давайте попробуем визуализировать, почему дефисы предпочтительнее в CSS-селекторах и HTML-атрибутах, на примере названий книг:

Markdown
Скопировать код
Примеры названий книг:
| Провальный Замах   | Чистое Блаженство |
| -------------------| -------------------|
| "ИмяБезПробелов" | "Имя-С-Пробелами" |
| "имя_с_подчеркиваниями" | "имя-с-дефисами" |

Сравниваем названия:

plaintext
Скопировать код
"ИмяБезПробелов" --> 🧐 Напрягает зрение
"имя_с_подчеркиваниями" --> 😕 Утомительно, не так ли?
"имя-с-дефисами" --> 😌 Отдых для глаз!

Рассмотрим преимущества дефисов:

Markdown
Скопировать код
| "Имя-С-Пробелами": |
| --------------------------------------|
| 📚 **Читабельность**: Визуальное разделение упрощает чтение. |
| ⌨️ **Удобство ввода**: Благодаря дефису набор текста проще.  |
| 🔗 **Согласованность**: Повторяет URL и синтаксисы языков программирования.  |

В океане кода дефисы выступают яркими разделителями слов, возможностью каменной тропы в русле реки, упрощающей навигацию в мире программирования. 🏞️🐾

Сохранение семантики и дизайна

Доступность и семантика неразрывно связаны с дизайном. Дефисы в стиле kebab-case существенно улучшают понимание кода и облегчают работу скрин-ридерам и вспомогательным технологиям.

Следование SEO-рекомендациям

Поисковые системы отдают предпочтение дефисам. Google трактует их как пробелы, поэтому фразы с дефисами становятся осмысленными для SEO. Это стимулирует разработчиков использовать дефисы в названиях классов и идентификаторах, соответствуя при этом существующим правилам формирования URL.

Повышение производительности программирования

Ввод с дефисами эффективнее и ритмичнее, чем с подчёркиваниями. Это облегчает переход между различными частями кода, а меньшее использование клавиши Shift ускоряет рабочий процесс разработчиков.

Соблюдение синтаксической гармонии

Устранение синтаксической неоднозначности критически важно. В JavaScript подчёркивание может считаться признаком приватного свойства, тогда как дефисы исключают путаницу с операциями вычитания. Таким образом, дефисы способствуют синтаксической гармонии в различных языках программирования.

Соблюдение синтаксических норм

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

Соответствие общепринятым стандартам

Общие стандарты облегчают процесс разработки. Использование дефисов позволяет разработчикам обеспечить единообразие кода и интуитивно понятный опыт для себя и своих коллег.

Полезные материалы

  1. HTML-стандарт – Официальная спецификация HTML5. Правила именования классов и идентификаторов.
  2. Стиль HTML/CSS от Google – Рекомендации Google о правилах HTML и CSS, включая информацию о выборе разделителей для классов и идентификаторов.
  3. Отзывчивый веб-дизайн – A List Apart – Статья о влиянии отзывчивого дизайна на бизнес, с упоминанием использования дефисов.
  4. Синтаксис CSS – W3Schools – Ресурс для изучения синтаксиса и селекторов CSS. Объясняет преимущества дефисов в выборе селекторов.