6

我在许多关于演示标签的文章中发现了许多不同的观点,有些人认为所有标签都是演示标签,但有些人不这么认为。

例如:在 HTML 5 规范中,他们不认为<small>是表象的。

在这个标签列表中 - 都支持 HTML 5 - 哪个标签是展示性的,哪个不是?

<abbr>

<address>

<area>

<b>

<bdo>

<blockquote>

<br>

<button>

<cite>

<dd>

<del>

<dfn>

<dl>

<dt>

<em>

<hr>

<i>

<ins>

<kbd>

<map>

<menu>

<pre>

<q>

<samp>

<small>

<span>

<strong>

<sub>

<sup>

<var>

谁来决定哪个 HTML 标签是展示性的,哪个不是 - 他们是如何做出这个决定的?它是一个特别大的团体,例如 W3C,还是基于 Web 开发人员团体,即 Web 社区?此外,在这两者之间,我们应该遵循哪些建议来决定哪些标签是展示性的?

如果根据 W3C 在接受的文档类型中标签是有效的,那么xhtml从任何角度来看,不使用任何标签的优点是什么?

从用户/可用性/可访问性的角度来看

如果我们使用更多的 HTML 标签,那么没有 CSS 的页面会更好。

从开发者的角度来看

如果我们在 HTML 中使用更多可用的标签,那么我们不需要使用<span class=className">

与 HTML 和 CSS 中的标签相比,它需要更多的时间来编写并且使用更多的章程空间。

例如:

而不是使用:

<span class="boldtext">Some text<span>

.boldtext {font-weight:700}

我们可以用:

<b>Some text<b>

b  {font-weight:700} 

它看起来更干净,更容易使用,它使用更少的字符 - 这将减少页面大小 - 并且在源代码中更具可读性。它也没有打破内容和表示分离的规则。

我们也可以这样做:

<b class="important">Some text<b>

b.important  {font-weight:700}

并且每当我们想要更改字体粗细时,我们css只能在这两个示例中进行更改。

如果 w3c 在其认可的文档类型中认为一个标签是有效的,那么不使用 W3C 或 HTML 规范都不能直接识别的任何 X/HTML 表示标签的优点是什么?

我们可以在不更改 HTML 中的任何内容的情况下更改任何设计参数吗?这是否符合内容和表示分离的模因?

如果任何 HTML 标记破坏了分隔规则,那么css属性是否也Content破坏了?

看到这篇文章

为什么允许元素的HEIGHTandWIDTH属性IMG?它不破坏分离规则吗?可以在这里找到关于这个问题的一个很好的辩论。

4

3 回答 3

8

W3C 决定标签的语义。HTML5 的规范文档给出了各种标签的使用条件。

HTML5

继续您的示例,使用<b>加粗某些文本没有任何问题,除非:

  • 加粗的文本是一个已经用标签表示的实体:

    不正确:
    <label for="name"><b>Name:</b></label>

    正确:( 使用 CSS 设置元素样式)
    label { font-weight: bold; }
    <label for="name">Name:</label>

  • 文本被加粗以增加对文本块的部分或单词的强调和权重。

    不正确:
    <p>HTML has been created to <b>semantically</b> represent documents.</p>

    正确:( 使用<strong>
    <p>HTML has been created to <strong>semantically</strong> represent documents.</p>

以下是正确使用<b>标签的示例:

正确的:
<p>You may <b>logout</b> at any time.</p>

<strong>我意识到上面的示例与用作正确示例的示例之间似乎没有太大区别。简单地解释一下,这个词在语义上在句子中起着重要的作用,它的重点被粗体加强了,而注销只是为了演示目的而加粗。

以下将是不正确的用法。

不正确:
<p><b>Warning:</b> Following the procedure described below may irreparably damage your equipment.</p>

正确:( 这用于强调强调,因此使用<strong>
<p><strong>Warning:</strong> Following the procedure described below may irreparably damage your equipment.</p>


使用<span class="bold">是标记气味,根本不应该被允许。当通用表示标签(即:不适用)时,该<span>元素用于在内联元素上应用样式例如使某些文本变为绿色:<b>

不正确:
<p>You will also be happy to know <span class="bold">ACME Corp</span> is a <span class="eco-green">certified green</span> company.</p>

正确:( 以下解释)
<p>You will also be happy to know <b>ACME Corp</b> is a <em class="eco-green">certified green</em> company.</p>

之所以在这里使用<em>而不是<span>绿色这个词,是因为这里的绿色是为了强调ACME Corp 是一家经过认证的绿色公司这一事实。

以下是使用<span>标签的一个很好的例子:

正确的:
<p>You may press <kbd>CTRL+G</hbd> at any time to change your pen color to <span class="pen-green">green</span>.</p>

在这个例子中,绿色这个词被设置为绿色只是为了反映颜色,而不是添加任何强调 ( <em>) 或强调强调 ( <strong>)。

于 2010-02-14T05:38:01.980 回答
7

在我看来,“表示”元素与“结构”元素之间的整个区别是常识问题,而不是 W3C 或其他任何人定义的问题。:-P

描述其内容的元素(与其外观相反是结构元素。根据定义,其他所有内容都不是结构性的,因此是表示元素。

现在,我将回答您帖子的第二部分。我知道这是一个有争议的话题,但无论如何我都会说出我的想法。

制作精良的 HTML 不应该关心它的外观。这就是样式表的工作。将其留给样式表的原因是,您可以为台式计算机提供一个样式表,为上网本、智能手机、“哑机”(没有更好的术语)、Kindle 和(如果您关心可访问性,你应该)屏幕阅读器。

通过在 HTML 中使用演示标记,您可以在所有这些不同类型的媒体上强制使用某种“外观” ,从而消除设计人员选择最适合此类设备的外观的能力。这是最糟糕的微观管理,设计师会因此而讨厌你。:-)

要使用您的示例,而不是使用<b>,您应该问自己大胆应该表达什么。如果您试图表达章节标题,请使用标题标签之一(<h1>通过<h6>)。如果您想表达强烈的强调,请使用<strong>. 你明白了。表达什么,而不是如何;将如何做留给样式表设计者。

</肥皂盒>

于 2010-02-14T05:37:22.933 回答
0

不是应该避免表现性元素,而是标记应该尽可能语义化。在设计文档结构时,应将默认样式视为次要影响。如果一个元素仅用于表示,则无论使用什么元素,它都不是语义的。

的示例用法<b>不是语义的,因为<b>没有赋予任何意义。<span class="boldtext">也不是语义的。因此,它们的用法是将表示混合到结构中。

于 2010-02-14T05:46:51.810 回答