位置: IT常识 - 正文

Element-Plus el-col、el-row快速布局

编辑:rootadmin
Element-Plus el-col、el-row快速布局 文章目录前言一、el-colspanpush & pull响应式offset二、el-rowgutterjustifyalign总结前言

推荐整理分享Element-Plus el-col、el-row快速布局,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

拖拉了一晚, 总结了一些Layout布局工具的使用方法.

一、el-col

本来打算先说row的… 写完看了一遍感觉还是换过来的好(捂脸). el-col是el-row的子元素.

在el-row添加

style="flex-direction: column;"

可以实现纵向排列el-col, 在需要纵向布局时可以使用, 横向col现在填满默认自动换行, 不需要特别规定;

span

规定一个col占据24份中的多少份. 倒也不是必加的属性… 当el-row中仅有一个el-col时, 该el-col默认占据全部的24份, 填满el-row. 但是如果多个el-col情况下不加, 效果会比较糟糕, 第一个el-col依旧占据第一行的全部24份, 但是其他el-col会被挤到换行(倒也不会挤出el-row), 就像这样: 黄, 蓝, 绿, 分别为第一二三个el-col, 都不传span值.

<el-row class="dark"> <el-col class="yellow"> <sy-author-1></sy-author-1> </el-col> <!-- 分隔 --> <el-col class="blue"> <div></div> </el-col> <!-- 分隔 --> <el-col class="green" > <div></div> </el-col> </el-row>* { transition: 1s;}.dark { background-color: rgb(137, 133, 133);}.yellow { background-color: rgb(176, 170, 80);}.green { background-color: rgb(85, 144, 135);}.blue { background-color: rgb(65, 115, 153);}

就说正常加span的情况下, 页面使用el-row后, 横向距离被等量的分为24份, el-col的span属性决定的是"这个el-col在横向占据24分之几个el-row". 比如这次span分别是8、5、8, 那么剩下3份空间没用上, 也就是右边的灰色部分, 暴露出el-row的颜色.

push & pull

pull和push控制col的横向位移, 以份为单位 最大值24超出无效. push和pull不会影响“横向被分为24份”这个规则, 比如第一个el-col被:push=“1”, 最后一个el-col被:pull=“1”, 中间的三个el-col还是可以各占8份, 只不过会有重叠的情况.

<el-row class="dark"> <el-col :span="8" class="yellow" :push="2"> <!-- 左边push两份 --> <sy-author-1></sy-author-1> </el-col> <!-- 分隔 --> <el-col class="blue" :span="8"> <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :span="8" :pull="2"> <!-- 右边pull两份 --> <div></div> </el-col></el-row>

虽然依旧各占8份, 但是蓝盒子被左右两侧遮盖了. 所有el-col没有发生尺寸上的变化.

响应式

提供一个专门的属性, 让使用者规定在该属性对应的分辨率下, col要怎样进行排列. 响应式属性(xs, lg等)接受传入对象类型和数字类型; 对象类型可用于规定offset和span等属性, 针对每个分辨率范围定制一套合适的样式:

属性说明xs小于768sm大等于768md大等于992lg大等于1200xl大等于1920

来写个栗子看一下, 规定小于768, 大于992, 大于1200时的排列: 这个例子有一些缺陷, 请读完例子下面的部分.

<el-row class="dark"> <el-col :xs="{ span: 22, push: 1, pull: 1 }" :md="{ span: 18, push: 3 }" :lg="{ span: 8, push: 1 }" class="yellow" > <div></div> </el-col> <!-- 分隔 --> <el-col :xs="{ span: 22, pull: 1, push: 1 }" :md="{ span: 16, push: 2 }" :lg="{ span: 8, push: 0 }" class="blue" > <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :xs="{ push: 1, pull: 1, span: 22 }" :md="{ span: 14, push: 1 }" :lg="{ span: 7, pull: 1, push: 0 }" > <div ></div> </el-col></el-row>

其实写案例的时候还发现了一个问题, 响应式方案里的属性是可以继承的, 这样说倒也不准确…

表现出来就是: 设置了md的push, span后, 如果不设置lg的push, 那么lg方案会采用用md方案的push / pull, 而不是默认的pull / push为0, 这个问题会发生在各组方案之间, 只要有一组方案缺少属性, 它就从上一组方案里拿属性:

<!-- 这里pull无效, 所以没写... --><!-- 因为蓝色块出的问题, 所以只放个蓝色块 --><el-col :md="{ span: 16, push: 2 }" :lg="{ span: 8 }" class="blue"> <div></div></el-col>

