当前位置: 首页 > news >正文

当img占不满div时,图片居中显示,两侧加当前图片模糊效果

当img占不满div时,图片居中显示,两侧加当前图片模糊效果

目录

    • 实现效果
    • 解决方案
      • 方案一:使用 CSS 伪元素实现模糊背景效果
      • 方案二:使用额外的背景元素
      • 方案三:使用双层图片结构
      • 推荐方案
        • 推荐使用方案一,因为它:
        • 关键点解释:

实现效果

当img占不满div时,图片居中显示,两侧加当前图片模糊效果

解决方案

方案一:使用 CSS 伪元素实现模糊背景效果

.video_list {.text_pics_box_item_img_box {width: 200px;height: 100px;position: relative;overflow: hidden;display: flex;align-items: center;justify-content: center;&::before {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-image: var(--bg-image);background-size: cover;background-position: center;background-repeat: no-repeat;filter: blur(10px);transform: scale(1.1);z-index: 1;}::v-deep {.el-image {position: relative;z-index: 2;max-width: 100%;max-height: 100%;width: auto;height: auto;}}}
}

然后在模板中为 el-image 添加样式绑定:

<div class="text_pics_box_item_img_box"v-if="item.video_cover_imgs.length":style="{'--bg-image': `url(${item.video_cover_imgs[0]})`}"><el-image :src="item.video_cover_imgs[0]" fit="contain"></el-image>
</div>

方案二:使用额外的背景元素

.video_list {.text_pics_box_item_img_box {width: 200px;height: 100px;position: relative;overflow: hidden;.blur-background {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;filter: blur(10px);transform: scale(1.1);z-index: 1;}::v-deep {.el-image {position: relative;z-index: 2;max-width: 100%;max-height: 100%;width: auto;height: auto;}}}
}

对应的模板代码:

<div class="text_pics_box_item_img_box"v-if="item.video_cover_imgs.length"><div class="blur-background" :style="{backgroundImage: `url(${item.video_cover_imgs[0]})`}"></div><el-image :src="item.video_cover_imgs[0]" fit="contain"></el-image>
</div>

方案三:使用双层图片结构

.video_list {.text_pics_box_item_img_box {width: 200px;height: 100px;position: relative;overflow: hidden;.blur-img {position: absolute;top: 0;left: 0;width: 100%;height: 100%;::v-deep {.el-image__inner {width: 100%;height: 100%;object-fit: cover;filter: blur(10px);transform: scale(1.1);}}}.main-img {position: relative;z-index: 2;max-width: 100%;max-height: 100%;::v-deep {.el-image__inner {max-width: 100%;max-height: 100%;width: auto;height: auto;object-fit: contain;}}}}
}

对应的模板代码:

<div class="text_pics_box_item_img_box"v-if="item.video_cover_imgs.length"><div class="blur-img"><el-image :src="item.video_cover_imgs[0]"></el-image></div><div class="main-img"><el-image :src="item.video_cover_imgs[0]"></el-image></div>
</div>

推荐方案

推荐使用方案一,因为它:
  1. 代码简洁,只需一个额外的伪元素
  2. 性能较好,不需要额外的DOM元素
  3. 易于维护和修改
  4. 使用CSS变量动态设置背景图,灵活性高
关键点解释:
  1. filter: blur(10px) 创建模糊效果
  2. transform: scale(1.1) 防止模糊边缘出现白边
  3. z-index确保清晰图片在模糊背景之上
  4. object-fit: contain 保持图片比例完整显示
  5. 使用CSS变量动态设置背景图片路径
http://www.lryc.cn/news/619990.html

相关文章:

  • 如何记录日常笔记?
  • 【Linux学习|黑马笔记|Day3】root用户、查看权限控制信息、chmod、chown、快捷键、软件安装、systemctl、软连接、日期与时区
  • 语音交互像聊天:声网RTC技术给AI客服加温度
  • 基于 MybatisPlus 将百度天气数据存储至 PostgreSQL 数据库的实践
  • 开发避坑指南(25):MySQL不支持带有limit语句的子查询的解决方案
  • Java研学-RabbitMQ(六)
  • 算法题详细解析 + 代码 + 注释
  • 在 uniapp 里使用 unocss,vue3 + vite 项目
  • 数据结构初阶(12)排序算法—插入排序(插入、希尔)(动图演示)
  • 智驾系统架构解析
  • 常用机器学习公开数据集大全
  • [系统架构设计师]系统架构基础知识(一)
  • [系统架构设计师]信息安全技术基础知识(三)
  • DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
  • 最新去水印小程序系统 前端+后端全套源码 多套模版 免授权
  • TF-IDF实战——《红楼梦》文本分析
  • 商品分类拖拽排序设计
  • 用 Qt C++ 从零打通“前端界面 → 后端接口”的数据交互
  • Redis的基础命令
  • 图像分类-动手学计算机视觉10
  • RabbitMQ:Windows版本安装部署
  • 高防CDN和高防IP的各自优势
  • Vue项目生产环境性能优化实战指南
  • 【Java虚拟机】JVM内存模型
  • uniapp跨端性能优化方案
  • 中科米堆CASAIM蓝光三维扫描仪用于焊接件3D尺寸检测
  • GDB命令笔记
  • 【React】use-immer vs 原生 Hook:谁更胜一筹?
  • Chrome 插件开发实战
  • AutoCAD 各版本与插件合集详解:Architecture、Plant 3D、Civil 3D 等