重学 HTML —— 内联文本

244 阅读3分钟

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

这一节来看一下内联文本标签,这一部分是用在行内,增强文本效果的,这一部分有很多都可以通过 CSS 来实现,也有很多已经废弃和未废弃但是不推荐的,因为大部分不会影响语义本身,而且标签自身效果也是通过 css 来实现的。下面也来简单看下相关内容:

  • span:第一个还是 span,与 div 一样这个也是一个不带任何样式效果的标签,因此常用来为内容添加 css。它默认的 display 是 inline,当然如果不想用 span 也可以修改 div 的 display 达到相同效果。

  • a:这个是非常常用的一个标签,添加链接,使用起来比额外注册点击事件更方便,因此在实际开发中也有广泛的应用。

  • br:这个是换行标签,实际使用可能不多,在部分特定的文字排版下可能会用到。

  • code:展示代码块,其内容会按照等宽字体渲染。

  • var:表示变量名,浏览器通常展示斜体。

  • kbd:表示拥护输入,默认为 monotype 字体。

  • samp:展示计算机程序输出,默认为 monotype 字体。

  • b:表示强调,浏览器表现问文本加粗,当然如果只是想实现加粗效果推荐使用 css。

  • strong:表示重要内容,通常为粗体渲染。

  • small:小一号字体。

  • time:渲染时间内容。

  • bdo、bdi:bdo 有 dir 属性,设置文本的方向为 ltr 还是 rtl,bdi 会忽略父元素的方向设置。

  • cite:渲染引用内容。

  • em:着重强调内容,嵌套越多越重要,浏览器表现为斜体。

  • i:斜体文字效果,表示区分。

  • data:将内容和机器可读的数据关联起来。

  • mark:在引用内容中展示高亮文本。

  • dfn:表示术语的定义。

  • q:行内引用。

  • ruby、rp、rt:展示注音,用法参考:

    <ruby><rp>(</rp><rt>han</rt><rp>)</rp><rp>(</rp><rt>zi</rt><rp>)</rp>
    </ruby>
    
  • s:添加删除线,用于非编辑场景,编辑场景使用 del 和 ins。

  • u:非文本化内联区域,表现为下划线。

  • wbr:指定长文本的换行位置。

  • sub、sup:显示小文本,sub 下对齐,sup 上对齐,用于数学符号等场景。

上面有一些表现很接近的元素,如 b 和 strong,em 和 i,但是从表意上来看可能是完全不同的,而如果单纯从样式来看,其实都可以使用 css 来实现,因此这里需要明确我们使用标签的目的是什么。比如我们想加注音,使用 ruby 肯定非常合适,我们想渲染数学公式,可能 sub 和 sup 会很实用,但是如果我想加粗,设置 css 的 font-weight 可能就比 b 更合适。这里的考量标准就在于 html 强调的是结构,css 修饰的是样式。

内联元素标签的内容就这么多,需要注意的是语义化在浏览器中的表现往往不是很强烈,但是在阅读器或其他终端下可能侧重点不同,也许大部分时候不需要过多考虑,但是在 a11y 的特殊场景下可能要专门做一些处理。