然后lg状态就变成这样了, 你可以看到蓝块左侧空出来了一块, 这就是lg方案从md偷的push:2. 这个时候再规定lg的push为0:

<el-col :md="{ span: 16, push: 2 }" :lg="{ span: 8, push:0 }" class="blue"> <div></div></el-col>

所以用响应式的时候, 规定方案要把每一项都详细规定好, 避免从其他方案继承到属性, 出现一些奇怪的效果.

pull在响应式方案里有时会失效, 比如我们现在这个例子, 我给了第三个col一个lg状态下的pull:1, 什么效果都没有: 但是在xs方案中, pull:1生效了: 也不是因为没有多余空间可以移动的问题, 事实是有多余空间它也无效… 没能解决这个问题.

offset

我把这个放在最后是因为写案例的时候出现了一点小状况, 我发现我的offset不能生效, 是那种…怎么改都不生效. 然后一次偶然, 我把css里的:

* { margin: 0; padding: 0; }Element-Plus el-col、el-row快速布局

删了, 然后解决了, 就挺无语的, 可能是el组件里的样式优先级比较低, 被覆盖了吧.

好吧, 那步入正题 offset规定col左侧的间隔份数, 它是真的能把col给挤到下一行的

<el-row class="dark"> <el-col :lg="{ span: 8, push: 0 }" class="yellow" > <div></div> </el-col> <!-- 分隔 --> <el-col :lg="{ span: 8, push: 0, pull: 0, offset: 9}" class="blue" > <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :lg="{ span: 8, pull: 0, push: 0 }" > <div></div> </el-col></el-row>

效果: 不要offset来做换行, 用响应式或者在el-row添加

style="flex-direction: column;"

会更好, offset达成的换行, 左侧会有空间, 就像上面动图的蓝块就是offset导致的换行, 不稳定而且难看.

二、el-row

“row” 中文即"排, 行"的意思, el-row组件即创建一行. 使用后自动占据页面横向全部空间, 并且把横向空间不可见的分割为24份. 在el-row添加

style="flex-direction: column;"

可以实现纵向排列el-col, 在需要纵向布局时可以使用, 横向col现在填满默认自动换行, 不需要特别规定;

gutter

官方给的解释是"控制栅格间距", 我理解的是控制el-col之间的横向间距, 其实这有点像justify-content,写在外面控制里面. 但是我写了一个demo来测试的时候, 发现它控制的似乎是el-col的子元素与el-col左边框的间距, 而并非el-col之间的间距. 以下面这段代码为例, 一个el-row里装了三个el-col, 初始gutter为0.

<el-row class="dark" :gutter="0"> <el-col :span="8" class="yellow"> <sy-author-1></sy-author-1> </el-col> <!-- 分隔 --> <el-col class="blue" :span="8"> <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :span="8"> <div></div> </el-col></el-row>

现在把gutter增加到80, 可以看到, el-col之间的距离始终是不变的:0, 但是除去最左边的组件, 每个el-col的子元素和它们所在el-col的左边距都增加了.

这次增加是由el-col宽度的双向扩大和子元素向右位移共同完成的: 那么这是对于一个子元素, 如果对于多个同在一行的子元素, 全部子元素的左边距也并不会都增加: 这些子元素更像是被看作一个整体.

justify

el-row中所有el-col的横向对齐方式. 但这是建立在el-row横向还有空间的前提下, 如果el-row横向24份已经塞得满满当当, 那这个属性给什么值都不会有效果的.

属性可取值justifystart / end / center / space-around / space-between / space-evenly

那还是用第一段代码举例:

<el-row class="dark" justify="center"> <!-- 居中对齐 --> <el-col :span="8" class="yellow"> <sy-author-1></sy-author-1> </el-col> <!-- 分隔 --> <el-col class="blue" :span="5"> <!-- 注意这里改成5了, 我们不能把el-row填满 --> <div></div> <span>哦哦哦</span> </el-col> <!-- 分隔 --> <el-col class="green" :span="8"> <div></div> </el-col></el-row>

那现在可以看到现在el-col都挤到中央了, 其实这个挺像justify-content的.(弹性布局) 他们封装的时候是不是就拿这个直接给justify-content传值的…我猜… 然后space-between情况下: 均匀分布两侧贴边.

在el-col分多行的情况下:justify=“end”:

