当前位置: 首页 > 面试题库 >

CSS / HTML:使文本变为斜体的正确方法是什么?

冀阳文
2023-03-14
问题内容

什么是使文本变为斜体的 正确 方法?我已经看到以下四种方法:

<i>Italic Text</i>

<em>Italic Text</em>

<span class="italic">Italic Text</span>

<span class="footnote">Italic Text</span>

这是“老办法”。<i>没有语义含义,仅传达使文本变为斜体的表示效果。据我所知,这显然是错误的,因为这是非语义的。

<em>

这纯粹出于表达目的而使用了语义标记。碰巧<em>默认情况下会以斜体显示文本,因此,那些意识到<i>应避免但不知道其语义含义的人经常使用它。并非所有斜体文本都是斜体的,因为它是强调的。有时,它可能恰好相反,例如旁注或耳语。

<span class="italic">

这使用CSS类放置演示文稿。这经常被吹捧为正确的方法,但是对我来说,这似乎又是错误的。这似乎并没有传达出更多的语义含义<i>。但是,它的支持者大声疾呼,如果您说要大胆的话,以后更改所有斜体文本会容易得多。事实并非如此,因为那时我将剩下一个称为“斜体”的类,该类使文本变为粗体。此外,目前尚不清楚为什么我要更改我网站上的所有斜体文本,或者至少我们可以想到这种情况是不希望或没有必要的。

<span class="footnote">

这将CSS类用于语义。到目前为止,这似乎是最好的方法,但实际上存在两个问题。

  1. 并非所有文本都有足够的含义来保证语义标记。例如,页面底部的斜体文本真的是脚注吗?还是放在一边?或完全其他的东西。也许它没有特殊的含义,只需要用斜体将其表示形式与前面的文本分开即可。

  2. 如果没有足够的强度,语义可能会发生变化。可以说,我跟着“脚注”是基于页面底部的文字。当几个月后我想在底部添加更多文本时会发生什么?它不再是脚注。我们如何选择一个语义类,该语义类的通用性要小于<em>但要避免这些问题?

摘要

似乎在许多情况下,对语义的要求似乎过于繁琐,在这些情况下,使斜体字的愿望并不意味着带有语义。

此外,将样式与结构分离的愿望已导致CSS被吹捧为<i>在某些情况下实际上用处不大的替代品。因此,这让我留下了不起眼的<i>标签,并且想知道这种思路是否是将其保留在HTML5规范中的原因?

是否有关于此主题的好的博客文章或文章?可能是由那些决定保留/创建<i>标签的人员参与的?


问题答案:

您应该针对不同的用例使用不同的方法:

  1. 如果要强调短语,请使用<em>
  2. <i>标签具有在HTML5新的含义,代表“一个在可替代的语音或文本心情跨度”。因此,您应该将此标签用于思想/辅助或惯用语。规范还建议了船名(但不再建议书名/歌曲名/电影名;请<cite>改用)。
  3. 如果斜体文本是较大上下文的一部分(例如,介绍性段落),则应将CSS样式附加到较大元素,即 p.intro { font-style: italic; }


 类似资料:
  • 问题内容: 我在一些帖子中看到人们在编写动态HTML时不喜欢在javascript中使用。 为什么是这样?什么是 正确的 方法是什么? 问题答案: 仅在最初解析页面和创建DOM时才起作用。浏览器到达结束标记并且DOM准备就绪后,就不能再使用了。 我不会说使用是正确的还是不正确的,这仅取决于您的情况。在某些情况下,您只需要完成任务即可。查看如何将Google Analytics(分析)注入大多数网站

  • 问题内容: 我在样式表中看到以下CSS声明: 该部分到底是什么意思? 问题答案: 是字体大小,是行高。 该语法基于用于指定各个大小的印刷符号,并且仅适用于速记属性。换句话说,以上声明只是扩展为以下内容: 与往常一样,如果将行高设置为相对值(例如,百分比或ems),则会相对于字体大小进行计算。 W3C CSS2.1 属性参考W3C CSS3字体模块属性参考(http://www.w3.org/TR/

  • 问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的

  • 问题内容: 我想在Linux上使用该机制。我希望我的应用程序知道何时更改了文件。能否请您提供给我一个示例,该怎么做? 问题答案: 文档(来自具有inotify的Monitor文件系统活动) 在C API 提供了三个系统调用来构建各种文件系统监视器: 在内核中创建子系统的实例,并在成功和失败时返回文件描述符。与其他系统调用一样,如果失败,请检查诊断。 顾名思义,它增加了一块 手表 。每个监视都必须提

  • 问题内容: 需要帮助,以了解如何在UIKit中使用prepareForReuse()。该文件说 您只应重置与内容无关的单元格属性,例如Alpha,编辑和选择状态 但是如何重置单个属性属性(例如isHidden)呢? 假设我的单元格有2个标签,我应该在哪里重置: 标签文本 label.numberOfLines label.isHidden 我的tableView(_:cellForRowAt :)

  • 一段时间以来,我一直试图将我的tableview工作作为一种电子表格,通过背景线程进行更新,当单元格更新时,它会亮起几秒钟(更改样式),然后返回到原始样式。我已经知道,我不能直接在表格单元格中存储和设置样式,我需要某种支持类来保存这些数据。但是tableview“重用”单元格(使用相同的单元格处理不同的数据)的行为真的很奇怪。当所有单元格都适合屏幕时,它对我来说完美无瑕,但一旦我放置大约100个单