一、CSS 图片放大缩小
CSS 中可以通过设置 transform: scale() 属性实现图片的放大和缩小,这个属性的值为需要缩放的倍数,例如设置 transform: scale(2) 将会把图片放大到原图的两倍。我们也可以通过媒体查询来为不同分辨率设备设置不同的缩放比例:
@media screen and (min-width: 992px) {
.image-container {
transform: scale(1.5);
}
}
@media screen and (max-width: 991px) {
.image-container {
transform: scale(1);
}
}
以上代码将会在大屏幕设备上为图片容器设置 1.5 倍大小,小屏幕上保持原始尺寸。如果需要在移动端设备上禁用图片的缩放,可以使用下面的代码:
@media screen and (max-width: 640px) {
.image-container {
transform: none;
}
}
二、CSS 图片大小调整
CSS 中的 width 和 height 属性可以用来调整图片大小,例如:
img {
width: 200px;
height: 200px;
}
以上代码将会把图片的宽高设置为 200px。如果需要等比例缩放图片,可以只指定其中一个尺寸,并保持另一个尺寸自适应:
img {
width: 200px;
height: auto;
}
三、CSS 图片放大隐藏
有时候我们需要在鼠标悬停时将图片放大并显示相关的信息,这种效果可以通过 CSS 的 :hover 伪类实现。为了避免图片挤压其他元素,我们可以将图片容器的尺寸设为固定值,然后在放大时使用 transform-origin 属性将图片放大中心点调整到容器中心:
.image-container {
width: 300px;
height: 200px;
overflow: hidden;
}
.image-container img {
transition: transform .5s ease;
}
.image-container:hover img {
transform: scale(1.2);
transform-origin: center center;
}
四、CSS 图片放大不失真
如果我们通过 transform: scale() 将图片放大,有可能出现图片失真的情况。为了解决这个问题,我们可以将图片放大前的尺寸设置为图片容器的尺寸,并将图片的 object-fit 属性设为 cover:
.image-container {
width: 300px;
height: 200px;
overflow: hidden;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .5s ease;
}
.image-container:hover img {
transform: scale(1.2);
transform-origin: center center;
}
五、CSS 图片放大效果
CSS 中的 transition 属性以及 transform: scale() 和 opacity 属性可以结合使用,实现图片在鼠标悬停时缓慢放大并半透明显示的效果:
.image-container {
width: 300px;
height: 200px;
overflow: hidden;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .5s ease, opacity .5s ease;
}
.image-container:hover img {
transform: scale(1.2);
transform-origin: center center;
opacity: .5;
}
六、CSS 图片放大代码
下面是将图片作为按钮,在鼠标悬停时放大的简单示例:
.button-image {
width: 200px;
height: 200px;
overflow: hidden;
}
.button-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .3s ease;
}
.button-image:hover img {
transform: scale(1.2);
transform-origin: center center;
}
七、CSS 图片放大镜
可以通过在图片容器上叠加一个放大镜容器,然后根据鼠标位置计算放大镜的位置及显示区域,实现图片放大镜的效果。
.image-container {
position: relative;
width: 400px;
height: 300px;
overflow: hidden;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
}
.magnifier {
position: absolute;
width: 150px;
height: 150px;
border-radius: 50%;
border: 5px solid #FFF;
box-shadow: 0 0 5px rgba(0, 0, 0, .5);
background-size: 100% 100%;
visibility: hidden;
pointer-events: none;
}
.image-container:hover .magnifier {
visibility: visible;
}
八、CSS 图片放大超框代码
下面是一个简单的示例,将图片放在容器中,并可以通过按钮在不打乱页面布局的情况下将图片放大到超出容器的范围:
.container {
position: relative;
width: 400px;
height: 300px;
border: 1px solid #DDD;
overflow: hidden;
}
.container img {
width: 100%;
height: 100%;
object-fit: cover;
}
.overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, .5);
display: none;
justify-content: center;
align-items: center;
text-align: center;
color: #FFF;
}
.overlay.active {
display: flex;
}
.overlay img {
max-width: 95%;
max-height: 95%;
object-fit: contain;
}
.button {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
padding: 10px;
background: #333;
color: #FFF;
cursor: pointer;
}
HTML 部分:
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/243932.html
微信扫一扫
支付宝扫一扫