<el-row class="dark" justify="end"> <el-col :lg="{ span: 8, push: 0 }" class="yellow" > <div></div> </el-col> <!-- 分隔 --> <el-col :lg="{ span: 8, push: 0, pull: 0, offset: 9}" class="blue" > <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :lg="{ span: 8, pull: 0, push: 0 }" > <div></div> </el-col></el-row>

效果:

align

el-row中所有el-col的纵向对齐方式, 前提是纵向还有空间, 所以规定el-col的高度应该会是不错的选择, 不然纵向默认填满el-row, 这个属性就彻底失效了. 三个可用值:

属性可用值aligntop / middle / bottom

默认是top, 这个情况下不给el-col高度, el-col也会在纵向占满el-row, 但是另外两个属性…

align="bottom"

align="middle"

多行情况:

<el-row class="dark" align="middle"> <el-col :lg="{ span: 8, push: 0 }" class="yellow" > <div></div> </el-col> <!-- 分隔 --> <el-col :lg="{ span: 8, push: 0, pull: 0, offset: 9 }" class="blue" > <div></div> </el-col> <!-- 分隔 --> <el-col class="green" :lg="{ span: 8, pull: 0, push: 0 }" > <div></div> </el-col></el-row>* { transition: 1s;}.dark { height: 500px; background-color: rgb(137, 133, 133);}.yellow { background-color: rgb(176, 170, 80); height: 100px;}.green { background-color: rgb(85, 144, 135); height: 100px;}.blue { background-color: rgb(65, 115, 153); height: 100px;}

总结

约到一场15日的面试, 但是封校不得不推掉了, 很难受.

如果这篇文章帮到你, 我很荣幸.

本文链接地址:https://www.jiuchutong.com/zhishi/293081.html 转载请保留说明!

上一篇:前端项目如何部署到服务器实现网址访问(前端项目如何部署到服务器)

