Почему псевдоэлемент after перекрывает собой родителя?
Я хочу реализовать кнопку как на картинке с помощью псевдоэлементов, но почему элемент Аfter вылазит за пределы родителя, как это исправить?
.cooperation_button position: relative border-radius: 4px border: 1.5px solid #2EECC5 background: #161617 z-index: 11 &::after position: absolute content: " " width: 100% height: 100% border-radius: 4px border: 1.5px solid rgba(46, 236, 197, 0.40) left: 9px top: 11px z-index: -1 |
.cooperation_button position: relative border-radius: 4px border: 1.5px solid #2EECC5 background: #161617 z-index: 11 &::after position: absolute content: " " width: 100% height: 100% border-radius: 4px border: 1.5px solid rgba(46, 236, 197, 0.40) left: 9px top: 11px z-index: -1
как выходит
как должно быть
Дополнительно:
snippet
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Проблема, когда псевдоэлемент :after перекрывает своего родителя, может возникать из-за неправильного использования позиционирования и z-index.
Во-первых, убедитесь, что у родителя достаточно пространства для отображения псевдоэлемента :after. Если родитель имеет ограниченную ширину или высоту, псевдоэлемент может перекрывать его содержимое.
Во-вторых, проверьте правильность использования позиционирования. Если у родителя или псевдоэлемента задано позиционирование (например, absolute или relative), это может привести к нежелательному перекрытию. Убедитесь, что позиционирование установлено верно и не приводит к конфликту расположения элементов.
Также, важно проверить значение z-index у родителя и псевдоэлемента. Если у псевдоэлемента задан более высокий z-index, чем у родителя, он будет отображаться поверх него. Убедитесь, что z-index установлен корректно, чтобы элементы отображались в нужном порядке.
Пример использования псевдоэлемента :after с правильным позиционированием и z-index:
.parent { position: relative; z-index: 1; } .parent:after { content: ""; position: absolute; top: 0; left: 0; width: 100px; height: 100px; background-color: red; z-index: 2; }
Проверьте ваш код и убедитесь, что он соответствует указанным рекомендациям по использованию позиционирования и z-index. Это поможет избежать проблемы перекрытия псевдоэлементом родителя.