CSS之display:grid的用法和动态:before content内容

CSS Grid布局与动态:before内容
本文介绍如何利用CSS Grid属性实现指定行列的数据展示,并通过动态:before内容展示自定义属性值。探讨了display:grid的多种用法及grid-row-start等属性的应用技巧。

项目诉求:

突然有个需求,就是 指定行列,并呈现N字型展示数据,如下所示:

在这里插入图片描述
有纠结是用display:flex 还是 display:grid

display N字型 N字型属性 指定行列 指定行列顺序
flex flex-direction: column-reverse; × 无相关属性
gird × 无相关属性 grid-template-columns: repeat(列数, 150px);grid-template-rows: repeat(行数, 150px);

最终觉得使用display:grid,因为他有个属性是gridRowStart可以解决定位问题
逻辑处理方案:gridRowStart: Math.abs((index % row) - row)(row:行数)。
只需要指定开始行,他就会排列整齐

1. display:grid的用法

属性 参数 定义
display: grid 块级元素
display:inline-grid 行内块元素
grid-template-columns 100px 100px 100px 总共三列,每列列宽是100px
grid-template-columns repeat(3,100px) 重复3次,每次100px
grid-template-columns repeat(auto-fill, 100px) 如果容器大小不固定,项目大小固定,可以用auto-fill关键字自动填充
grid-template-columns 1fr 2fr 就表示后者是前者的两倍
grid-template-columns 400px 1fr 2fr 就表示后者是前者的两倍
grid-template-rows 100px 100px 100px 总共三行,每行行宽是100px
grid-template-rows repeat(3,100px) 重复3次,每次100px
grid-gap 5px 行、纵间距
grid-row-start 1,2,3… 行开始位置【指卡片cell】
grid-column-start 1,2,3… 列开始位置【指卡片cell】

注意:设置为grid后,子元素的float,display: inline-block,display: table-cell、vertical-align和column-*等设置都将失效。
博客链接

2.动态:before content内容

1.html 块中自定义属性:如下例 data-index
:data-index="index + 1"

<Checkbox v-for="(item, index) in emappingsObj.units" :data-index="index + 1">
	{
  
  { item.panel }}
</Checkbox>

2.css中获取该属性
content: attr(data-index);

3.完整代码:

  • html
<!--:label="`${index + 1}:${item.panel}`" 是为了获取checkbox显示值和实际值-->
<div class="first-mode-card" :style="{ '--column': emappingsObj.column, '--row': emappingsObj.row }">
	<CheckboxGroup v-model="checkAllGroup">
		<Checkbox
			v-for="(item, index) in emappingsObj.units"
			:label="`${index + 1}:${item.panel}`" 
			:key=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值