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

uni-app项目实战笔记5--使用grid进行定位布局

先来看效果:

效果图中呈三行排版,前2行每行3张图片,最后一行2张图片。每张图片顶部和底部都有一些文字,文字又有磨砂效果的背景样式。

下面介绍实现过程:

1.创建一个公共组件:theme-item,写入下面的代码:

<template><view class="themeItem"><navigator url="" class="box"><image class="pic" src="/common/images/classify1.jpg" mode="aspectFill"></image><view class="tab">3天前更新</view><view class="mask">明星美女</view></navigator></view>
</template>

CSS样式:

<style lang="scss" scoped>.themeItem{.box{height: 340rpx;border-radius: 10rpx;overflow: hidden;position: relative;.pic{width: 100%;height: 100%;}.mask{width: 100%;height: 70rpx;position: absolute;bottom: 0;left: 0;background: rgba(0, 0, 0, 0.2);color: #fff;display: flex;align-items: center;justify-content: center;backdrop-filter: blur(20rpx);font-weight: 600;font-size: 30rpx;}.tab{position: absolute;left:0;top:0;background: rgba(250,129,90,0.7);color: #fff;backdrop-filter: blur(20rpx);font-size: 22rpx;padding: 6rpx 14rpx;border-radius: 0 0 20rpx 0;transform: scale(0.8);transform-origin: left top;}}}
</style>

CSS代码说明:

  • 整体结构

       外层容器 .themeItem:作为样式的作用域容器

  • 主盒子 .box:

     固定高度 340rpx(rpx 是响应式单位)

     圆角 10rpx

    overflow: hidden 确保内容不超出边界

    相对定位(为内部绝对定位元素提供基准)

  • 内部元素

     1 图片.pic:

      宽高 100% 填满父容器

      显示为裁剪适应的图片

     2  底部遮罩层 .mask:

        绝对定位在底部

        高度 70rpx,宽度 100%

       半透明黑色背景 (rgba(0,0,0,0.2))

       白色文字,字体加粗 (font-weight: 600),字号 30rpx

       磨砂效果 (backdrop-filter: blur(20rpx))

       使用 flex 布局使内容水平垂直居中

    3  左上角标签 .tab:

        绝对定位在左上角

       橙红色半透明背景 (rgba(250,129,90,0.7))

       白色文字,较小字号 (22rpx)

       右下角圆角 (border-radius: 0 0 20rpx 0)

       缩放 80% (transform: scale(0.8)) 并保持左上角不动

       同样有磨砂效果

2.在主页面中引入theme-item组件:

<view class="content"><theme-item v-for="item in 8"></theme-item>
</view>

 CSS样式:

.content{margin-top: 50rpx;padding: 0 30rpx;display: grid;gap:15rpx;grid-template-columns: repeat(3,1fr);}

上面的代码引入grid进行排版布局:

网格布局 display: grid

启用 CSS Grid 布局系统

列定义 grid-template-columns: repeat(3, 1fr)

创建 3 列等宽 的网格

1fr 表示每列平均分配可用空间

间隙控制 gap: 15rpx

网格项之间的行/列间隙均为 15rpx

(比传统的 grid-gap 更简洁的写法)

http://www.xdnf.cn/news/13920.html

相关文章:

  • Qt的Modbus协议-RTU从站实现
  • 【redis——缓存击穿】
  • 202557读书笔记|《梦里花落知多少(轻经典)》——有你在的地方才最美
  • Docker Buildx 简介与安装指南
  • AQS独占模式——资源获取和释放源码分析
  • 43 C 语言 math.h 库函数详解:绝对值、数学运算、取整舍入、分解组合、三角反三角、双曲函数及宏定义常量
  • Claude Blender
  • java集合篇(一) ---- 集合的概述
  • 低成本同屏方案:电脑 + 路由器实现 50 台安卓平板实时同屏
  • 基于React Native的HarmonyOS 5.0房产与装修应用开发
  • 个典型的 Java 泛型在反序列化场景下“类型擦除 + 无法推断具体类型”导致的隐性 Bug
  • 【Google Chrome】谷歌浏览器历史版本下载
  • 基于Three.js的交互式国风博物馆设计与实现
  • 绿叶洗发水瓶-多实体建模拆图案例
  • 如何有效开展冒烟测试
  • 提升搜索可见度的基石:标题标签设置原则与SEO效能量化分析
  • DBever工具自适应mysql不同版本的连接
  • 【论文解读】rStar:用互洽方法增强 SLM(小型语言模型) 推理能力
  • React Native【实战范例】水平滚动分类 FlatList
  • 歌曲《我的家我的国》 构建对传统主旋律单向度超越
  • 图数据库介绍及应用,go和Java使用图数据库
  • python学习打卡day52
  • 并发编程-Synchronized
  • OpenCV——图像平滑
  • <teleport> 是 Vue 3 引入的一个内置组件,用于在 DOM 中移动组件的渲染位置,但保持组件的逻辑作用域不变
  • NLP 基础概念
  • CFCF2025光连接大会邀请函:昊衡科技诚邀您莅临光纤通信行业盛会,共话未来
  • 举例说明单片机,主循环和中断资源访问冲突的案例
  • 晶振的多面舞台:从日常电子到高精尖科技的应用探秘
  • RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法