下一篇:蒙大拿州西部的小雪羊 (© Donald M. Jones/Minden Pictures)(蒙大拿州美景)

  • 浅谈未来几种网赚的可行性!(未来网络发展趋势有哪些)

    浅谈未来几种网赚的可行性!(未来网络发展趋势有哪些)

  • rog5s和rog5spro区别(rog5s和5spro知乎)

    rog5s和rog5spro区别(rog5s和5spro知乎)

  • 红米note11怎么显示电池百分比(红米手机note11)

    红米note11怎么显示电池百分比(红米手机note11)

  • 苹果耳机模式怎么改为正常模式(苹果耳机模式怎么调)

    苹果耳机模式怎么改为正常模式(苹果耳机模式怎么调)

  • 荣耀30有几倍变焦呢(荣耀30s 20倍变焦)

    荣耀30有几倍变焦呢(荣耀30s 20倍变焦)

  • 苹果锁屏后不显示时间(苹果锁屏后不显示时间和日期)

    苹果锁屏后不显示时间(苹果锁屏后不显示时间和日期)

  • 华为荣耀20pro的上市时间(华为荣耀20pro的OTG功能在哪)

    华为荣耀20pro的上市时间(华为荣耀20pro的OTG功能在哪)

  • 微信右上角三个点不见了(微信右上角三个点)

    微信右上角三个点不见了(微信右上角三个点)

  • 清单编码12位数含义(清单编码是多少位数)

    清单编码12位数含义(清单编码是多少位数)

  • 手机屏幕边缘发黄(手机屏幕边缘发绿)

    手机屏幕边缘发黄(手机屏幕边缘发绿)

  • 网页版是什么意思(网页版的)

    网页版是什么意思(网页版的)

  • 抖音直播同城的人进不来是什么情况(抖音直播同城的人进不了直播间)

    抖音直播同城的人进不来是什么情况(抖音直播同城的人进不了直播间)

  • 拼多多上可以和好友聊天吗(拼多多上和平精英车皮肤是真的吗)

    拼多多上可以和好友聊天吗(拼多多上和平精英车皮肤是真的吗)

  • 操作系统是计算机系统的一种什么软件

    操作系统是计算机系统的一种什么软件

  • 华为frdal00是什么型号(华为frlan00a是什么型号手机)

    华为frdal00是什么型号(华为frlan00a是什么型号手机)

  • 华为收藏的文件在哪里(华为收藏的文件怎么发到朋友圈里)

    华为收藏的文件在哪里(华为收藏的文件怎么发到朋友圈里)

  • oppor15x录屏功能在哪(oppor15x录屏怎么录声音)

    oppor15x录屏功能在哪(oppor15x录屏怎么录声音)

  • 魅族16T怎么更新软件(魅族16x怎么更新flyme8)

    魅族16T怎么更新软件(魅族16x怎么更新flyme8)

  • wps如何删除所有空白行(wps如何删除所有空格)

    wps如何删除所有空白行(wps如何删除所有空格)

  • ip11支持5g吗(ip11可以用5g网络吗)

    ip11支持5g吗(ip11可以用5g网络吗)

  • 卡贴多久封一次(卡贴一般用多久会坏)

    卡贴多久封一次(卡贴一般用多久会坏)

  • iphone网易云会员退订(iphone网易云会员过期下载的歌能听吗)

    iphone网易云会员退订(iphone网易云会员过期下载的歌能听吗)

  • volte开关在哪(volte开关在哪里设置)

    volte开关在哪(volte开关在哪里设置)

  • 开机音效回归! Windows 11重新引入开机铃声(好听的开机音效)

    开机音效回归! Windows 11重新引入开机铃声(好听的开机音效)

  • 简单掌握Linux中用于更改访问控制的chacl命令(手把手教你linux)

    简单掌握Linux中用于更改访问控制的chacl命令(手把手教你linux)

  • 首涂二十一套模板带后台会员中心苹果CMSv10响应式diy高级电影主题-OK源码破解(首涂24套)

    首涂二十一套模板带后台会员中心苹果CMSv10响应式diy高级电影主题-OK源码破解(首涂24套)

  • 全额抵扣的发票怎么申报增值税
  • 职工的补助金需交税吗
  • 建行分期通
  • 民非企业附加税入什么科目
  • 民间非营利组织算企业吗
  • 新成立的企业都有哪些
  • 抵押贷款合同印花税怎么算
  • 普通增值税发票是否可以抵扣?
  • 招待费进项税额转出会计分录
  • 外贸企业仍一箱难求
  • 旧设备变现损失抵减所得税怎么算
  • 递延所得税资产是什么
  • 小规模的企业
  • 收取职工房租 算收入吗
  • 员工报销体检费,发票抬头开个人还是公司
  • 外币报表未分配利润折算
  • 承兑汇票章不清晰 情况说明
  • 商品流通企业会计零售业务核算
  • 进项税转出余额方向在哪一方
  • 样品寄送时运费支付的对策
  • win10删除所有内容是什么意思
  • 税控服务费政策
  • 上月暂估成本高了这个月怎么做账
  • w7防火怎么开
  • 增值税一般纳税人和小规模纳税人的区别
  • 代理 linux
  • 存货跌价后销售会计分录
  • 贵的u盘和便宜的有什么区别
  • 终身职业技能培训
  • 金融资产减值损益怎么算
  • 审稿意见范例
  • 农业经营许可证范围
  • 企业期末结转本期实现的各项收入
  • 一篇文章让你了解什么
  • 黄金零售环节增值税的缴纳
  • vue怎么嵌入html
  • 微软官方wintogo
  • 新旧所得税法转换规定
  • 小微企业具体指
  • 个人独资企业用企业资金进行个人消费
  • 油票上没有公司名称可以报么
  • php 队列
  • 开票钱收不回怎么办
  • 停工损失会计分录怎么写
  • 直播属于什么行业门类
  • 子公司能吸收合并吗
  • 所有者权益变动表反映的是什么
  • 不动产进项税额抵扣从什么时候开始
  • 企业内部交易如何操作
  • 兼职工资帐务处理
  • 金税四期 什么意思
  • 结构性存款是什么存款
  • 接受捐赠的固定资产进项税额可以抵扣吗
  • 研发支出的会计处理原则
  • 新车一次能开多少时间
  • 企业自建房屋建设方案
  • 车费属于什么会计科目类
  • 应收账款坏账的说明
  • 公司改名后发票怎么开
  • 公司成本核算流程
  • 房产税什么时候开始征收2023
  • 清产核资评估报告
  • mysql好在哪里
  • 电脑出现蓝屏后黑屏怎么办
  • mac u盘启动盘
  • centos安装配置ftp
  • linux oracle12c
  • win10怎么设置窗口颜色和外观
  • 虚拟机ubuntu怎么用
  • 怎样查看windows10版本
  • win7系统删除文件夹怎么恢复
  • 四个版本的雪国开头翻译
  • opengl 画线
  • 表示网页行为的是
  • unity3d最新
  • 深入理解两个大计重要论断心得体会
  • node js 前端
  • js跨域访问页面控件
  • python程序解析
  • 预交增值税附加税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设