小程序组件 —— 28 组件案例 - 推荐商品区域 - 实现结构样式

这一节目标是实现底部推荐商品的结构和样式,由于这里要求横向滚动,所以需要使用上节介绍的 scroll-view 功能,并使用 scroll-x 属性支持横向滚动,推荐商品区域中的每一个商品是一个单独的 view,每个view 中需要写三个组件:一个 image 渲染图片,两个 text 渲染文字;

下面我们打开微信开发者工具实现这个需求,在 index.wxml 中添加下面的代码:

typescript 复制代码
<view class="good-hot">
  <scroll-view scroll-x class="scroll-x">
    <view>
      <view class="good-item">
        <image src="../../assets/floor/1.png" mode="" />
        <text>鲜花玫瑰</text>
        <text>66</text>
      </view>
    </view>
    <view>
      <view class="good-item">
        <image src="../../assets/floor/2.png" mode="" />
        <text>鲜花玫瑰</text>
        <text>77</text>
      </view>
    </view>
    <view>
      <view class="good-item">
        <image src="../../assets/floor/3.png" mode="" />
        <text>鲜花玫瑰</text>
        <text>88</text>
      </view>
    </view>
    <view>
      <view class="good-item">
        <image src="../../assets/floor/4.png" mode="" />
        <text>鲜花玫瑰</text>
        <text>99</text>
      </view>
    </view>
    <view>
      <view class="good-item">
        <image src="../../assets/floor/5.png" mode="" />
        <text>鲜花玫瑰</text>
        <text>100</text>
      </view>
    </view>
  </scroll-view>
</view>

其主要功能是使用 scroll-x 构建一个横向滑动区域,使用 view 对每一个商品进行封装,每一个商品由一张 image 图片和两段 text 文本组成;对应的图片资源可以从 gitCode 中下载(图片源自尚硅谷,非个人所有,无意冒犯);

接着在 index.scss 中添加样式代码,如下:

css 复制代码
.scroll-x {
    width: 100%;
    white-space: nowrap;

    view {
      display: inline-block;
      width: 320rpx;
      height: 420rpx;
      margin-right: 16rpx;

      .good-item {
        display: flex;
        flex-direction: column;
        justify-content: space-between;

        text {
          &:nth-of-type(1) {
            font-weight: bold;
          }
        }
      }

      image {
        width: 100%;
        height: 320rpx;
      }

      &:last-child {
        margin-right: 0rpx;
      }
    }
  }
}

css 样式的具体功能为:

  • .scroll-x:
    • width: 100%;: 设置容器的宽度为100%
    • white-space: nowrap;: 防止子元素换行,从而实现水平滚动效果
  • view:
    • display: inline-block;: 将每个视图设置为行内块元素,使其在同一行显示
    • width: 320rpx;: 设置每个视图的宽度为320rpx(假设这是一个特定的单位,如在小程序中使用的rpx)
    • height: 420rpx;: 设置每个视图的高度为420rpx
    • margin-right: 16rpx;: 设置每个视图右侧的外边距为16rpx,增加视图之间的间距
  • .good-item:
    • display: flex;: 使用Flexbox布局
    • flex-direction: column;: 将子元素垂直排列
    • justify-content: space-between;: 在主轴(垂直方向)上均匀分布子元素
  • text:
    • &:nth-of-type(1): 选择第一个text元素
    • font-weight: bold;: 将第一个text元素的字体加粗
  • image:
    • width: 100%;: 设置图片的宽度为100%,即占满父容器的宽度
    • height: 320rpx;: 设置图片的高度为320rpx
  • &:last-child:
    • margin-right: 0rpx;: 移除最后一个视图右侧的外边距

最后得到的效果为:

参考视频:尚硅谷微信小程序开发教程

相关推荐
说私域3 小时前
公域流量转化困境下开源AI智能名片与链动2+1模式的S2B2C商城小程序应用研究
人工智能·小程序·开源
mon_star°7 小时前
瑜伽馆会员约课小程序页面功能梳理
小程序
知识分享小能手19 小时前
微信小程序入门学习教程,从入门到精通,WXML(WeiXin Markup Language)语法基础(8)
前端·学习·react.js·微信小程序·小程序·vue·个人开发
小咕聊编程19 小时前
【含文档+PPT+源码】基于微信小程序的在线考试与选课教学辅助系统
微信小程序·小程序·毕业设计·教学辅助系统
一匹电信狗19 小时前
【MySQL】数据库基础
linux·运维·服务器·数据库·mysql·ubuntu·小程序
知识分享小能手21 小时前
微信小程序入门学习教程,从入门到精通,微信小程序开发进阶(7)
前端·javascript·学习·程序人生·微信小程序·小程序·vue3
2501_915909061 天前
iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程
android·开发语言·ios·小程序·uni-app·php·iphone
软希网分享源码1 天前
WIFI大师小程序4.1.9独立版源码(源码下载)
小程序·wifi大师小程序
说私域1 天前
互联网新热土视角下开源AI大模型与S2B2C商城小程序的县域市场渗透策略研究
人工智能·小程序·开源
小咕聊编程1 天前
【含文档+PPT+源码】基于微信小程序的关爱老年人在线能力评估系统
微信小程序·小程序·毕业设计·老人能力评估