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

Bootstrap Input-Group搭配Spinner出现D形旋转异常如何解决?

问题原因

你把Bootstrap的spinner-border类直接写在了input-group-append容器标签上,input-group-append的默认样式会强制子元素高度适配输入框,且不会自动给加载动画预留等宽的正方形显示区域,导致圆形的加载动画被横向挤压,最终显示为D形。

解决方法

调整DOM结构,将spinner元素作为input-group-append的子元素放置,同时给spinner添加合适的边距适配输入框高度即可。

修正后的完整代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" />
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"></script>
</head>

<body>
  <form id="morning_metrics" onsubmit="return false;">
    <div class="form-group col-4">
      <label for="metric_sleep">Hours of Sleep </label>
      <div class="input-group">
        <input id="metric_sleep" name="metric_sleep" class="form-control" type="number" />
        <div class="input-group-append">
          <!-- spinner移到input-group-append内部,添加边距m-2让它居中显示,默认加d-none隐藏,请求时再移除即可 -->
          <div class="spinner-border m-2 d-none" id="sleepSpinner">
            <span class="visually-hidden">Loading...</span>
          </div>
        </div>
      </div>
    </div>
    <button id="saveForm" class="btn btn-primary" type="button" name="submit" value="Submit">Submit</button>
  </form>
</body>
</html>

额外说明

  • 提交请求的时候移除spinner的d-none类即可显示加载状态,请求完成后再加回该类就能隐藏
  • m-2是Bootstrap自带的外边距类,可以根据你的输入框高度调整为m-1/m-3来适配居中效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:06:01