单选框/复选框文字左对齐失效需优先检查父容器(如.layui-form-item)是否设置了text-align:center,应通过.layui-form-radio label,.layui-form-checkbox label {text-align:left}精准覆盖;vertical-align推荐用top配合margin-top:2px,表格中复选框居中宜用position:relative;top:50%;transform:translatey(-50%),templet自定义时须内联flex布局并设align-items:center。

单选框/复选框文字左对齐失效怎么办
默认情况下,Layui 表单里 .layui-form-item 或父容器若带 text-align: center,会导致所有 label 内的文字(包括单选框、复选框后的文本)被强制居中。这不是控件本身的问题,而是继承样式干扰。
- 检查包裹
<input type="radio">或<input type="checkbox">的<label></label>是否被.form-group、.layui-form-item等类设置了text-align: center;有就删掉或覆盖 - 给对应
label显式加text-align: left !important,或者用更精准的选择器:.layui-form-radio label, .layui-form-checkbox label { text-align: left; } - 别只改
input,Layui 渲染后实际点击区域是label,文本对齐逻辑全在它身上
vertical-align 怎么调才不偏移
Layui 的单选/复选框是内联元素,但默认基线和文字不一致,尤其在字号不是 14px 时容易上浮或下沉。直接设 vertical-align: middle 常不够稳,得配合微调。
- 推荐组合:
vertical-align: top; margin-top: 2px—— 对大多数字体大小都兼容,视觉上最“平” - 如果用了自定义图标皮肤(如
[lay-skin="primary"]),要单独命中:.layui-form-checkbox[lay-skin="primary"] { vertical-align: top; margin-top: 2px; } - 避免用
text-bottom:它依赖字体的 descender 区域,不同字体渲染差异大,容易在 Chrome/Firefox 下表现不一
表格里复选框垂直居中总失败
数据表格(table.render())里的复选框默认顶对齐,因为 .layui-table td 没设 vertical-align,而 Layui 的 checkbox 是绝对定位元素,父 td 高度又常由内容撑开,导致对齐逻辑失效。
- 不要只改
.layui-form-checkbox,先确保td有明确高度或line-height;可在列配置中加style: 'line-height: 40px;'(按实际行高调整) - 最可靠写法:
.layui-table-cell .layui-form-checkbox { position: relative; top: 50%; transform: translateY(-50%); } - 如果表格启用了
skin: "line"或冻结列,需额外加选择器:.layui-table-fixed-l .layui-table-cell .layui-form-checkbox
用 templet 自定义时对齐被忽略
一旦某列用了 templet 渲染单选/复选框,Layui 的 align 和内置对齐逻辑就完全失效——它只管原始字段值,不管模板里怎么写。
- 必须在模板字符串里手动控制:
templet: '<div style="display:flex;align-items:center"> <input type="checkbox"> <span>选项</span> </div>' - Flex 方案比
vertical-align更稳,但注意:Layui 的 checkbox 默认是inline-block,flex 容器里它会自动拉伸,需加flex-shrink: 0防止压缩 - 别在
templet里写函数形式(templet: function(d) {...}),Layui 2.8+ 对它的样式继承支持不稳定,style容易丢失











