div下面有img,默认border: 2px solid transparent;hover变色的时候,图片会抖动一下

问题

需求:默认border: 2px solid transparent;hover变色

  1. 如何不让图片的div抖动(变大)
  2. 第一个会抖,第二个不会,不知道为什么,难道是图片色

抖动

在线查看

aa.gif

代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            height: 100%;
            width: 100%;
            display: flex;
            background-color: #f5f5f5;
            padding-top: 20px;
            padding-left: 20px;
        }

        .box-item {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 190px;
            height: 240px;
            box-sizing: border-box;
            border: 2px solid transparent;
            margin-right: 20px;
            margin-bottom: 20px;
            font-size: 0;
        }

        .box-item:hover {
            border: 2px solid blue;
        }

        img {
            width: 186px;
            height: 236px;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box-item">
            <img src="https://jingyu-social-test.oss-cn-shenzhen.aliyuncs.com/avg/library/asset/1616381894/605807c6b3a8e/preview.png"
                alt="">
        </div>
        <div class="box-item">
            <img src='https://jingyu-social-test.oss-cn-shenzhen.aliyuncs.com/avg/library/asset/1614937027/6041fbc358b7d/preview.png'
                alt="">
        </div>
    </div>
</body>

</html>
阅读 4.1k
6 个回答

说实话 我没看出来抖...

box-sizing: border-box;

这句注释掉是不是看起来不变大了

说实话,没看出来抖动,css是没问题的,或者你可以在codepen.io上复现一下?

新手上路,请多包涵

阿这..不抖啊..给你两张尺寸一样的图试试?
image
image

并没有, 怀疑下面的border导致的错觉, 建议给.box换一个深色的background-color再观察看一下吧

 .box-item {
            border: 2px solid transparent;
            }
新手上路,请多包涵

应该是 `
border 影响的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题