要在鼠标悬停时让父元素和子元素以不同的方式进行变换(transform
),可以分别设置它们的 transform
属性,并使用 transition
来实现平滑的效果。以下是一个示例,展示了如何实现这一效果。
HTML 结构
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Parent and Child Transform on Hover</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="parent">
<div class="child">
<img src="your-image.jpg" alt="Sample Image">
</div>
</div>
</body>
</html>
CSS 样式
css
/* styles.css */
.parent {
width: 300px; /* 根据需要调整 */
height: 300px; /* 根据需要调整 */
overflow: hidden; /* 确保内容不会溢出容器 */
background-color: #f0f0f0; /* 可选背景色 */
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.3s ease-in-out; /* 平滑过渡效果 */
}
.child {
width: 100%;
height: 100%;
transition: transform 0.3s ease-in-out; /* 平滑过渡效果 */
}
.parent:hover {
transform: rotate(10deg); /* 父元素旋转10度 */
}
.parent:hover .child {
transform: scale(1.2); /* 子元素放大1.2倍 */
}
.child img {
width: 100%;
height: 100%;
object-fit: cover; /* 确保图片填充整个子元素 */
}
解释
-
HTML:
- 创建一个包含子元素的父元素
div
。 - 子元素
div
包含一张图片。
- 创建一个包含子元素的父元素
-
CSS:
.parent
类定义了父元素的样式,包括宽度、高度、背景色和居中对齐。overflow: hidden
确保内容不会溢出容器。.child
类定义了子元素的样式,包括宽度、高度和过渡效果。.parent:hover
类定义了鼠标悬停时父元素的变换效果,这里是旋转10度。.parent:hover .child
类定义了鼠标悬停时子元素的变换效果,这里是放大1.2倍。.child img
类确保图片填充整个子元素,并使用object-fit: cover
使图片适应子元素的尺寸。
通过这种方式,你可以实现鼠标悬停时父元素和子元素以不同方式进行变换的效果。你可以根据需要调整变换的具体参数,如旋转角度和缩放比例。