29 сентября 2022
1095
Я контент-менеджер, немного правлю верстку на сайте (меняю отступы для блоков, цвета, размер шрифтов) в файлах css сайта. Например, в списке новостей мне нужно сделать так, чтобы у списков, был особый стиль. Или цвет кнопок поменять. Но бывает получается так, что и на других страницах сайта мои изменения тоже применяются, там, где не надо. Или на других блоках на этой же странице. Как сделать правки стилей только для конкретной страницы/конкретного места на странице?

Изменять общие стили сайта (файлы style.css, template.css и пр.) действительно не стоит, если вы не делаете верстку, а только редактируете контент и нужно сделать правки по месту. Потому что такие изменения действительно могут привести к тому, что в другом месте сайта, где это было не нужно, произойдут аналогичные изменения, так как общие файлы стилей влияют на весь сайт.

Чтобы применить правки стилей только к конкретному месту, можно делать так:

  1. Завернуть контент, внутри которого нужно произвести изменения, в контейнер (div) с классом css, которого еще нет на сайте.
  2. Прямо на странице в теге <style></style> разместить необходимые изменения стилей.

Завернуть контент в div

Допустим, на странице подключается компонент:

    <h2>Отзывы</h2>
    <?$APPLICATION->IncludeComponent(
        "bitrix:news.list",
        "review",
        array(
            ...
        )
    );?><br>

Сначала нужно придумать имя класса css. По его названию должно быть понятно, что это 1) класс специально для данного проекта, 2) класс для локальных правок на странице 3) класс для какой страницы. И это название должно быть таким, чтобы оно не пересеклось с названиями таких же классов, придуманными вами (или кем-то) для других страниц.

  1. Чтобы указать проект, можно придумать аббревиатуру из 3 символов, согласующуюся с именем проекта. Например, если мы разрабатываем сайт microsoft.com, то можно сократить это до msf
  2. Чтобы указать, что это класс для локальных правок на страницах, можно к этой аббревиатуре дописать слово page через дефис, получится msf-page.
  3. Ну и чтобы конкретизировать страницу, к которой это применяется, можно добавить еще какое-то слово, которое ее описывает, например msf-page-faq или msf-page-catalogDetail и т. д.

Допустим, мы придумали название класса msf-page-catalogDetail.

Теперь заворачиваем наш компонент в этот div с указанием класса:

    <h2>Отзывы</h2>

    <div class="msf-page-catalogDetail">
    
        <?$APPLICATION->IncludeComponent(
            "bitrix:news.list",
            "review",
            array(
                ...
           )
        );?></br>

    </div>

Вставляем стили

Теперь где-либо на странице, желательно недалеко от этого компонента, или просто в самом начале страницы, размещаем тег <style>, в котором размещаем наши стили. Обязательно ограничиваем все стили нашим классом:

<style>
/* отступ списков */
.msf-page-catalogDetail ul {
    padding-left: 40px;
}

/* фон кнопок */
.msf-page-catalogDetail button {
    background-color: #da7d33;
}
</style>

Иногда нужно еще более точно указать элемент, для которого должны применяться стили, например, не для всех кнопок в детальной карточке каталога, а только для кнопок "В корзину". Да не для любой кнопки "В корзину", а только для той, что находится в основном блоке карточки товара (где его фотка, наличие, рейтинг, цена и пр.), при этом чтобы у "Сопутствующих товаров" кнопки остались старые.

Тогда можно так и указать: смотрим, в блоках с какими классами находится наша кнопка и ограничиваем применение только ими. Главное - все равно не забыть ограничить сверху нашим классом msf-page-catalogDetail.

/* фон кнопок "В корзину" в основном блоке детальной карточки товара */
.msf-page-catalogDetail .item_main_info .right_info .buy_block .button_block .to-cart {
    background-color: #da7d33;}

342d5576-0f6d-44e2-9c1c-6b52da6223bf.png

Если действовать таким образом, то изменения стилей коснутся только конкретных мест, в которых вы хотите их применить, и не сломают верстку в других местах.


Позвоните нам!
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль
Работаем для вас с 9:30 до 18:30
Ждем писем!
г. Санкт-Петербург, Краснопутиловская ул., 69