gpt4 book ai didi

html - 内容和表现分离的实际意义是什么?

转载 作者:太空狗 更新时间:2023-10-29 14:41:37 24 4
gpt4 key购买 nike

内容和表现分离的实际意义是什么?

这只是意味着避免内联 css 吗?

这是否意味着设计应该能够在不更改 HTML 的情况下进行操作?

我们真的可以只从 CSS 改变设计吗?

  • 如果我们想改变尺寸图像然后我们将不得不去HTML代码
  • 如果我们想在段落中再添加一个换行符,那么我们将必须转到 HTML 代码中
  • 如果我们想再添加一个分隔符在某个地方,我们将再次拥有以 HTML 代码转到

我们应该避免使用哪个 X/HTML 标记来保持内容和表示的分离?

内容和呈现的分离是否也对辅助功能/屏幕阅读器用户有帮助? ...对于程序员/开发人员/设计师?

最佳答案

定义什么是内容和表示时,将 HTML 文档视为数据容器。然后针对每个元素和属性问自己以下问题:

  • 属性/元素是否表示我的数据中有意义的实体?
    例如,<b> 之间的词是标记以粗体显示只是为了显示目的,还是我想强调该数据?

  • 我是否使用了正确的属性/元素来表示我想要表示的数据类型?
    因为我想强调那个特定的部分,所以我应该使用 <em> (不是斜体,是强调,可以加粗)或者<strong>取决于所需的强调程度。

  • 我是否仅将属性/元素用于显示目的?如果是,是否可以删除该元素并使用 CSS 设置父元素的样式?
    有时,展示标签可以简单地用父元素上的 CSS 规则替换。在这种情况下,需要删除展示标签。

问自己这三个简单的问题后,您通常能够做出非常明智的决定。一个例子:

Original Code:<label for="name"><b>Name:</b></label>

Checking the <b> tag...

Does the attribute/element represent a meaningful entity in my data?
No, the tag doesn't represent a data node. It is there purely for presentation.

Am I using the proper attribute/element to property represent the type of data I want to represent?
<b> is used for presentation of bold elements.

Am I using the attribute/element only for display purposes? If yes, can the element be removed and the parent element styled using CSS?
Since <b> is presentational and I am using it for presentation, yes. And since the <b> element affects the whole of <label>, it can be removed and style be applied to the <label>.

语义 HTML 的目标不是简化设计和重新设计或避免内联样式,而是帮助解析器理解特定标记在您的文档中代表什么。这样,可以创建应用程序(即.: 搜索引擎)智能地决定你的内容意味着什么,并相应地对其进行分类。

因此,使用 CSS 属性 content: 是有意义的在位于 <q> 中的文本周围添加引号标记(除了演示文稿之外,它对文档中包含的数据没有任何值(value)),但是使用相同的 CSS 属性在页脚中添加 © 符号是没有意义的,因为它在您的数据中确实具有值(value)。

同样适用于属性。使用 widthheight <img> 上的属性表示大小为 16x16 的图标的标签具有语义意义,因为理解 <img> 的含义很重要标记(一个图标可以有不同的表示,具体取决于它显示的大小)。在 <img> 上使用相同的属性表示较大图像缩略图的标签则不然。

有时您需要添加非语义元素才能实现您想要的呈现,但通常这些是可以避免的。

没有错误的元素。特定元素的使用有误。 <b>添加重点时不应使用。 <small>应该用于合法的子文本,而不是使文本变小(参见 HTML5 - Section 4.6.4 为什么)等...所有元素都有特定的使用场景,它们都代表数据(减去表示元素,但它们确实有用途在某些情况下)。不应保留任何元素。

属性是另一回事。大多数属性本质上都是表象性的。 <img border> 等属性和 <body fgcolor>您所代表的数据很少有意义,因此您不应使用它们(除非在极少数情况下)。


搜索引擎是语义文档为何如此重要的一个很好的例子。 Microformats是一组预定义的元素和类,您可以使用它们来表示搜索引擎将以某种方式理解的数据。 The product price information in Google Searches是工作中语义的一个例子。

通过使用设定标准中的预定义规则在您的文档中存储信息,第三方程序可以理解看似文本墙的内容,而无需使用可能容易出错的启发式算法。它还有助于屏幕阅读器和其他辅助功能应用程序更轻松地理解呈现信息的上下文。它还极大地有助于标记的可维护性,因为一切都与一组定义相关联。

关于html - 内容和表现分离的实际意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com