我对使用什么来渲染数据感到困惑.我的场景是我必须渲染计数,我不确定使用span或label.
<span id="spnCount"></span>
Run Code Online (Sandbox Code Playgroud)
要么
<label id="lblCount"></label>
Run Code Online (Sandbox Code Playgroud)
小智 19
每个"回答"的人,只需复制粘贴描述预期用例的文档.但是,没有人解释的差异,或为什么落后,为什么你应该使用一个或另一个.
实际情况是,任何一方在技术上都会起作用,所以老实说它甚至都不重要.您可以使用任意数量的其他类似标记,包括<i>标记(使用类正确设置样式).为它分配一个唯一的id,使用document.getElementById()或使用节点等,做你想做的事.唯一关心的人是语义纯粹主义者.
标签"can"和"should"应与表单输入元素一起使用,为true.但它是不是真的,它CAN NOT或不得以任何其它方式使用.这意味着CAN和COULD可以用于其他方式.
首先,请注意如何<label>简单地将其用作"元素"的标签.它没有说什么TYPE元素.它并不是说它必须是输入元素或表单元素.实际上,非表单元素可以具有与它们相关联的控件以提供用户体验,这可能通过CSS等操纵对象,并且标签可以简单地将文本连接到任何这样的事物.表格可以隐藏在页面上.谁知道.
为什么使用独立标签可能是个坏主意?如果您的文档可能存在很长时间,通过几个浏览器版本和HTML标准更新,<label>可能会更改为更严格地强制与表单输入元素关联的定义,那么您可能会遇到问题.但是,对于我们仅仅为了呈现页面而依赖的许多规范中的任何其他方面,情况也是如此.
这种变化可能是一种非常罕见的情况,你可能甚至不会在同一家公司或同一个项目团队工作,所以说实话,除了纯粹主义者之外谁真正关心?
好吧,也许任何一个视障人士,如果他们依赖某种处理<label>不同<span>的技术,这可能会混淆技术或用户或两者兼而有之.我对这种辅助功能设备没有任何经验,但这可能是一个更好的理由为什么.
另一个有效的原因是<span>类型比短<label>.
另一个原因可能是搜索引擎在使用<label>vs时对页面或引用内容进行排名的方式存在细微差别<span>.这有点延伸,因为这些算法通常不公开,但它是可能的.一个引擎可能单向产生更好的结果,另一个引擎可能更喜欢另一种方式,而另一个引擎可能无关紧要.
所有这一切,如果没有任何进一步的上下文知识,我可能会选择,<span>因为它似乎是最通用和最有争议的做事方式.但我觉得这个问题缺乏彻底的答案,因为答案通常涉及理解原因.