使用span的替代方案?

时间:2013-09-30 01:05:10

标签: html css

这是一个例子。

<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>也不会工作,因为它是一个块元素。

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

出于语义原因,我建议不要使用其他元素,除非你真的需要更短的元素名称。 <span>是语义中立的元素,因此它们适合这种情况。

答案 1 :(得分:3)

如果您真的需要以不同的方式设置每个单词的样式,这可能正是您应该做的。它是一个无意义的标记,用于对内联元素进行分组(在本例中为单词)。

The span element .. doesn't mean anything on its own ..

答案 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)

我同意发布的Nightfirecatimjared答案。 <span>可能是在这种情况下使用的最佳元素,因为它表示一个中性的内联元素。

但是,如果你真的不得不伸展黑客,你可以试试<em>因为你以自己的方式强调每个单词。