近段时间对html语言标签学习的一些记录

282 阅读4分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」。

什么是语义标签,为什么要写语义标签,什么样的语义标签才是合格的?

就我自己当下的理解,语义标签就是一个有着自己含义的标签。 那么在编写html结构的过程当中,为什么要采用语义标签。现在很多人编写网页就是一堆的div串联在一起比如说:

 <div>
    <img src="" alt="">
    <div>
       <div></div>
       <div></div>
    </div>
    <input type="" value="">
 </div>

这是我最近写的网页的一部分结构,还没有算上外面还有几层大的包裹,一个不好的html结构很容易让人看着头痛,虽然说通过特定的类名可能可以知道每个div的作用,但是一个好的标签,可以让人更快的知道每一块标签所表示的页面结构。

那为什么要进行语义化,结合上面的分享,大体上就是可以让其他人更了解你的网页结构 ,减少后面维护或者是修改所花费的时间。

对于浏览器来说,一个好的语义化页面也更有利于搜索引擎的建立索引、抓取内容。简单来说,就是浏览器比起放在div里面的内容,会更加关注h1里面的内容。

那什么样的语义标签才算是合格的呢? 之前看过一段话,在你的html文件去掉js和css的渲染之后,如果剩下的内容也还是能够呈现出很好地内容结构,让人能够看得懂,那么你的网页语义结构就是合格的。

常用的语义标签布局

H5新增布局标签
借用网上的一张图,这张图我也觉得新生来看对于一个页面的布局帮助是非常大的,从这张图上面就能大概了解到一个网页的布局,每一块应该用一个什么样的大标签,至于之后的每个模块内部的小标签,其实也能够将这个小的模块细分化,比如说<aside>标签当中的内容也还能够分为头身尾几个部分,那么这几个部分也还能够用上合适的语义标签

  • <header>元素代表网页的头部,通常用于放置整个网页的内容介绍区域,就拿掘金的网页来做个例子,那他的顶部一些Logo、主要的导航、全站链接、搜索框以及个人中心,这些的一个整合就可以作为一个<header>. 然后比如头部当中这些细分的内容就可以用一个<nav>包裹,内部在采用<ul>``<li>标签进行一个分块,分层,让人看着更加的一目了然
  • <nav> 标签就如上面所说, 用来定义一些导航的连接, 当然未必是导航栏才会用到 <nav> 如果之后有用到一些小目录之类结构, 那么整体外部也可以通过一个 <nav> 包裹
  • <main> 标签, 为什么跳过了上图中的标签冒出来一个 <main> 标签呢, 因为在我看来, <main> 标签是接下去的部分标签的大哥, <main> 标签用来规定文档的主要内容, 在一个页面当中只能有一个 <main> 标签, 那么其中当然要放置整个网页的主要内容, 当然在 <main> 的里面也还可以去分块做一些结构划分, 比如<article>, <header><body><footer>
  • <article> 标签相对于<section> 标签来说更加的独立,就像图片中的那样,<article> 用来表示整个页面独立的一个区域的内容,当然你也可以多个<article> 来组成整个页面,但是要注意的是,不能无脑的在每个小块都使用<article>,一般<article>内部就不再使用<article>了,可以用<section>代替
  • <aside>标签,用于描写侧边栏的内容,比如说一个网页布局会有一个主体部分,往往身边还会悬浮着侧边栏,这时候这个侧边栏的标签就可以使用 <aside>
  • <footer>编写整个页面的底部,一般用来放一些网址,作者,或者引用部分

总结

上面例举的标签没有特别的多,更多的还是在需要使用的时候再去进行一个查询,使用的次数多了,自然而然就会用了

在使用标签语义化的过程当中,他还有一个很大的作用。就是当你在编写一个页面的时候,在合适的单位上使用不同的语义标签能减少整个页面使用的 class 命名的数量,尽量减少页面每一个标签上都需要给它赋值 class ,偶尔可以尝试用语义标签去代替,就比如在一个最小单位的框框里面,图片可以用 <img> 标签,文字可以用 <p><i><em> 标签区分开来,这样就可以有效的减少页面使用的 class

引用部分外部文章内容链接:
[html5中section与article元素的区别 - jiaojiao085 - 博客园 (cnblogs.com)] (www.cnblogs.com/jiaojiaome/…)
[HTML5的article和section的区别 - 发福大叔 - 博客园 (cnblogs.com)](www.cnblogs.com/ms- grf/p/6855135.html)
html语义化标签 (blog.csdn.net/qq_38128179…)