【CSS】实现鼠标悬停图片放大的几种方法

1.背景图片放大

使用css设置背景图片大小100%,同时设置位置和过渡效果,然后使用:hover设置当鼠标悬停时修改图片大小,实现悬停放大效果。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试</title>
    <style>
        .box{
            border: 5px solid black;
            width: 400px;
            height: 400px;
            margin: 100px auto;
            background-image: url(./1.png);
            /* 设置背景大小为100% */
            background-size: 100%;
            /* 设置背景图片位置 */
            background-position: 50% 50%;
            /* 添加过渡效果 */
            transition: all 1s;
        }
        .box:hover{
            /* 鼠标悬停时放大 */
            background-size: 120%;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

2.img图片放大

在div中添加img元素,给div添加弹性布局保证图片始终位于居中位置,当鼠标悬停于img时修改图片大小。

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试</title>
    <style>
        .box {
            border: 5px solid black;
            width: 400px;
            height: 400px;
            margin: 100px auto;
            /* 设置溢出隐藏 */
            overflow: hidden;
            /* 使用弹性布局保证图片居中 */
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .box img {
            /* 设置大小 */
            width: 100%;
            height: 100%;
            /* 给图片添加过渡效果 */
            transition: all 1s;
        }

        .box img:hover {
            /* 鼠标悬停放大 */
            width: 120%;
            height: 120%;
        }
    </style>
</head>

<body>
    <div class="box">
        <img src="./1.png" alt="">
    </div>
</body>

</html>

3.使用transform: scale(1)

使用这一方法与img放大类似,不过好处是不用手动设置图片居中,transform: scale(1);会在原位置上放大。

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试</title>
    <style>
        .box {
            border: 5px solid black;
            width: 400px;
            height: 400px;
            margin: 100px auto;
            /* 设置溢出隐藏 */
            overflow: hidden;
        }

        .box img {
            width: 100%;
            height: 100%;
            /* 设置放大比例 */
            transform: scale(1);
            /* 给图片添加过渡效果 */
            transition: all 1s;
        }

        .box img:hover {
            /* 修改放大比例 */
            transform: scale(1.2);
        }
    </style>
</head>

<body>
    <div class="box">
        <img src="./1.png" alt="">
    </div>
</body>

</html>
相关推荐
IT_陈寒10 小时前
Java 17 新特性实战:这5个隐藏功能让你的代码效率提升50%
前端·人工智能·后端
艾小码10 小时前
2025年组件化开发这样做,效率提升300%
前端·javascript
驭风少年君17 小时前
《搭建属于自己的网站之网页前端学习》基础入门
前端·学习
刘一说18 小时前
深入理解 Spring Boot 嵌入式 Web 容器:从原理到性能调优
前端·spring boot·firefox
你的人类朋友18 小时前
设计模式的原则有哪些?
前端·后端·设计模式
!执行18 小时前
Web3 前端与合约交互
前端·web3·1024程序员节
潘小安18 小时前
跟着 AI 学(二)- Quill 接入速通
前端
十里-18 小时前
在 Vue2 中为 Element-UI 的 el-dialog 添加拖拽功能
前端·vue.js·ui
shada19 小时前
从Google Chrome商店下载CRX文件
前端·chrome
左耳咚19 小时前
项目开发中从补码到精度丢失的陷阱
前端·javascript·面试