FieldLayout 字段布局
字段布局:把一个字段控件与它的标签排在一起,是 FormLayout 里的基本单元。
基本用法
标签与控件的关联由组件自动完成:放进 FieldLayout 的输入类控件会认领一个 id,标签的 htmlFor 指向它,支持点击标签聚焦控件,和读屏器。字段控件自身不需要再写 label。
对齐方向
align 决定标签与控件的排布:left(默认,标签在左)、right(标签在右)、top(标签在上)、inline(标签与控件同行,常用于复选框、单选框)。传 inline 不会自动降级(原版在字段根元素非 span 时会降级为 top),传入前保证字段根元素为内联形态。
标签与提示
label是标签内容(ReactNode)。invisibleLabel把标签视觉隐藏,但保留可访问名称;此时title未显式给出会以标签文本兜底。title落在标签元素上(对齐原版$titled = $label),而不是布局根。- 字段控件登记了自己的
accessKey时,标签提示末尾附上键位(组合键文案可经 OOUIProvider 本地化)。
禁用
FieldLayout 的 disabled 只给布局根加 oo-ui-fieldLayout-disabled 样式类,让字段区域呈禁用态外观,不会替你禁用 children 里的控件。要真正禁用,请在控件自身设置 disabled;需要整组一起禁用时改用走原生 <fieldset disabled> 的 FieldsetLayout。
API
另见
- 包裹多个
FieldLayout的表单容器:FormLayout - 各控件的属性与落点:TextInput、CheckboxInput
- 所有组件共有的
disabled、title、accessKey语义:通用属性