最近追更winter老师的重学前端,发现自己平时 div + span 写惯了,很多html标签的用法都不清楚。虽然 div + span 就可以解决绝大多数的问题,但是语义化的标签确实能让代码的可读性更高。记录一下。
之前语义化标签我基本上只用到header、nav、section、footer、aside,article用到的场景不多。 我之前以为aside标签就是侧边导航,现在发现aside其实不仅仅包含导航,它可以放任何在侧边的内容,比如侧边的广告、侧边文章的标题列表(aside包含nav的关系)。
address标签
乍看这个标签通常会以为这个标签里包含的是一个地址,其实不然。 address标签通常定义文档或者文章作者的联系信息,而不是一个地址。
w3school里介绍的:
<address> 标签定义文档或文章的作者/拥有者的联系信息。
如果 <address> 元素位于 <body> 元素内,则它表示文档联系信息。
如果 <address> 元素位于 <article> 元素内,则它表示文章的联系信息。
<address> 元素中的文本通常呈现为斜体。大多数浏览器会在 address 元素前后添加折行。
最后还给了一个提示
提示:<address> 元素通常连同其他信息被包含在 <footer> 元素中。
hgroup标签
hgroup标签通常用于给标题分级。我们都知道html有 <h1> - <h6> 的标签用于标题。
但试想这样一个情况:你有两级标题,一级标题用<h1>,一级标题还有个副标题用了<h2>, 二级标题用了<h3>。 在结构上这些标题分成了三级,这跟你预期的不一样,这个时候,我们用hgroup标签将前两个包起来,它们就成为同一层级的了。一级标题
副标题
二级标题
复制代码
em标签
em标签的使用有点像我们平时讲话的重音。
比如:我们中出了一个叛徒
<p>我们中出了一个叛徒。<p/>
这句话如果重音不一样,表达的意思也是不同的:
我们中出了一个 叛徒。
我们 中出 了一个叛徒。你看,意思就不同了吧。而em标签就可以用来区分重音。
<p>我们中出了一个<em>叛徒</em>。<p/>
<p>我们<em>中出<em/>了一个叛徒。<p/>
nice
ruby标签
ruby标签用来给字符注释,简单来说就像双语字幕,下面是文字,上面是注释。这个用法好像是从日本那边学来的,所以w3c上说是一般东亚使用。
浏览器的话不支持ie8及以下。w3c上的示例:
漢 //要注释的文字 //rp只有在支持的浏览器上才显示 ㄏㄢˋ 复制代码
如果浏览器支持:
不支持的话就不会分行:(应该是这个样子,我电脑上没有ie)
漢 (ㄏㄢˋ)
abbr标签
abbr标签指示简称或缩写。看一个w3school给出的例子:
The PRC was founded in 1949.复制代码
blockquote标签 和 q标签
这两个标签都用来表示引用。
不同的是:blockquote一般用来表示块引用,q一般用来表示行引用。 表现效果也不太一样:blockquote引用的内容外边距会增大,q引用内容会在给内容加上双引号。cite标签
cite标签用来定义作品(比如书籍、歌曲、电影、电视节目、绘画、雕塑等等)的标题。
time标签
time标签用来定义日期或者时间。
我们在每天早上 起床。
我在 是条咸鱼。
复制代码
figure标签 和 figcaption标签(IE9及以上)
菜鸟教程上给出的定义是:
<figure> 标签规定独立的流内容(图像、图表、照片、代码等等)。
<figure> 元素的内容应该与主内容相关,同时元素的位置相对于主内容是独立的。如果被删除,则不应对文档流产生影响。
<figcaption> 标签定义 figure 元素的标题(caption)。
"figcaption" 元素应该被置于 "figure" 元素的第一个或最后一个子元素的位置。
也就是我们常用的 标题+图片 的形式可以用 figure + figcaption 来表现
复制代码
效果:
此外,还有类似 samp、code等用作计算机程序输出的标签。 再做一点补充(图片转自winter老师的重学前端04):
先记这么多,有不对的地方欢迎指正~