У вас есть эта проблема, потому что вы установили селектор :hover
для вашего контейнера, который принимает полную высоту и ширину.Таким образом, в тот момент, когда вы входите в окно, срабатывает :hover
.
Установите контейнер на display: inline-flex
, удалите height
, а затем установите контейнер там, где он вам нужен, относительно его родителя.
Не добавлен родительский элемент и не размещен контейнер в примере, скажите, хотите ли вы, чтобы я.
Редактировать
Добавленоцентрирование в этом примере.(См. Html и стили тела)
html, body {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.container {
display: inline-flex;
justify-content: center;
align-items: center;
position: relative;
margin: auto;
}
.image {
width: 400px;
height: 400px;
display: block;
}
.middle {
transition: 2s ease;
position: absolute;
text-align: center;
opacity: 0;
}
.container:hover .image {
opacity: 0.3;
}
.container:hover .middle {
opacity: 1;
}
.text {
background-color: orange;
color: white;
font-size: 1em;
padding: 16px 32px;
text-transform: uppercase;
}