自定义组件<IP输入框>在el-form的不同size中出现显示异常的BUG及修复

本文详细分析了一个自定义IP输入框组件在与不同size的el-form结合使用时出现的样式错误。问题源于form的size差异导致组件间距变化,进而影响了显示。通过对比正确和错误的CSS样式,找出问题关键在于行内元素的间距。解决方案包括调整组件尺寸以适应form的size变化或修改错误显示的form size为small。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景复现:

在一次自定义IP输入框组件的应用中,因为el-form的size设置不同,导致组件的样式显示出错,场景复现如图:

显示正常的图片显示错误的图片
因为是同一个组件的复用,因此定位于不同form表单的css差异性

原因分析:

显示正确的css:

请添加图片描述请添加图片描述
在这里插入图片描述

显示错误的css:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
显然,显示错误的这一组中,el-input__inner距离top的距离远了不少,但是其他的样式信息都是一致,因此怀疑因为form的size不同,导致其上下边距出现差异
继续检查.el-form-item
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

因为错误是出现在行内的,所以padding、border、margin都不必关注
可以确认的是mSize的form确实比s的在行内高了4px,又因为行内元素是上下等距,所以el-input__inner在mSize的form中上下边距和为36px-26px=10px,等分一下就是上下各5px。因此el-input__inner的底边所处的y坐标即为行内5+26=31px,但是因为其外部的el-input–medium是从ip-box的行内,而ip-box有一个px的边框,所以把el-input__inner的底边往下挤了一个px,即到了32px,刚刚好把ip-box的底部border挡住了,导致显示错误。

计算正确的sSize的form,el-input__inner上下距离都为(32px-26px)/2=3px,加上border的1px,距离top为4px,距离bottom2px,最底边位于4+26=30px,不会挡住ip-box在y方向上32px的底边border,因此没有显示错误。


解决方案:

方案一:调整IP输入框的尺寸,使其适配form的不同size(未选择)
方案二:显示错误的mSize的form的size改为small(当前选择)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道怎么起名字的夏先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值