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

Firefox 136改变了Rails+Bootstrap4单选按钮样式,如何恢复?

Firefox 136单选按钮样式变化问题及恢复方案

问题背景

在基于Ruby 2.6.6p146、Rails 6.1.3.1、Bootstrap 4.6.0的应用中,此前各浏览器单选按钮样式一致:Firefox 135.0.1及更低版本中,选中的单选按钮显示实心内圈+粗实外圈;但升级至Firefox 136后,选中状态仅显示细外圈,无实心内圈,样式出现异常。

对应的HTML代码如下:

<div class="container mt-4">
    <div class="d-flex w-50 for-current-reader flex-row">
        <div class="d-flex flex-column w-50 border p-1 table-info">
            <fieldset class="form-group mb-0 radio_buttons optional parm_01_01_01">
                <legend class="col-form-label p-0"></legend>
                <input type="hidden" name="parm_01_01_01" value="">
                <div class="form-check">
                    <input class="form-check-input" id="parm_01_01_01_1" type="radio" value="1" name="parm_01_01_01">
                    <label class="form-check-label d-block" for="parm_01_01_01_1">Yes</label>
                </div>
                <div class="form-check">
                    <input class="form-check-input" id="parm_01_01_01_2" type="radio" value="2" name="parm_01_01_01">
                    <label class="form-check-label d-block" for="parm_01_01_01_2">No</label>
                </div>
            </fieldset>
        </div>
    </div>
</div>

样式差异示意图:
Firefox升级后单选按钮样式变化

变化原因

Firefox 136对原生表单控件的默认样式进行了调整,修改了单选按钮选中状态的渲染逻辑。而Bootstrap 4.6.0的表单控件样式依赖于浏览器原生样式的特定行为,此次Firefox的更新打破了原有兼容,导致Bootstrap的自定义选中样式无法正常生效。

恢复原有样式的方案

通过自定义CSS强制覆盖Firefox 136的新默认样式,仅针对Firefox生效,不影响其他浏览器:

/* 修复Firefox 136+单选按钮选中样式 */
@-moz-document url-prefix() {
  .form-check-input:checked {
    background-color: #007bff; /* 匹配Bootstrap默认主题色 */
    border-color: #007bff;
    /* 重新添加实心内圈图标 */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 50% 50%;
    border-width: 2px; /* 恢复粗实外圈 */
  }
}

操作步骤

  1. 将上述CSS代码添加到你的Rails应用样式文件中(例如app/assets/stylesheets/application.scss)
  2. 确保这段代码在Bootstrap样式之后加载,保证优先级高于默认样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:02:11