欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Css样式中设置gap: 12px以后左右出现距离问题解析

Css样式中设置gap: 12px以后左右出现距离问题解析

2025/6/6 11:10:40 来源:https://blog.csdn.net/weixin_35773751/article/details/148341779  浏览:    关键词:Css样式中设置gap: 12px以后左右出现距离问题解析

原因核心:

虽然写的是:

display: flex;
gap: 12px;

但在实际 DOM 中,这段结构:

<div class="el-form-item__content"><div class="el-input"><input type="text" class="el-input__inner"></div>
</div>

只有 一个子元素:.el-input按理说 gap 不会生效。但看到“gap 产生左右 12px”,可能是因为:


::before::after 伪元素参与了布局!

某些框架(如 Element-UI)默认会在 el-form-item__content 内部加上隐藏的 ::before::after,用于清除浮动或对齐。

这些伪元素虽然不可见,但在 display: flex + gap 组合下,会被当作有效的子元素,从而使:

  • .el-input::before 之间 产生 12px 间距
  • .el-input::after 之间 也产生 12px 间距

这就是原因所在!!!!!


验证方法:

按下 F12 打开浏览器开发者工具:

  1. 选中 .el-form-item__content
  2. 查看其子节点是否有 ::before / ::after
  3. 你会发现两边的 gap 是因为这两个伪元素引起的

解决方法

方式一:清除伪元素对布局的影响(推荐)

.el-form-item__content::before,
.el-form-item__content::after {display: none !important;content: none !important;
}

方式二:只对真正子元素设置 gap,不使用 flex gap

改为用 margin-left

.el-form-item__content > *:not(:first-child) {margin-left: 12px;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词