我有一个字段集如下:
<fieldset>
<legend>Colour</legend>
<label><input type="radio" name="colour" value="blue"> Blue </label>
<label><input type="radio" name="colour" value="red"> Red </label>
</fieldset>
如果我将legend
标记保留在所有label
标记下方,则HTML会将fieldset
与之前完全相同。
<fieldset>
<label><input type="radio" name="colour" value="blue"> Blue </label>
<label><input type="radio" name="colour" value="red"> Red </label>
<legend>Colour</legend>
</fieldset>
即便如此也是如此。
这里的问题是,在fieldset
内的任何地方编写图例标记是否符合编程方式。
答案 0 :(得分:2)
这里的问题是,是否在程序上是正确的,并且按照标准在
fieldset
内的任何地方编写图例标记。
不,不是。 legend
元素(如果存在)必须是fieldset
元素的第一个子元素。
这是HTML5 spec.所说的:
4.10.16
fieldset
元素
[...]<强> Content model 强>
可选择
legend
元素,后跟flow content。
HTML4.01 spec.定义了fieldset
元素,如下所示:
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
其中以逗号分隔的列表定义子元素必须出现的顺序,即LEGEND
必须出现在其他流(块或内联)元素之前。