CSS и вёрстка

Как добавить элементу css класс

📅 ⏱ 20:37 ⏳ 1 мин 💬 0

Как добавить элементу css класс: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем

CSS-класс — это «ярлык», который цепляется к HTML-элементу и позволяет стилизовать сразу группу похожих элементов. Добавить элементу класс можно статически в разметке, динамически через JavaScript, средствами PHP и в компонентных фреймворках. Ниже — все основные способы с примерами.

Что такое класс в CSS

Селектор класса в стилях начинается с точки: .box { }. В HTML класс задаётся атрибутом class:

CODE
<div class="box">Содержимое</div>

Один и тот же класс можно присвоить любому числу элементов — это и есть основа повторного использования стилей.

Добавление класса в HTML

Самый простой способ — прописать класс прямо в теге:

CODE
<p class="text">Абзац</p>
<button class="btn btn-primary">Кнопка</button>

Обратите внимание: несколько классов перечисляются через пробел. Элемент получит стили и .btn, и .btn-primary.

Добавление класса через JavaScript

Динамически классы удобнее всего менять через classList:

JAVASCRIPT
const el = document.querySelector('.box');
el.classList.add('active');       // добавить
el.classList.remove('active');    // удалить
el.classList.toggle('active');    // переключить
el.classList.contains('active');  // проверить

Устаревший, но рабочий способ — свойство className:

CODE
el.className = 'box active';

Он опасен тем, что перезаписывает все существующие классы. classList надёжнее.

Добавление класса через jQuery

CODE
$('.box').addClass('active');
$('.box').removeClass('active');
$('.box').toggleClass('active');

Если проект использует jQuery, эти методы по-прежнему актуальны.

Добавление класса в WordPress и PHP

В PHP классы собирают строкой:

CODE
<div class="card <?php echo $is_featured ? 'featured' : ''; ?>">

В WordPress часто используют готовые функции, которые сами добавляют классы к <body> и записям:

CODE
<body <?php body_class(); ?>>
CODE
<article <?php post_class(); ?>>

А для добавления своих классов есть фильтры:

JAVASCRIPT
add_filter('body_class', function($classes) {
    $classes[] = 'custom-theme';
    return $classes;
});

Классы в React и Vue

В JSX используется атрибут className:

CODE
<div className={isActive ? 'box active' : 'box'}>...</div>

Во Vue — директива :class:

CODE
<div :class="{ active: isActive }">...</div>

Несколько классов и приоритет

Когда у элемента несколько классов, применяются правила из всех, а конфликты решаются по специфичности и порядку объявления. Пример:

CSS
.btn { background: #003f8f; }
.btn-primary { background: #992222; }
<!-- победит .btn-primary, если объявлен позже или специфичнее -->

Итоги

Класс добавляется атрибутом class в HTML, через classList в JavaScript, методами addClass в jQuery, строкой и фильтрами в PHP, через className и :class в React и Vue. Для динамики предпочитайте classList — он не затирает уже назначенные классы.

Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость