近来看面试题的时候,常常看到一个问题:HTML语义化是什么意思?
w3school里面有html标签的含义。然而HTML5中对一些标签进行了修改,因为不了解H5的新定义,就很容易弄错标签之间的意思。例如:既然i标签是指斜体的意思,那么为何font-awesome这类字体要用i标签呢?这不是反语义化了吗?除此以外,em和strong都是有强调的意思,又有什么区别呢?可能这个时候又会有人说,我用div+span+css就能够实现一样的页面效果,为何非得用什么语义化的<artical>,<ul>来表示呢?
问题不少,咱们一个一个来看。
【均为学习过程当中的我的理解,可能有误。如有误解请指出,谢谢!】css
语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器很好的解析。html
有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来肯定上下文和各个关键字的权重。html5
语义化的HTML在没有CSS的状况下也能呈现较好的内容结构与代码结构面试
方便其余设备的解析segmentfault
便于团队开发和维护浏览器
The HTML <i> Element represents a range of text that is set off from the normal text for some reason, for example, technical terms, foreign language phrases, or fictional character thoughts. It is typically displayed in italic type.学习
i标签效果,i标签一般表示由于某种缘由和正常文本不一样的文本,例如专业术语、外语短语或排版用的文字。一般表现为斜体。字体
这也解决了咱们以前提到的“为何font-awesome这类字体是用i标签”这个问题。网站
The HTML element emphasis <em> marks text that has stress emphasis. The <em> element can be nested, with each level of nesting indicating a greater degree of emphasis.spa
em标签效果。em表示强调的文本。视觉上也是斜体的效果
The HTML Strong Element (<strong>) gives text strong importance, and is typically displayed in bold.
strong标签效果。以加粗的形式展示。表示这个文本的重要性,在HTML4中表示特别强调,HTML5中描述为“strong importance for its contents”
The HTML <b> Element represents a span of text stylistically different from normal text, without conveying any special importance or relevance. It is typically used for keywords in a summary, product names in a review, or other spans of text whose typical presentation would be boldfaced. Another example of its use is to mark the lead sentence of each paragraph of an article.
b标签效果。表示的文本风格不一样于正常的文本,没有表达任何特殊的重要性和相关性。一般用于关键字回顾,回顾中的产品名称或者是其余须要表现为粗体的文本。另外一个例子是标志每一个段落的lead sentence。
在HTML4以前b元素是为了使文本变为黑体,HTML4后样式信息已经被弃用,因此b元素的意义已经更改了。
不要使用b标签来标记标题,标题使用<h1>~<h6>标签。并且,当它们没有必要显示为粗体时,样式表能够改变这些元素的默认样式。
为了传达更多的语义信息,能够给b元素添加class属性,例如 b class ="lead"来标记每一个段落的第一个句子。
若是没有语义上的目的,使用css属性的font-weight:bold来让文本加粗会更好。
The HTML Mark Element (<mark>) represents highlighted text, i.e., a run of text marked for reference purpose, due to its relevance in a particular context. For example it can be used in a page showing search results to highlight every instance of the searched-for word.
mark的效果以下图。<mark>表现为高亮文本。例如咱们在网页上查找关键字时,找到的结果就会以高亮的形式展示。
不要使用mark元素来实现语法高亮,而是用span元素。
mark元素一般是表示跨越不一样的上下文中的相关文本。
表示文档中的一个区域(或节),好比,内容中的一个专题组,通常来讲会有包含一个标题(heading)。通常经过是否包含一个标题 (<h1>-<h6> element) 做为子节点来辨识每个<section>。通常来讲,一个 <section> 应该出如今文档大纲中。
<article>元素表示文档、页面、应用或网站中的独立结构,其意在成为可独立分配的或可复用的结构,如在发布中,它多是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其余独立的内容项目。
虽然em标签也是显示为斜体的效果,但不能说由于效果同样就使用i标签来代替em标签。由于两者表示的含义不一样。
举个例子。em标签:just do it already!
那么一我的或者一个软件在读这句话时,就会以强调加剧的语气来读do这个单词。
对于i标签:The word the is an article。那么在这句话中斜体并无强调的语气。只是代表the是一个article,而不是咱们平时的冠词。
在HTML4中,strong通常指的是更强的强调。HTML5中strong表示的是内容的重要性。em被用来改变一个句子的含义,例如" I love carrots" vs " I love carrots"。而strong一般用来给部分句子增长重要性。例如"Warning!This is very dangerous"
strong 和 b 算是最类似的两个元素了。那么两者之间的差异。strong表示的是一种逻辑状态,而bold表示的是物理状态。逻辑状态是从内容中分离出来,以各类不一样的形式来展示,可能你想标记为红色或者下划线或者其余,那么改变strong的属性比改变bold的属性更有意义。由于bold只是making bold,并不作任何重点性强调性的区分。
参考资料: