Css: как удалить псевдо элементы (после, до,...)

Я хотел бы использовать переключатель для макета тегов абзаца на веб-странице.

Я использую после псевдоэлемента

p:after {content: url("../img/paragraph.gif");}

Теперь мне нужно удалить этот код css со страницы. Как это можно сделать легко (jquery уже используется на странице)? (я не хочу включать или удалять файлы, содержащие css)

Ответ 2

Вам нужно добавить правило css, которое удаляет содержимое после (через класс).


обновление из-за допустимых комментариев.

Более правильным способом полного удаления/отключения правила :after является использование

p.no-after:after{content:none;}

as ответил Джиллиан Ло Вонг.


Оригинальный ответ

Вам нужно добавить правило css, которое удаляет содержимое после (через класс).

p.no-after:after{content:"";}

Забастовкa > и добавьте этот класс к вашему p, если вы хотите использовать эту строку

$('p').addClass('no-after'); // replace the p selector with what you need...

рабочий пример: http://www.jsfiddle.net/G2czw/

Ответ 3

$('p:after').css('display','none');

Ответ 4

Как упоминается в ответе Джиллиан, назначение none для content решает проблему:

p::after {
   content: none;
}

Обратите внимание, что в CSS3 W3C рекомендовал использовать два двоеточия (::) для псевдоэлементов, как до или после.

Из веб-документа MDN о псевдоэлементах

Примечание: Как правило, двойные двоеточия (::) следует использовать вместо одного толстая кишка (:). Это отличает псевдоклассы от псевдоэлементов. Однако, поскольку это различие не присутствовало в более старых версиях спецификации W3C, большинство браузеров поддерживают оба синтаксиса ради совместимость. Обратите внимание, что ::selection всегда должен начинаться с двойного двоеточия (::).

Ответ 5

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

Ответ 6

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

Ответ 7

p:after {
  content: none;
}

Это способ удалить :after, и вы можете сделать то же самое для :before.