这是一个例子。
<span id="s1">Hello</span>
<span id="s2">world</span>
<span id="s3">this</span>
<span id="s4">is</span>
<span id="s5">a</span>
<span id="s6">sentence.</span>
基本上,我有一个脚本将句子的单词分成span
。这样做有更好的方法吗?也许是我不知道的span
的替代品?我想过使用类似<u>
的东西,因为它很短,然后删除默认下划线。 <p>
也不会工作,因为它是一个块元素。
有什么想法吗?
答案 0 :(得分:6)
出于语义原因,我建议不要使用其他元素,除非你真的需要更短的元素名称。 <span>
是语义中立的元素,因此它们适合这种情况。
答案 1 :(得分:3)
如果您真的需要以不同的方式设置每个单词的样式,这可能正是您应该做的。它是一个无意义的标记,用于对内联元素进行分组(在本例中为单词)。
答案 2 :(得分:1)
span
元素是HTML中唯一被定义为不具有任何含义的元素,因此它是您希望使用的元素。一个单词,一个元素,以操纵它,而不赋予它任何意义。
但是,没有a
属性的href
元素在语义上也是空的,没有默认的渲染规则。有些人使用<a id=foo>...</a>
代替<span id=foo>...</span>
。但是,某些程序可能会以某种特殊方式处理这样的a
元素(就像它无论如何都是链接一样),并且人们可能会以期望所有a
元素为链接的方式编写样式表。所以a
的这种使用是有风险的,没有超越短缺的好处。它还使源代码不太清晰,因为这种使用并不常见。
在实践中,您可以使用自定义标记,例如z
(在JavaScript中使用document.createElement('z')
,以使旧版本的IE将其视为可设置样式)。浏览器会将其视为未知元素,让您在脚本中处理它(以及警告)。但是想象一下,如果某些未来版本的HTML或某些浏览器识别的HTML包含一个带有您所选名称的元素,会带来一些奇特的含义和效果(例如“不显示此元素”或“闪烁此文本”)会发生什么)。
答案 3 :(得分:0)
我同意发布的Nightfirecat和imjared答案。 <span>
可能是在这种情况下使用的最佳元素,因为它表示一个中性的内联元素。
但是,如果你真的不得不伸展黑客,你可以试试<em>
因为你以自己的方式强调每个单词。