我正在查看Dive Into HTML5。这看起来很有趣,但我很困惑。
在20世纪90年代,当Netscape是浏览器而HTML是HTML2或HTML3时,有很多标签:地址,引用,代码......它们中的大多数在今天尚未使用,甚至可能已经过时。
HTML5引入标签来表达标签本身的“语义”。这一切都很有趣和游戏,但我看到这种方法有些奇怪。从技术上讲,语义可以是非常开放的。 HTML5包含文章,时间,导航栏,页脚的标签。为什么它不应包含帖子图标,作者所在地,姓名和姓氏的标签,或者其他任何你想要指定特定语义的标签(我很自信<rant>
和<nsfw>
将是非常重要的标签) :?我认为XML是将语义分配给东西的策略。没有什么禁止你在XHTML div元素下放置一个XML块,并为它分配样式表以便正确地设置样式,或者委托给适当的查看器处理那个命名空间(例如,处理{{ 3}}或RSS)。
总之,我不明白这种扩展主要关注语义的原因,当很明显语义是一个非常广泛的主题时,保证需要潜在无限量的语义标签。既然我很确定在SVG有聪明的人,我想我错了,但我想知道为什么。
答案 0 :(得分:26)
为什么文章,时间,导航栏,页脚的标签有用?
因为它们有助于解析Google等文本处理工具。
它与语义无关(至少在'广义'意义上)。相反,他们只是说:这是页面的主体(最重要的文本部分),还有充满链接的导航栏。通过这种方法,您可以轻松地提取您所需的内容。
答案 1 :(得分:8)
我也讨厌W3C的规格。有许多我不喜欢的东西,这种“语义”时尚就是其中之一。 (其他包括永远完成他们的规范并留下太多重要的细节供浏览器实现,因为他们选择)
最重要的是我不喜欢它,因为它使我作为Web开发人员的工作变得更加困难。我经常要做出是否使网页“语义正确”或“视觉/美学上令人愉悦”的选择。后者当然会赢,因为这是用户想要的,但结果验证开始失败,整个事情变得非语义(布局和其他事情的表)。
我皱眉的另一个问题是,他们已正式声明“class”属性是用于语义,但后来他们将它用于CSS中的视觉呈现选择器。
底线 - 不要混合语义和视觉表现。如果您使用某种机制来描述语义(比如标记名称,属性值或其他内容),则不要将其用于功能/视觉目的,反之亦然。
如果我要设计HTML,我只需添加一个属性“semantic”,它可以(比如“class”属性)添加到任何标签中。然后会有一些预定义的值,比如所有那些页眉/页脚/文章/引号/等。
标签会定义功能。基本上你可以将HTML标签简化为少数,例如“div”,“table / tr / td”,“a”,“img”,“form”,“input”和“select”。我可能错过了一些,但这是很大的。视觉样式将通过CSS完成。
这样,三个方面 - 语义,视觉表现和功能 - 将完全独立,不会在现实生活中解决冲突。
当然,我不认为W3C对实际解决方案感兴趣......
答案 2 :(得分:4)
HTML标记中已经存在很多以类和ID形式存在的语义,其中存在(接近)无限多种可能性,并且每个人都有自己的方式来处理这些语义。 HTML5的目标之一是尝试为此带来一些结构。您仍然可以使用类和ID扩展标记的语义。它也很可能使搜索引擎更容易。
答案 3 :(得分:3)
从尝试发表关于页面的声明或关于从页面引用的对象的角度来看它。如果你看到&lt; footer&gt;标签,所有你可以说是“这里的东西是一个页脚”并传递它。因此,添加自定义标签并不像添加属性和允许人们使用自己选择的URI来指定谓词和可选值一样通用解决方案 - RDFa因为您可以表达任何三元组而获胜 - 您喜欢RDF在页面中的方式,无论如何。
答案 4 :(得分:2)
我只是想解决你问题的一部分。你说:
在九十年代,当时 Netscape是浏览器,而html是 HTML2或HTML3,有很多 标签:地址,引用,代码...大部分 可能,它们今天仍未使用 甚至过时了。
在html中有很多标签可供选择,但缺乏使用并不意味着它们已经过时了。特别是标题标记<h1>
等,以及<ul>
,<ol>
用于以我认为语义的方式将项目连接到列表中。许多人可能不会在语义上使用标签,但创建microformats的努力是您认为是20世纪90年代的工件的持续延续。尽管全文搜索和链接分析(以谷歌的形式)是获取和理解网络的赢家,但努力使semantic web成为赢家的努力仍在继续。
很高兴看到Google's Web Stats的更新版本显示“html,因为她说话了”。但你认为许多标签未被充分利用是对的。
html5是否会成功是一个开放而有趣的问题,但是你描述为过时的标签没有去任何地方,它们在HTML 4.01和xhtml中。 HTML5似乎是为了巩固标签中有用的东西。最后,如果html5在浏览器中获得支持并使Web开发人员的工作变得更容易,那么它将会成功。 xhtml2失败了,因为它几乎未能在浏览器中被采用,并且没有做任何让网页制作者的工作变得更容易。在html5上工作的力量似乎敏锐地意识到xhtml2的失败,我认为避免让html5遭受类似的命运。
答案 5 :(得分:2)
“为什么它不应包含帖子图标,作者所在地,姓名和姓氏的标签,或者其他任何你想要指定特定语义的标签(我很自信并且会是非常重要的标签):?”
您使用&lt;对话框&gt;描述对话或评论。 Rant和NSFW是主观的术语,因此不使用它们是有道理的。
根据我的理解,一群经验丰富的网络开发人员进行了研究,并寻找大多数网站在html中的共同点。他们注意到大多数网站都有id =“header”,id =“footer”,id =“section”和id =“nav”标签,因此他们决定我们需要HTML标签来替换这些id。换句话说,不要指望它们会给你大量的HTML词汇。尽可能保持简单,同时解决MOST常用的HTML标记。
NAV标签对于提供可访问性也非常重要。您希望他们知道导航的位置,而不是强制他们查找链接是否用于导航。
答案 6 :(得分:1)
我不同意添加额外的标签。如果实际导入了详细的词汇表,则字典中的每个单词都可能有不同的标记名称。其他标签名称没有帮助,因为它们可能会向人类传达额外的含义,但却无助于机器解析语言。这就是为什么我不喜欢HTML5的“语义”标签,因为我认为这对于提供过于复杂的词汇来说是滑坡,而只是为一个未完全解决的问题提供弱解决方案。
在我看来,标记语言结构数据与树形图形式一样多。通过解析结构和正确使用语义约定(例如RDFa),可以利用上下文为其他通用标记名称提供特定含义。在这种情况下,不需要存在过多的词汇,并且可以消除结构冗余的标签名称,例如页脚和旁边。最终目标是使内容更快,更准确地同时由人和机器解释,同时使用尽可能少的代码来实现该结果。除HTML5外,该解决方案的重要性如何。
答案 7 :(得分:1)
我认为XML是将语义分配给东西的策略。
据我所知,不是没有。 XML允许定义新语言,这些语言都以相同的方式解析,因为它们都使用XML语法。
它本身并没有提供任何方法来为这些语言添加意义(“语义”只意味着“有意义”)。直到计算机获得人工智能,它们实际上并不理解意义,因此意义正是人类之间达成的共识。 HTML是最常用的语言,具有其标签的商定含义。
由于HTML非常常见,因此在其应用程序中添加一些非常通用的有意义标记会很有帮助。新的HTML5标签就是针对它的。 HTML5规范的作者确实可以沿着这条路线继续前进,为每一个特定的意义点创建标签,但由于它们不是机器人,它们可能不会。
<section>
非常有用,而且通用性足以在许多文档中有意义地应用。 <author-last-name>
不是。区分两者是判断调用,这就是人类而不是计算机编写规范的原因。
对于太具体而无法作为标记添加到HTML的自定义语义,HTML5定义microdata。
答案 8 :(得分:0)
我一直在阅读Andy Clark的书 Transcending CSS (第33页)。
...,现在广泛接受描述的描述名称,如标题,左或红色元素的外观或位置是不好的选择。
阅读完这些文字后,我问自己:嘿,不是HTML5规范中的元素,如页眉,页脚?为什么页脚更具语义? Andy在他的书中主张使用 site-info 作为页脚div的ID,这更有意义恕我直言。页脚是一个表示名称(描述元素的位置)。
答案 9 :(得分:0)
总之,AJAX。新标签旨在通过替换某些许多网站遭受的<div class="sidebar-wrap"><div class="styling-hook"><div><ul class="nav">
类型的divitis来支持现实开发人员正在做的事情。 HTML5中唯一留下的<div>
是样式挂钩。
从类中升级为标记的语义是开发人员在扩展的xhtml / css采用期间自由采用的最佳实践。查看WHATWG开发人员版本的规范部分页面here。文件本身很高兴,但如果你还没有看到它我就不会破坏它。
W3C作出某些决策的一个不太明显的原因是Webkit的重要性。如果你看,你可以看到他们在参加HTML5工作组的当前工作和实现想法方面比一些人更好。从历史上看,他们在合规方面处于领先地位(see here)。 W3C高度重视他们(即Android,iPhone,Googlebot,Chrome,Safari,Dreamweaver等)。 Google,框架用户,Wordpress / Moveable Type / Joomla!键入用户和其他人想要自包含的构建块,所以这是我们得到的样式。
Facebook是模块化的。响应式设计的网格是模块化的。 Wordpress是模块化的。 Ajax最适合模块化页面结构。小部件是模块。插件是模块。看起来我们应该试图弄清楚如何应用这些标签,以便更容易挂钩相应的元素并在我们的文档/ application / info-network hybrid Web 2.0中激活它们。
最后,HTML5应该写成xml(再次参见规范),以确保为文档的一部分发出ajax请求的工具和机器将获得格式良好的有用响应。与诸如饲料阅读器,盲文打印机,注释器等设备的媒体查询相结合的功能非常棒。我看到一个(近)未来,任何具有良好语义内容的东西都是自动的新闻源!这只有在开发人员采用和编写合规文档时才会发生