HTML、CSS:调整 IMG 的大小并在调整大小时进行过渡
HTML, CSS: Resizing the IMG with transitioning while resizing
我有这个代码...
<img class="logo" src="img/logo.jpg"> <!-- Logo size is 96x96 -->
...还有这个
.logo {
transition: .5s;
}
.logo:hover {
transition: .5s;
width: 128px;
height: 128px;
}
它会在悬停时调整大小,但不会在移动时调整。我只是悬停它,它会立即调整大小,我不知道为什么 transition
不起作用。
不需要为图像和悬停伪类定义相同的转换属性。如果在.logo:hover
中没有定义transition
,则取之前设置的值半秒。
这里的问题是您必须为图像指定初始宽度和高度才能顺利调整大小。
CSS 有几个问题导致它无法转换。
首先,正如@WaisKamal 所说,您需要设置要转换的初始状态。图像大小在 HTML 中自动调整,但这不是 CSS 的有效起点。
其次,您需要定义要转换的属性。
因此您需要添加宽度和高度。或者您可以使用 all
标识符:
.logo {
display:block; //make sure the image is a block element
width: 96px;
height: 96px;
transition: all 0.5s linear;
}
.logo:hover {
width: 128px;
height: 128px;
}
现在可以使用了,但是由于动画 height/width 会导致页面重绘,所以会有点卡顿。
相反,我建议在图片上使用 transform
。
.logo {
display:block; //make sure the image is a block element
// initial size is fine here because we're using a transform
transition: transform 0.5s ease-in-out;
}
.logo:hover {
transform: scale(2) // decimal notation 2 = 200% = 128x128px
}
我有这个代码...
<img class="logo" src="img/logo.jpg"> <!-- Logo size is 96x96 -->
...还有这个
.logo {
transition: .5s;
}
.logo:hover {
transition: .5s;
width: 128px;
height: 128px;
}
它会在悬停时调整大小,但不会在移动时调整。我只是悬停它,它会立即调整大小,我不知道为什么 transition
不起作用。
不需要为图像和悬停伪类定义相同的转换属性。如果在.logo:hover
中没有定义transition
,则取之前设置的值半秒。
这里的问题是您必须为图像指定初始宽度和高度才能顺利调整大小。
CSS 有几个问题导致它无法转换。
首先,正如@WaisKamal 所说,您需要设置要转换的初始状态。图像大小在 HTML 中自动调整,但这不是 CSS 的有效起点。
其次,您需要定义要转换的属性。
因此您需要添加宽度和高度。或者您可以使用 all
标识符:
.logo {
display:block; //make sure the image is a block element
width: 96px;
height: 96px;
transition: all 0.5s linear;
}
.logo:hover {
width: 128px;
height: 128px;
}
现在可以使用了,但是由于动画 height/width 会导致页面重绘,所以会有点卡顿。
相反,我建议在图片上使用 transform
。
.logo {
display:block; //make sure the image is a block element
// initial size is fine here because we're using a transform
transition: transform 0.5s ease-in-out;
}
.logo:hover {
transform: scale(2) // decimal notation 2 = 200% = 128x128px
}