Почему отображается только псевдоэлемент before, а after - нет
Пытаюсь добавить "птичку" к моим будущим "спойлерам" через псевдоэлементы :before и :after но в итоге отображается только before, ПОЧЕМУ?

HTML
<ul class="open">
<!-- <li class="active"> <a href="/"><span>Перфоратор</span></a> </li> -->
<li class="has-sub">
<a href="/about_us.html">О нас</a>
<ul>
<li class="has-sub">
<a href="/about_us/istoriya-kompanii/">История компании</a>
<ul>
<li> <a href="/about_us/istoriya-kompanii/test-1/">Тест 1</a> </li>
<li> <a href="/about_us/istoriya-kompanii/test-nazvanie-bolshoj-dlinny/">тест название большой длинны</a> </li>
</ul>
</li>
<li> <a href="/about_us/attestaty/">Аттестаты</a> </li>
<li> <a href="/about_us/podtverzhdayushie-dokumenty/">Подтверждающие документы</a> </li>
</ul>
</li>
<li class="has-sub">
<a href="/services.html">Услуги</a>
<ul>
<li class="has-sub">
<a href="/ekskovator.html">Аренда спецтехники</a>
<ul>
<li> <a href="/uslugi/arenda-spectehniki/ekskavator-pogruzchik/">Экскаватор-погрузчик</a> </li>
<li> <a href="/uslugi/arenda-spectehniki/samosval/">Самосвал</a> </li>
<li> <a href="/uslugi/arenda-spectehniki/gidromanipulyator/">Гидроманипулятор</a> </li>
<li> <a href="/uslugi/arenda-spectehniki/avtobetonosmesitel/">Автобетоносмеситель</a> </li>
</ul>
</li>
<li> <a href="/uslugi/stroitelstvo/">Строительство</a> </li>
<li> <a href="/uslugi/vodosnabzhenie/">Водоснабжение</a> </li>
<li> <a href="/uslugi/otoplenie/">Отопление</a> </li>
<li> <a href="/uslugi/santehnika/">Сантехника</a> </li>
<li> <a href="/uslugi/elektrika/">Электрика</a> </li>
</ul>
</li>
<li> <a href="/portfolio.html">Портфолио</a> </li>
<li><a href="#">Новости</a></li>
<li><a href="/#contacts">Контакты</a></li>
</ul>
CSS
li.has-sub::after,
li.has-sub::before
{
content: "";
width: 15px;
height: 2px;
background-color: black;
position:absolute;
transition: 0.5s transform;
top: 25px;
right: 20px;
}
UPD: Еще псевдоэлементы применились не ко всем элементам .has-sub, только к первому уровню вложенности.
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
На скрине в инструментах разработчика видно, что существует только before. Плюс ко всему, псевдоэлементы применились не ко всем элементам класса
Вот смотри я сделал пример на твоих стилях. Но слегка поменял позиционирование псевдоэлементов, дабы они были видны.
Все они теперь видны и у каждого элемента они есть.
li {
position: relative;
width: 100px;
}
li.has-sub::after,
li.has-sub::before {
content: "";
width: 15px;
height: 2px;
background-color: black;
position: absolute;
transition: 0.5s transform;
/*
top: 25px;
right: 20px;
*/
}
li.has-sub::after {
top: 25px;
right: 20px;
}
li.has-sub::before {
top: 25px;
right: 40px;
background-color: red;
}
<ul>
<li class='has-sub'>Тест</li>
<li class='has-sub'>Тест</li>
</ul>