element标签弹窗_优化element-ui中的弹框样式

针对element-ui中的el-dialog的体验进行一些优化,个人感觉优化有体验更好

自带的弹框样式有很多缺点,比如不居中,大小会超出屏幕然后在最右侧出现滚动条,看不到footer里的按钮等。这个时候就需要自己写样式覆盖默认样式来优化了。让我们一个一个来解决

1.居中处理

.el-dialog{

position:absolute;

top:50;

left:50%;

margin:0 !important;

transform:translate(-50%, -50%);

}

这是典型的通过transform来居中的方式,但是这种方式有一个问题,就是居中的内容如果超过了视窗,上边超过的部分无法滚动上去查看,只能往下滚:

2. 防止超出视窗

.el-dialog{

max-height:calc(100% - 30px);

max-width:calc(100% - 30px);

}

于是弹框现在既能居中又可以把最大大小限制在视窗内:

但是现在弹框body里的内容超出了弹框。

3. 实现body内部滚动

.el-dialog{

display:flex;

flex-direction:column;

}

.el-dialog >.el-dialog__body{

overflow:auto;

}

通过给el-dialogbody加overflow auto我们实现了body内部滚动,但是光加这一条还不够,因为overflow容器需要外部限制容器的大小才能产生内部滚动,

这里使用了flex的方式把el-dialogbody的大小限制为总大小减去头和尾的大小。最终效果如下:

非常完美,现在这个弹框既能在视窗居中,又能在内容过多时防止弹框大小超出视窗,还能把滚动限制在body内部从而使得头和尾始终可见,再也不用滚上滚下去找各种标题和按钮了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值