【发布时间】:2017-12-24 04:50:17
【问题描述】:
我正在为我正在学习的在线 Web 开发课程做作业。任务是创建一个 HTML 表单。
其中一个要求是要有 3 个下拉菜单 - 一个代表月、日和年。 “生日:”标签位于这三个菜单之前。
课程的作业解决方案显示三个选择元素嵌套在一个标签元素中。我试过了,虽然它在浏览器中看起来很正常,但当我将文件上传到 W3C 时,我收到了以下错误:
“错误:标签元素最多可以包含一个按钮、输入、仪表、输出、进度、选择或文本区域后代。”
是否有适当的方法将一个标签元素应用于多个选择元素?或者这是一种糟糕的做法,而是应该每天、每月和每年都有自己的标签?
这是我的代码:
<div>
<label>Birthday:
<select name="month" required>
<option value="">Month</option>
<option value="Jan">Jan</option>
<option value="Feb">Feb</option>
<option value="Mar">Mar</option>
<option value="Apr">Apr</option>
</select>
<select name="day" required>
<option value="">Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select name="year" required>
<option value="">Year</option>
<option value="1918">1918</option>
<option value="1988">1988</option>
<option value="1998">1998</option>
<option value="2008">2008</option>
</select>
</label>
</div>
-
-
【问题讨论】:
-
不,这是我认为的标准。但是,无论如何您都不需要将下拉菜单包装在标签元素内。您可以将标签和下拉菜单放在分区中并根据需要设置它们的格式!
-
在
<fieldset>中分组相关的表单控件 -
@zer00ne - 在阅读了一些关于 fieldset 的内容后,我删除了 label 元素,而是将 select 元素嵌套在了 fieldset 中。然后在 W3C 中验证。谢谢。
-
@Marc 非常欢迎您,先生。请注意,虽然
<fieldset>在 Chrome 中可以正确呈现,但 Firefox 可能仍然有些偏差。