Я сейчас работаю над своим сайтом портфолио. Мои проекты перечислены в виде кликабельных изображений, расположенных в два столбца. Я хочу, чтобы, когда пользователь наводил курсор на изображение, цветной блок solid покрывал его заголовком проекта в центре. Примерно так: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_image_overlay_fade.
У меня все работало идеально, когда я использовал классы строки / столбца css, но так как я обнаружил, что он не очень отзывчив (включен мобильный, первый столбец накладывается поверх другого, что имеет смысл, но это не тот порядок, который я хочу), вместо этого я выровнял изображения с помощью float и padding. Теперь эффект наведения / ссылка растягивается по всей странице, а не содержится в области изображения.
Вот мой код для справки:
CSS
.container {
position: relative;
}
.image {
display: block;
height: auto;
}
.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity: 0;
height: 100%;
width: 100%;
transition: .5s ease;
}
.container:hover .overlay {
opacity: 1;
}
.text {
color: white;
font-size: 30px;
font-family: "Lato-Bold";
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
@media screen and (min-width: 1025px) {
.image {
float: left;
width: 45%;
padding-left: 40px;
padding-right: 15px;
padding-bottom: 30px;
}
}
HTML
<div class = "container">
<a href = "link"><img src="image name" class = "image"></a>
<div class="overlay" style = "background-color: #color;">
<div class="text">project title</div>
</div>
</div>
Как это исправить? Я попытался добавить display: block в класс .overlay. Я попытался сделать класс .overlay того же размера, что и изображение. Я также попытался обернуть ссылку вокруг класса контейнера, а не наоборот, как сейчас. Ничего не происходит вообще. Я также пытался настроить размер контейнера, но это сократило изображения и сложило их в 1 столбец: (