HTML标签:演示与结构

Jit*_*yas 5 css xhtml html5 w3c semantic-markup

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

例如:在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>
Run Code Online (Sandbox Code Playgroud)

谁决定哪个HTML标记是表现形式,哪个不是 - 以及它们如何做出决定?它是一个特别大的组织,如W3C,还是基于Web开发人员群体,即网络社区?另外,在两者之间,我们应该遵循哪些建议来决定哪些标签是表现性的?

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

在用户/可用性/可访问性的观点

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

在开发人员的角度来看

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

它需要更多的时间来编写,并且它比HTML和CSS中的标签使用更多的包机空间.

例如:

而不是使用:

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

.boldtext {font-weight:700}
Run Code Online (Sandbox Code Playgroud)

我们可以用:

<b>Some text<b>

b  {font-weight:700} 
Run Code Online (Sandbox Code Playgroud)

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

我们也可以这样做:

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

b.important  {font-weight:700}
Run Code Online (Sandbox Code Playgroud)

每当我们想要改变字体权重时,我们css只能在两个例子中进行更改.

如果w3c在其识别的doctypes中认为标签有效,那么不使用任何W3C或HTML规范无法直接识别的X/HTML表示标签的优点是什么?

我们可以更改任何设计参数而无需更改HTML中的任何内容 这是否适合内容和表示分离的模因?

如果任何HTML标记违反了分离规则,那么css属性是否Content也会中断?

看到这篇文章.

为什么是HEIGHT和WIDTH为属性IMG允许的元素?它不会打破分离规则吗?关于这个问题的辩论可以在这里找到.

Chr*_*ung 7

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

描述一个元素是什么它的内容(而不是如何看起来应该)是一个结构元素.根据定义,其他所有内容都不是结构性的,因此也是表示元素.

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

制作精良的HTML不应该关注它应该如何看待.这是样式表的工作.它应该留给样式表的原因是你可以为桌面计算机提供一个样式表,为上网本提供另一个样式表,智能手机,"dumbphones"(缺乏更好的术语),Kindles,以及(如果你关心可访问性,你应该屏幕阅读器.

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

要使用你的榜样,而不是使用<b>,你应该问自己什么气魄应该表达.如果您尝试表达节标题,请使用其中一个标题标记(<h1>直通<h6>).如果你想表达强调,请使用<strong>.你明白了.表达什么,而不是如何 ; 离开如何到样式表设计师.

</肥皂盒>


And*_*ore 7

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公司是一家绿色认证的公司.

以下是使用<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>

在此示例中,单词green以绿色样式,仅用于反映颜色,而不是添加任何强调(<em>)或强调(<strong>).