element+element
применяется к следующему немедленному элементу, который вы идентифицируете после первого элемента.Он не ищет в DOM, ища элемент.
Например ....
.foo+.bar {color:#f00}
<div class="foo"></div>
<div class="bar"></div> --- This gets selected
<div class="foo"></div>
<div class="zanza"</div>
<div class="bar"></div> --- This does not
Итак, ваш CSS должен выглядеть так:
.foto:hover + .title {...}
.foto:hover + .title + .text {...}
.foto:hover + .title + .text + .subtitle {...}
Или чтобы избежать наложения столь большого количества селекторов, вы можете использовать ~
для выбора элементов одного уровня в DOM:
.foto:hover ~ .title {...}
.foto:hover ~ .text {...}
.foto:hover ~ .subtitle {...}
Помните, ваш HTML читается сверху вниз, и выне в состоянии предназначаться для предыдущих родственных элементов с CSS.Итак, прямо сейчас, так как вы структурировали свой HTML, вы не можете выбрать элемент .headline
на основе изображения :hover
, потому что .headline
стоит первым.