CSS 鼠标悬停时让父元素和子元素以不同的方式进行变换

要在鼠标悬停时让父元素和子元素以不同的方式进行变换(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; /* 确保图片填充整个子元素 */
}

解释

  1. HTML:

    • 创建一个包含子元素的父元素 div
    • 子元素 div 包含一张图片。
  2. CSS:

    • .parent 类定义了父元素的样式,包括宽度、高度、背景色和居中对齐。overflow: hidden 确保内容不会溢出容器。
    • .child 类定义了子元素的样式,包括宽度、高度和过渡效果。
    • .parent:hover 类定义了鼠标悬停时父元素的变换效果,这里是旋转10度。
    • .parent:hover .child 类定义了鼠标悬停时子元素的变换效果,这里是放大1.2倍。
    • .child img 类确保图片填充整个子元素,并使用 object-fit: cover 使图片适应子元素的尺寸。

通过这种方式,你可以实现鼠标悬停时父元素和子元素以不同方式进行变换的效果。你可以根据需要调整变换的具体参数,如旋转角度和缩放比例。

相关推荐
c2385627 分钟前
HTTP 超文本传输协议全解:Web 世界的通信规则
前端·网络协议·http
gis开发之家27 分钟前
vue3组合式函数(Composables)的艺术——将业务逻辑从UI组件中连根拔起
前端·javascript·vue.js·前端框架·vue3·前端工程化·前端架构
uuai36 分钟前
vue导出pdf
前端·vue.js·pdf
小爷毛毛_卓寿杰1 小时前
我和 TRAE AI聊了聊,它帮我为五迷老师们做了个城市漫游小程序!
前端·人工智能·后端
liuniansilence1 小时前
一次讲透 H5 唤起原生 App:Scheme 协议、平台限制与生产级封装
前端·javascript
heiyehk1 小时前
我用AI不断迭代到7W行代码的项目-像素画编辑器
前端·架构·设计
weedsfly1 小时前
前端懒加载全家桶:图片、路由、组件的按需加载
前端·javascript·面试
千帆_Evan1 小时前
🤖 AI 写代码总在重复造轮子?我们把 Utils 复用门禁做进了 Agent 运行时(已开源)
前端·agent
Kel1 小时前
多 Tab 聊天不翻车:纯前端实现跨标签页消息同步的三层协同架构
前端·javascript·人工智能
半个落月1 小时前
Promise 入门:理解 async/await 与 Promise.all
前端·javascript