Причина
стили примененных от псевдо-класса применяются только к content
. Не к фактическому элементу. Вы можете подумать, что !important
изменяет цвет, но это не тот случай.
Итак, когда вы меняете color
из псевдокласса, изменяется цвет содержимого, то есть test
. И padding-left
применяется к test
только не к элементу <p>
.
Demo
Осмотрите пункт и обратите внимание на отступы.
.pclass {
color: red;
padding-left: 20px;
}
.pclass:before {
content: 'test';
color: green;
padding-left: 10px;
}
<p id="pid" class="pclass"></p>
Решение
Чтобы решить эту проблему, вы можете установить position
элемента в relative
и использовать отрицательную left
.
Demo
.pclass {
color: red;
padding-left: 20px;
}
.pclass:before {
content: 'test';
color: green;
left: -20px;
position: relative;
}
<p id="pid" class="pclass"></p>
Вы не используете селекторы id в CSS. Это плохая практика. – connexo