после псевдо-элемента, не появляющегося в коде [дубликат]
На этот вопрос уже есть ответ здесь:
Я пытаюсь использовать псевдоэлемент after для добавления некоторых эффектов на сайт.
<div class="product-show style-show">
<ul>
<li>
....
<div class="...">
<div class="readMore less">...</div>
<a href="3" class="readMoreLink" onclick="return false;">Read More</a>
</div>
....
</li>
</ul>
</div>
И таблицы стилей:
.product-show .readMore.less {
max-height: 200px;
height: 100%;
overflow: hidden;
}
.product-show .readMore.less:after {
background: rgba(255, 255, 255, 0);
display: block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 30px;
}
Я вижу стиль для .продукт-шоу .далее.меньше применяется, но я этого не делаю. смотрите a:: после обозначения в HTML-блоках, когда я изучаю сайт из Chrome (последняя версия) / MacOS. Я читал, что иногда возникают проблемы с более старыми браузерами, но я предположил, что я должен быть в состоянии увидеть, по крайней мере,:: после обозначения псевдо-элемента, если я правильно определяю стиль. Что я делаю не так?
2 ответа:
Это потому, что псевдо-элемент не генерируется, если значение
content
опущено (так как начальное/значение по умолчанию равноnone
).Укажите значение
content
, чтобы сгенерировать псевдоэлемент. Достаточно значения''
..product-show .readMore.less:after { content: ''; background: rgba(255, 255, 255, 0); display: block; position: absolute; bottom: 0; left: 0; width: 100%; height: 30px; }
Согласно MDN:
Свойство content CSS используется с:: before и:: after псевдо-элементы для создания содержимого в элементе.
Это означает, что если вы не включаете свойство
content
, элемент:after
или:before
не будет отображаться полностью.Добавьте эту строку в свой код:
content: ""; // Leave this empty
И посмотреть, как это влияет на результат.
Как и Примечание, Вы обычно добавляете текст в свойство
content
, когда элемент:before
или:after
используется для отображения текста. Однако во многих случаях вы обнаружите, что просто оставляете его пустым.