《重学前端》读后感(03|HTML语义:div和span不是够用了吗?)

语义类标签是什么,使用它有什么好处?

首先来说说为什么要使用语义?相信很多刚入门的前端开发工程师,写起HTML就是ul+div+span之类,不用复杂的语义标签就走天下了。这种写法,按照实际情况确实很难去区别是好还是不好,因为各有优劣。在现代互联网产品里,HTML多用于“描述界面”,而软件界的东西,实际上是几乎没有语义的。

当然,正确使用语义标签可以带来很多好处,语义标签也有他们无可替代的优点!

好处一:语义标签增强可读性,没有css的情况你通过语义标签就能看出整个网页的结构,利于团队的开发和维护。

好处二:语义标签也很适合机器阅读。它的文字表现力丰富,适合搜索引擎检索(SEO),也可以让搜索引擎爬虫更好的获取到更多有效信息,有效提升网页的搜索量,并且语义类还可以支持读屏软件,根据文章自动生成目录等等。

不过,不恰当的使用语义标签,也会造成负面影响。比如ul与ol的混淆使用,开发者应了解ul与ol的的概念和具体用法。

winter老师建议:对于语义标签,“用对”比“不用”好,“不用”比”用错“好,有理想的前端工程师还是应该去追求”用对“它们

其实HTML语言更接近我们平常说话的自然语言,我们说话没有唯一标准的措辞,语义标签也是一样。

作为自然语言延伸的语义类标签

语义标签使用的第一个场景,也是最自然的场景,就是:作为自然语言和纯文本的补充,用来表达一定的结构或消除歧义。

比如HTML5的ruby标签,它由ruby、rt、rp三个标签来实现。当微信聊天的时候,不能用ruby标签的形式,只有加个括号去注释,明显没ruby标签更为直观,效果差了不少。又或者用div+span去实现ruby的效果,显然ruby标签更为直观,可读性强。

还有一种情况就是,HTML有些标签实际上就是必要的,甚至必要的程度可以达到:如果没有这个标签,文字会产生歧义的程度。

例如em标签,我们都知道em标签用来呈现被强调的文本。

以下举例三段话,尝试发现自己哪读音会发生变化,会加重。

今天我吃了一个苹果

昨天我吃了一个香蕉

今天我吃了一个苹果

昨天我吃了两个苹果

今天我吃了一个苹果

实际上,不仅仅是读音,这里的意思也发生了变化。第一个例子中,表示我今天吃的是苹果,而不是别的什么东西,后边例子中,则表示我今天只吃了一个苹果,没有多吃。

那么当没有上下文的时候,怎么去消除歧义呢?这是em标签的用处就展示出来啦~

今天我吃了一个<em>苹果</em>

今天我吃了<em>一个</em>苹果

而em标签与strong标签又有区别,在HTML4.01中,strong标签定义为加粗的强调的文本,而在HTML5中,strong标签定义为重要的文本,区别显而易见。

作为标题摘要的语义类标签

首先我们需要形成一个概念,一篇文档会有一个树形的目录结构,它由各个级别的标题组成。这个树形结构可能不会跟HTML元素的嵌套关系一致。

例如:

<h1>HTML 语义 </h1>

<p>balah balah balah balah</p>

<h2> 弱语义 </h2>

<p>balah balah</p>

<h2> 结构性元素 </h2>

<p>balah balah</p>

......

这段HTML几乎是平铺的元素,h1 ~ p ~ h2

h1-h6是最基本的标题,它们表达了文章中不同层级的标题。有些时候,我们会有副标题,为了避免副标题产生额外的一个层级,我们使用hgroup标签,接下来看有/无group标签的对比:

<h1>JavaScript 对象 </h1>

<h2> 我们需要模拟类吗?</h2>

<p>balah balah</p>    ......

此段的标题结构为:

JavaScript 对象

    我们需要模拟类吗?

    ......

<hgroup>

<h1>JavaScript 对象 </h1>

<h2> 我们需要模拟类吗?</h2>

</hgroup>

<p>balah balah</p>  ......

此段的标题结构为:

JavaScript 对象——我们需要模拟类吗?

    ......

一对比就不难看出,标题结构的不同,在hgroup标签中的h1-h6被视为同一标题的不同组成部分。

还有另一个HTML5的section标签,<section> 标签定义了文档的某个区域。比如章节、头部、底部或者文档的其他区域。这个标签可不仅仅是一个“有语义的div”,它会改变h1-h6的语义。section的嵌套会使得其中的h1-h6下降一级,因此在HTML5以后,我们只需要section和h1就足以形成文档的树形结构。


作为整体结构的语义类标签

随着越来越多浏览器推出“阅读模式”,以及各种非浏览器终端的出现,语义化的HTML适合机器阅读的特性变得越来越重要。

应用了语义化结构的页面,可以明确的提出页面信息的主次关系,它能让浏览器很好的支持“阅读试图功能”,还可以让搜索引擎的命中率提升,同时,它也对视障用户的读屏软件更为友好。

我们正确的使用整体结构的语义类标签,可以让页面对机器更为友好。举例:

在body下面,有一个header,header里边是一个nav,跟header同级有一个aside,aside里边也有一个nav。接下来就是文章的整体了,也就是一个一个的section的堆砌。section里边可能也有嵌套,然后最后一个是footer,footer里边有一个address这样的内容。

除此之外,还有article标签,article是一种特殊的结构,它表示具有一定独立性质的文章。所以,article和body具有相似的结构,同时,一个HTML页面中可能有多个article存在。

比如一个典型的场景就是多篇新闻展示在同一个新闻专题页面中,这种类似报纸的多文章适合用article来组织。

body里边有自己的header和footer,然后里边是竖篇的article,每一个article里边都有自己的header、section、footer。这是一个经典的多文章结构。

在这个结构里,我们看到了一些新标签。

header,如其名,通常出现在前部,表示导航或介绍性的内容。

footer,通常出现在尾部,包含一些作者信息、相关链接、版权信息等。

header和footer一般放在article或者body的直接子元素,但是标准中并没有明确规定,footer也可以和aside、nav、section相关联(header不存在关联问题)。

aside表示跟文章主体不那么相关的部分,它可能包含导航、广告等工具性质的内容。

aside很容易被理解成侧边栏,实际上二者是包含关系,侧边栏是aside,aside不一定是侧边栏。

aside和header中都可能出现导航,二者的区别是,header中的导航多数是到文章自己的目录,而aside中的导航多数是关联页面或者是整站地图。

最后footer中包含adderss,这是个非常容易被误用的标签。address并非像date一样,表示一个给机器阅读的地址,而是表示“文章(作者)的联系方式”,address明确的只关联到article和body。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容