You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免输入框出现invalid feedback时图标位置偏移?

问题:表单校验错误时输入框图标偏移

使用Bootstrap和Bootstrap Icons开发表单时,触发校验错误(显示invalid-feedback)后,输入框左侧的图标会偏离原有位置。

状态说明

  • 正常状态:输入框左侧图标位置正常
  • 错误状态:输入框左侧图标出现位置偏移

相关代码

HTML结构

<div class="form-group position-relative has-icon-left mb-3">
     <input type="text" class="form-control form-control @error('username') is-invalid @enderror" id="username"  
     name="username" placeholder="Username">
     <div class="form-control-icon">
         <i class="bi bi-person"></i>
     </div>
    @error('username')
        <span class="invalid-feedback" role="alert">
            <strong>{{ $message }}</strong>
        </span>
    @enderror
</div>

CSS样式

.form-group[class*=has-icon-].has-icon-left .form-control-icon{left:0}
.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}
.form-group{margin-bottom:.7rem}
.position-relative{position:relative!important}
.form-control {
      display: block;
      width: 100%;
      background-color: #f9f9f9;
      padding: 12px;
      border: 1px solid #ddd;
      border-radius: 2.5px;
      font-size: 14px;
      -webkit-appearance: none;
      -moz-appearance: none;
           appearance: none;
      margin-bottom: 24px;
    }
.form-group[class*=has-icon-].has-icon-left .form-control-icon{left:0}.

解决方法

核心问题是.form-control-icon未设置绝对定位,它属于文档流,当错误提示元素显示时,布局变化会影响其位置。父元素已设置position:relative,只需给图标容器添加绝对定位和垂直居中样式即可:

.form-group[class*=has-icon-].has-icon-left .form-control-icon {
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding: 0 12px; /* 和输入框内边距保持一致,确保图标位置合理 */
}

同时清理重复的CSS规则(原代码中重复定义了.form-group[class*=has-icon-].has-icon-left .form-control-icon{left:0}),避免冗余。

内容的提问来源于stack exchange,提问作者Wesley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:27:34