Уменьшение блока и увеличение картинки при наведении на первый
.test {
background-color: black;
-webkit-transition: all 1s ease;;
-moz-transition: all 1s ease;;
-o-transition: all 1s ease;;
transition: all 1s ease;
overflow: hidden;
}
.test:hover {
transform: scale(0.9);
}
.test img {
margin: 100px;
transition: 1s;
width: 50rem;
}
.test img:hover {
transform: scale(1.2);
}
<div class="test">
<img style="width: 400px" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRP46lQKg17HWmKMsToy49X1cAAmGvIEQgA8Q&usqp=CAU">
</div>
Как одновременно уменьшить блок и увеличить картинку?
Ответы (2 шт):
Автор решения: Михаил Камахин
→ Ссылка
Как бы я сделал:
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
img {
display: block;
max-width: 100%;
}
.test {
cursor: pointer;
position: relative;
display: flex;
justify-content: center;
padding: 60px 0;
}
.test::before {
content: '';
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: black;
z-index: -1;
transition: transform 1s ease;
}
.test > img {
transition: transform 1s ease;
}
.test:hover::before {
transform: scale(0.9);
}
.test:hover > img {
transform: scale(1.1);
}
<div class="test">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRP46lQKg17HWmKMsToy49X1cAAmGvIEQgA8Q&usqp=CAU">
</div>
Поправил ваш код,
.test:hover img, а не .test img:hover
.test {
background-color: black;
-webkit-transition: all 1s ease;;
-moz-transition: all 1s ease;;
-o-transition: all 1s ease;;
transition: all 1s ease;
overflow: hidden;
}
.test:hover {
transform: scale(0.9);
}
.test img {
margin: 100px;
transition: 1s;
width: 50rem;
}
.test:hover img {
transform: scale(1.2);
}
<div class="test">
<img style="width: 400px" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRP46lQKg17HWmKMsToy49X1cAAmGvIEQgA8Q&usqp=CAU">
</div>
Автор решения: Zhihar
→ Ссылка
Так устроит?
основной смысл - вы все завязываете на наведение на родительский блок и все дочерние элементы отсчитываете от него, т.е.
parent {
}
parent:hover {
}
parent child {
}
parent:hover child {
}
т.е. не parent child:hover, а именно parent:hover child
.test {
background-color: black;
transition: all 0.5s ease;
overflow: hidden;
padding: 10px;
box-sizing: border-box;
width: 300px;
height: 200px;
}
.test:hover {
transform: scale(0.75);
}
.test img {
position: relative;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 25%;
transition: all 0.5s ease;
}
.test:hover img {
width: 100%;
}
<div class="test">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRP46lQKg17HWmKMsToy49X1cAAmGvIEQgA8Q&usqp=CAU">
</div>