1. Главная
  2. Блог
  3. Полезные статьи
  4. Как сделать кликабельным весь блок с помощью CSS ::before

Как сделать кликабельным весь блок с помощью CSS ::before

12 июля 2026
70

При разработке сайтов нередко возникает ситуация, когда внутри карточки или информационного блока ссылка размещена только в заголовке. Пользователю же гораздо удобнее нажимать на любую область карточки, а не только на текст ссылки.

Если нет возможности изменить HTML-разметку или обернуть весь блок тегом <a>, задачу можно решить исключительно средствами CSS.

Исходная разметка

Например, карточка имеет следующую структуру:

<div class="element">
    <div class="image-table">
        ...
    </div>

    <div class="text-wrap">
        <div class="name">
            <a href="/korporativnyy-sayt/">
                Корпоративный сайт
            </a>
        </div>

        <div class="text">
            Для компаний и организаций
        </div>
    </div>
</div>

По умолчанию кликабельным будет только текст ссылки.

Решение

Используем псевдоэлемент ::before, который растягивается на всю площадь блока - родителя.

.links .element {
    position: relative;
}

.links .element a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

Теперь область ссылки занимает весь блок, хотя HTML остается неизменным.

кликабельный весь в CSS

Почему это работает

Псевдоэлемент ::before становится частью ссылки и абсолютно позиционируется относительно родительского элемента. Благодаря этому браузер считает кликом по псевдоэлементу клик по самой ссылке.

Добавляем эффект наведения

Чтобы пользователь понимал, что карточка полностью кликабельна, можно добавить плавное выделение при наведении.

.links .element {
    position: relative;
    border-radius: 10px;
    transition: .25s;
}

.links .element:hover {
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    transform: translateY(-3px);
}

Преимущества способа

  • не требуется изменять HTML;
  • не нарушается структура страницы;
  • решение работает практически во всех современных браузерах;
  • легко применяется к любым карточкам и плиткам.
Использование ::before — простой и удобный способ сделать кликабельной всю карточку без изменения существующей верстки. Особенно полезен такой прием при работе с готовыми шаблонами и конструкторами сайтов, где изменить HTML затруднительно.

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

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

Понравилась статья?

Поддержать нас рублями:

Нужна помощь? Обращайтесь!

Комментарии
Name
Email
Phone
Ваше имя
Ваш email
Оставить комментарий
Нажмите для звонка
+7 (499) 341-00-19