新闻界面 热点事件 热点新闻
<div style="width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 24px;"> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> </div> .item { height: 350px; }
<style> /* 为网格容器添加边框 */ .grid-container { border: 2px solid #ff0000; /* 容器外围边框 */ border-radius: 8px; /* 可选圆角效果 */ padding: 24px; /* 创建内边距让边框可见 */ box-sizing: border-box; /* 防止边框影响尺寸 */ display: grid; grid-template-rows: 100px 100px 100px; grid-template-columns: 200px 200px 200px 200px ; gap: 0px; /* 网络的间隔 */ } .item { background-color: #00a2d4; border: 2px solid #000; /* 网格项边框 */ margin: -1px; /* 关键:负边距抵消重叠 */ box-sizing: border-box; /* 防止边框影响尺寸 */ } </style> <div class="grid-container" > <div class="item" ></div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> <div class="item">34</div> </div>
注解:如果多一行,那么就是默认=没有高度。
/* 为网格容器添加边框 */ .grid-container { border: 2px solid #ff0000; /* 容器外围边框 */ border-radius: 8px; /* 可选圆角效果 */ padding: 24px; /* 创建内边距让边框可见 */ box-sizing: border-box; /* 防止边框影响尺寸 */ display: grid; grid-template-rows: 100px 100px 100px; grid-template-columns: 200px 200px 200px auto; gap: 0px; /* 网络的间隔 */ }
最后一列 就随着屏幕宽而变化。
<view style="display: grid; grid-template-columns: 1fr 1fr; gap: 20rpx; text-align: right; padding: 20rpx;"> //grid-template-columns: 1fr 1fr; 这是定义有2列 1fr是宽相等铺满。 跟flex:1差不多。 <view class="sort_item act" > <text >数量从小到大</text> </view> <view class="sort_item " > <text>数量从大到小</text> </view> <view class="sort_item " > <text>时间从晚到早</text> </view> <view class="sort_item " > <text>时间从早到晚</text> </view> <view class="sort_item " > <text>单价从小到大</text> </view> <view class="sort_item " > <text>单价从大到小</text> </view> </view>
/* 容器定义 */ .container { display: grid; grid-template-rows: auto 1fr auto; /* 三行:第一、三行高度自适应,第二行占剩余空间 */ grid-template-columns: 1fr 1fr; /* 定义两列,各占1份 */ gap: 10px; /* 行列间距 */ height: 100vh; /* 容器高度为视口高度(可根据需求调整) */ } /* 第一行元素(整行) */ .row1 { grid-column: 1 / -1; /* 跨所有列 */ background: #f0f0f0; } /* 第二行元素(分为两列) */ .row2-left { grid-column: 1 / 2; /* 占据第一列 */ background: #ffcccc; } .row2-right { grid-column: 2 / 3; /* 占据第二列 */ background: #ccffcc; } /* 第三行元素(整行) */ .row3 { grid-column: 1 / -1; /* 跨所有列 */ background: #ccccff; } <div class="container"> <div class="row1">第一行(整行)</div> <div class="row2-left">第二行左列</div> <div class="row2-right">第二行右列</div> <div class="row3">第三行(整行)</div> </div>
这种布局
<view class="center"> <block wx:for="{{navigatorList}}" wx:key="index"> <view bind:tap="item_click" class="{{index === 0 ? 'item1' : 'item'}}"> <view> <image src="{{baseURL+item.imageUrl}}" /> </view> <text>{{item.name}}</text> </view> </block> </view> /* 容器样式 */ .center { display: grid; grid-template-columns: 1.5fr 1fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 10rpx; height: 250rpx; color: white; } /* 第一个元素 */ .item1 { grid-row: 1 / 3; grid-column: 1 / 2; background: linear-gradient(135deg, #6e8dff63, #2196F3);/* 蓝紫色渐变 */ padding: 20rpx; text-align: center; font-size: 28rpx; /* 新增代码 */ display: flex; flex-direction: column; align-items: center; /* 垂直居中 */ justify-content: center; /* 水平居中 */ } .item1 image{ height: 50rpx; width: 50rpx; } /* 其他元素 */ .item { padding: 20rpx; color: #fff; /* 统一文字颜色 */ font-weight: 500; text-align: center; font-size: 28rpx; /* 新增代码 */ display: flex; flex-direction: column; align-items: center; /* 垂直居中 */ justify-content: center; /* 水平居中 */ } .item image{ height: 30rpx; width: 30rpx; } /* 为每个item单独设置渐变 */ .item:nth-child(2) { background: linear-gradient(45deg, #2196F3, #03A9F4); /* 蓝绿渐变 */ } .item:nth-child(3) { background: linear-gradient(45deg, #9c27b03d, #d05ae4); /* 粉色调渐变 */ } .item:nth-child(4) { background: linear-gradient(45deg, #ffd200, #f7971e); /* 橙黄色渐变 */ } .item:nth-child(5) { background: linear-gradient(45deg, #f4433669, #F44336); /* 蓝青色渐变 */ }
容器设置
display: grid
声明容器为Grid布局12。
grid-template-rows
定义三行高度:第一、三行高度由内容决定(auto
),第二行占剩余空间(1fr
)8。
grid-template-columns: 1fr 1fr
将第二行划分为两列等宽区域5。
跨列控制
第一行和第三行通过 grid-column: 1 / -1
跨所有列(从第1列起始到最后一列结束)58。
第二行的两列分别通过 grid-column: 1/2
和 2/3
定位到对应列57。
响应式优化
若需响应式调整列数,可使用 repeat(auto-fill, minmax(260px, 1fr))
自动填充列(需调整容器宽度)5。
站长微信:xiaomao0055
站长QQ:14496453