uniapp中实现两栏布局

<template>
    <view class="">
        <view class="grid-container">
            <view class="grid-item" v-for="(item, index) in gridItems" :key="index">
                <view class="">
                    <image style="width: 100%;height: 300rpx;" :src="item.img" mode=""></image>

                </view>
                <view class=""
                    style="padding:20rpx 15rpx 0rpx 20rpx;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;">
                    <text>{{ item.title }}</text>
                </view>
                <view class="" style="margin-top: 15rpx;padding:0rpx 20rpx 20rpx 20rpx;text-align:left;">
                    <text style="color: #F97D2B ;">¥{{ item.oldpri }}</text>
                    <text
                        style=" padding-left: 15rpx;text-decoration-line:line-through;font-size: 24rpx;color: #999999 ;">¥{{ item.oldpri }}</text>
                </view>
            </view>
        </view>
        <empty v-if="gridItems.length=='0'" :title="'暂无数据 ...'"></empty>
    </view>

</template>

<script>
    export default {
        data() {
            return {
                // 宫格数据
                gridItems: [{
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },
                    {
                        img: "/static/images/allIcon/shopbook.png",
                        title: "路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌路野掌",
                        oldpri: "23.85",
                        newpri: "12"

                    },

                ]
            }
        }
    }
</script>

<style>
    .grid-container {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        /* padding: 20rpx; */
    }


    .grid-item {
        width: calc(50% - 40rpx);
        /* 假设你有2列,并且有间距 */
        margin-bottom: 20rpx;
        background-color: #fff;
        text-align: center;
        box-sizing: border-box;
        overflow: hidden;
        border-radius: 15rpx;
    }

    /* 响应式设计,根据屏幕宽度调整宫格列数 */
    @media (max-width: 768px) {
        .grid-item {
            width: calc(50% - 15rpx);
            /* 在小屏幕设备上显示两列 */
        }
    }

    @media (max-width: 480px) {
        .grid-item {
            width: calc(50% - 15rpx);
        }
    }
</style>

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uniapp实现底部导航栏凸起可以通过自定义组件和flex布局实现。 1. 创建自定义组件 在Uniapp项目创建一个自定义组件,组件包含一个`tab-bar`容器和几个`tab-item`,示例代码如下: ```html <template> <div class="tab-bar"> <div class="tab-item" :class="{active: activeIndex === 0}" @click="handleTabClick(0)"> <img src="/static/home.png" alt=""> <span>首页</span> </div> <div class="tab-item" :class="{active: activeIndex === 1}" @click="handleTabClick(1)"> <img src="/static/category.png" alt=""> <span>分类</span> </div> <div class="tab-item" :class="{active: activeIndex === 2}" @click="handleTabClick(2)"> <img src="/static/cart.png" alt=""> <span>购物车</span> </div> <div class="tab-item" :class="{active: activeIndex === 3}" @click="handleTabClick(3)"> <img src="/static/user.png" alt=""> <span>我的</span> </div> <div class="tab-item-center" @click="handleTabClick(-1)"> <img src="/static/center.png" alt=""> </div> </div> </template> <script> export default { props: { activeIndex: { type: Number, default: 0 } }, methods: { handleTabClick(index) { this.$emit('tab-click', index) } } } </script> <style> .tab-bar { display: flex; justify-content: space-between; align-items: center; background-color: #fff; height: 60px; padding: 0 20px; box-shadow: 0 -4px 4px rgba(0, 0, 0, 0.1); } .tab-item { display: flex; flex-direction: column; justify-content: center; align-items: center; font-size: 12px; color: #666; } .tab-item.active { color: #2d8cf0; } .tab-item img { width: 24px; height: 24px; margin-bottom: 6px; } .tab-item-center { position: absolute; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; background-color: #2d8cf0; display: flex; justify-content: center; align-items: center; box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1); } .tab-item-center img { width: 32px; height: 32px; } </style> ``` 2. 使用自定义组件 在需要使用底部导航栏的页面,引入自定义组件并使用`flex`布局,示例代码如下: ```html <template> <div class="page"> <div class="content"> <!-- 页面内容 --> </div> <TabBar :active-index="activeIndex" @tab-click="handleTabClick" /> </div> </template> <script> import TabBar from '@/components/tab-bar' export default { components: { TabBar }, data() { return { activeIndex: 0 } }, methods: { handleTabClick(index) { if (index === -1) { // 间凸起部分被点击 // 处理逻辑 } else { // 底部导航栏被点击 // 处理逻辑 } } } } </script> <style> .page { display: flex; flex-direction: column; height: 100%; } .content { flex: 1; } </style> ``` 以上代码,将自定义组件`TabBar`作为页面的底部导航栏,使用`flex`布局将页面内容和底部导航栏放在同一个容器,可以实现底部导航栏凸起的效果。 需要注意的是,自定义组件的`tab-item-center`元素使用了绝对定位,需要手动调整其位置和样式。在页面处理底部导航栏被点击的事件,可以通过`$emit`方法将事件传递给父组件处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值