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

如何自定义Bootstrap 5输入框以适配深色模式?

Bootstrap 5表单输入框明暗模式背景色切换解决方案

要搞定明暗模式下form-control的背景色切换,同时解决激活(聚焦)状态变回白色的问题,你需要针对这些CSS选择器下手:

要覆盖的目标选择器

  • 基础状态:.form-control
  • 聚焦激活状态:.form-control:focus
  • 配合明暗模式的属性选择器:[data-bs-theme="dark"](Bootstrap 5官方推荐的主题切换标记)

完整CSS代码示例

/* 深色模式下的输入框基础样式 */
[data-bs-theme="dark"] .form-control {
    background-color: rgb(45, 52, 61);
    border-color: rgb(67, 76, 86); /* 可选:同步调整边框色,风格更统一 */
    color: #fff; /* 可选:修改文字颜色,确保深色背景下可读性 */
}

/* 深色模式下输入框聚焦时的样式 */
[data-bs-theme="dark"] .form-control:focus {
    background-color: rgb(45, 52, 61); /* 和基础状态保持一致就不会变白了 */
    border-color: #86b7fe; /* 可选:保留Bootstrap默认聚焦边框色,或自定义 */
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); /* 可选:聚焦阴影也可自定义 */
}

/* 浅色模式如果需要自定义就加下面的,不用的话直接用Bootstrap默认样式即可 */
[data-bs-theme="light"] .form-control {
    background-color: #fff;
    border-color: #ced4da;
    color: #212529;
}

[data-bs-theme="light"] .form-control:focus {
    background-color: #fff;
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

注意点

  • Bootstrap 5切换主题通常是给<html>或<body>标签添加data-bs-theme属性,切换时把属性值从light改成dark即可。
  • 之前聚焦会变白的原因是:Bootstrap默认给.form-control:focus单独设置了背景色,优先级比基础.form-control类更高,所以必须单独覆盖这个状态的样式。
  • 边框色、文字色可根据自身UI风格调整,确保深色模式下文字清晰、视觉协调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:10:27