С помощью ::after
и ::before
вы можете добавить элементы html или хотя бы что-нибудь, имитирующее функциональность элемента html.
::before
будет помещено перед всеми элементами внутри элемента и ::after
будет последним элементом.
Например, скажем, у нас уже есть эта разметка,
<div class="some-div">
<h1>some text</h1>
<div>Another div</div>
<!-- bunch of other elements -->
</div>
Если мы добавим следующий css,
.some-div::after,
.some-div::before {
content: "";
display: block;
}
Это приведет к этой разметке,
<div class="some-div">
::before
<h1>some text</h1>
<div>Another div</div>
<!-- bunch of other elements -->
::after
</div>
Теперь я предполагаю, что ваша тема Wordpress добавляет элемент after с background-color
некоторого значения, которое накладывается на изображение.И, установив фон этого элемента ::after
на none
, вы перезаписываете эти стили и избавляетесь от наложения.
Этот фрагмент более подробно описывает, что происходит в теме.
.some-div {
width: 20rem;
height: 20rem;
}
.img {
position: relative;
background-color: orangered;
width: 100%;
height: 100%;
}
.some-div:hover .img::after {
position: absolute;
top: 0;
left: 0;
content: "";
display: block;
width: 100%;
height: 100%;
background-color: black;
opacity: .3;
}
<div class="some-div">
<div class="img"></div>
<div>