问题描述
使用 Fluent 主题(BootstrapBlazor.Theme.Fluent)时,BootstrapInputGroup 中的 Checkbox 显示异常:勾选框被拖向左侧、压到单元格边框上(如 CountUp 示例页的配置区)。
根因分析
组件库将 input-group 内的复选框布局为居中的 flex 单元格(.input-group > .form-check,自带 padding: .375rem .75rem,勾选框边距 margin: 3px 0 1px 0)。
而 Fluent 主题的独立复选框度量规则:
.form-check:not(:where(...)) .form-check-input {
width: 16px;
height: 16px;
margin-top: 2px;
margin-left: -28px;
}
与组件库的 .form-check .form-check-input 同为 0-2-0 优先级,但主题后加载,margin-left: -28px 覆盖了组件库的边距。该负边距本是配合独立布局的 padding-left: 28px 把勾选框拉回填充区的技巧;在 input-group 里单元格的 padding-left 仍是组件库的 .75rem(组件库 .input-group > .form-check 为 0-2-0,高于主题 .form-check 的 0-1-0),负边距却把勾选框向左拖了 28px,压到单元格边框上。
修复方案
在 fluent.css(及 fluent.min.css)中针对 input-group 场景补充恢复规则(0-3-0 优先级,高于主题度量规则且后加载):
.input-group > .form-check .form-check-input {
margin: 3px 0 1px 0; /* 与组件库 Checkbox.razor.scss 一致 */
}
独立复选框、Switch、各尺寸变体(form-check-sm…xxl)不受影响。
修复分支:fix/fluent-input-group-checkbox
问题描述
使用 Fluent 主题(
BootstrapBlazor.Theme.Fluent)时,BootstrapInputGroup中的Checkbox显示异常:勾选框被拖向左侧、压到单元格边框上(如 CountUp 示例页的配置区)。根因分析
组件库将 input-group 内的复选框布局为居中的 flex 单元格(
.input-group > .form-check,自带padding: .375rem .75rem,勾选框边距margin: 3px 0 1px 0)。而 Fluent 主题的独立复选框度量规则:
与组件库的
.form-check .form-check-input同为 0-2-0 优先级,但主题后加载,margin-left: -28px覆盖了组件库的边距。该负边距本是配合独立布局的padding-left: 28px把勾选框拉回填充区的技巧;在 input-group 里单元格的padding-left仍是组件库的.75rem(组件库.input-group > .form-check为 0-2-0,高于主题.form-check的 0-1-0),负边距却把勾选框向左拖了 28px,压到单元格边框上。修复方案
在
fluent.css(及fluent.min.css)中针对 input-group 场景补充恢复规则(0-3-0 优先级,高于主题度量规则且后加载):独立复选框、Switch、各尺寸变体(form-check-sm…xxl)不受影响。
修复分支:
fix/fluent-input-group-checkbox