Сначала определимся, когда может понадобиться удалить псевдоэлемент со страницы, то есть сформулируем суть проблемы. Обычно разработка сайтов сопровождается использованием многочисленных файлов CSS приходящих с разных мест. Например, для сайтов на WordPress, нормальным фактом является использование плагинов, которые имеют свои листы стилей, влияющие на отображение сайта. Чтобы переопределить какие-то стили из плагинов, достаточно переопределить их из вашей темы. А как насчет псевдоэлементов, если нужно полностью удалить их сто страницы?

Например, есть такой CSS

li::before { content: url("bullet.png"); }

или

li::before { content: "•"; }

он добавляет псевдоэлемент before к элементам списка для создания кастомных буллетов для списков. Теперь предположим, что элемент li на какой-то странице сайта используется для создания каких-то контейнеров и буллеты, а именно псевдоэлементы, мешают и их нужно удалить.

Обратите внимание, что для псевдоэлементов в CSS нужно использовать двойные двоеточия, хотя одно двоеточие тоже будет прекрасно работать. Об этом я писал в этой статье.

Можно просто использовать display: none; в таком случае псевдоэлемент не будет показываться, но, при этом, дальше будет присутствовать на странице. Это можно проверить, например, с помощью инструментов вебмастера в браузере.

Чтобы удалить псевдоэлементы before или after из структуры документа нужно вспомнить возможные значения для свойства content, они могут быть следующие: normal, inherit, none, counter, url, attr, string, open-quote, close-quote, no-open-quote, no-close-quote, initial. Среди них есть свойство none, оно нам и нужно.

Итак, чтобы удалить псевдоэлемент нужно переопределить свойство content и задать ему значение none, а именно:

li::before { content: none; }

Возможно придется воспользоваться !important чтобы усилить важность селектора и перебить изначальное значение.

К сожалению, это единственный способ. Влиять напрямую на псевдоэлементы с помощью JavaScript или какой-нибудь библиотеки, например, jQuery, нельзя, так как псевдоэлементы не являются частью DOM.

Подводя итоги, чтобы удалить псевдоэлемент со страницы нужно задать свойству content значение none, возможно с !important, например, вот так:

li::before { content: none !important; }

На этом все, желаю все веб разработчикам, особенно, фрилансерам успешного и беспроблемного создания сайтов.

Добавить комментарий

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