Layui radio 默认竖排是因 .layui-form-radio 类设 display: block 天然堆叠,属设计而非 bug;横排需对 .layui-input-block 设 display: flex 并样式控制子项间距与自适应。

layui radio 默认为什么是竖排?
因为 layui 的 不改 layui 源码、不重写渲染逻辑的前提下,最稳的方式是控制父级 示例片段: layui 渲染 radio 时会把原始 横向对齐的麻烦点从来不在“怎么排”,而在“排完之后文字换行、高度塌陷、移动端缩放”这些连锁反应——多测几个屏幕宽度,比写一行 flex 更重要。radio 组件默认用 display: block 和垂直外边距,天然堆叠。不是 bug,是设计如此——表单控件优先保障可读性和无障碍访问。用 CSS 强制横排:关键在父容器和子项样式
display: flex 和 flex-wrap: wrap.layui-form-radio 加 margin-right: 20px(避免最后一项溢出)和 flex: 1 1 auto(让宽度自适应)width: calc(33.33% - 10px) 配合 margin-right 实现“均匀”而非“等宽”<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block" style="display: flex; flex-wrap: wrap;">
<input type="radio" name="sex" value="0" title="男" checked><input type="radio" name="sex" value="1" title="女"><input type="radio" name="sex" value="2" title="其他">
</div>
</div>
<p><style>
.layui-input-block .layui-form-radio {
margin-right: 16px;
flex: 1 1 auto;
}
.layui-input-block .layui-form-radio:last-child {
margin-right: 0;
}
</style></p>
调用
form.render() 后样式失效? 隐藏,并插入带 .layui-form-radio 的模拟 DOM。如果你只对原始 HTML 写了样式,render 后就失效了。必须确保 CSS 选择器能命中渲染后的真实结构:
.layui-input-block 内.layui-input-block .layui-form-radio 而非仅 .layui-form-radio
!important,优先提高选择器权重或加 style 行内属性“均匀分布” ≠ “等宽”,别被 flex 的 justify-content 坑了
justify-content: space-between 看似能撑满,但实际会让首尾贴边、中间空隙变大,三个选项时第二项被挤到右边,视觉上并不“均匀”。真正均匀需要的是每个选项占相等可用空间,所以:
width: calc(100% / N - margin * (N-1) / N) 更可控flex: 1 + min-width 保底(如 min-width: 80px),防止文字折行line-height 和 white-space: nowrap











