前端入门第一步——HTML基础 | 青训营笔记

96 阅读4分钟

这是我参与「第四届青训营」笔记创作活动的的第1天,以青训营课程为切入点复习和回顾前端HTML基础知识,新理解,新收获。

什么是HTML?

超文本标记语言 (英语:Hypertext Markup Language,简称:HTML ) 是一种用来结构化 Web 网页及其内容的标记语言。

HTML 不是一门编程语言,而是一种用于定义内容结构的标记语言。HTML 由一系列的元素组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。通过一对标签来实现很多功能,如为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。

<p class="paragraph">My cat is very grumpy</p>

这就是基本的 HTML 元素,由开始标签,结束标签,内容,元素组成,元素也可以有属性。标签还可以嵌套标签。

HTML 语法

  • 标签和属性不区分大小写,推荐小写
  • 空标签可以不闭合,如<input /> <meta />
  • 属性值推荐用双引号包裹。

HTML 结构

一个完整的 HTML 则是由许多的元素构成,下面是最基本的 HTML 页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My test page</title>
  </head>
  <body>
    <img src="images/firefox-icon.png" alt="My test image">
  </body>
</html>
  • <!DOCTYPE html> — 文档类型。DOCTYPE 用来链接一些 HTML 编写守则,比如自动查错之类。DOCTYPE 在当今作用有限,仅用于保证文档正常读取。告诉浏览器文档的类型,让浏览器正确渲染页面。
  • <html></html> — <html> 元素。该元素包含整个页面的内容,也称作根元素。
  • <head></head> — <head> 元素。该元素的内容对用户不可见,其中包含例如面向搜索引擎的搜索关键字、页面描述、CSS 样式表和字符编码声明等。
  • <meta charset="utf-8"> — 该元素指定文档使用 UTF-8 字符编码,UTF-8 包括绝大多数人类已知语言的字符。
  • <title></title> — <title> 元素。该元素设置页面的标题,显示在浏览器标签页上,也作为收藏网页的描述文字。
  • <body></body> — <body> 元素。该元素包含期望让用户在访问页面时看到的内容,包括文本、图像、视频、游戏、可播放的音轨或其他内容。

DOM树

image.png

文档对象模型 (DOM) 将 web 页面与到脚本或编程语言连接起来。通常是指 JavaScript,但将 HTML、SVG 或 XML 文档建模为对象并不是 JavaScript 语言的一部分。DOM 模型用一个逻辑树来表示一个文档,树的每个分支的终点都是一个节点 (node),每个节点都包含着对象 (objects)。DOM 的方法 (methods) 让你可以用特定方式操作这个树,用这些方法你可以改变文档的结构、样式或者内容。节点可以关联上事件处理器,一旦某一事件被触发了,那些事件处理器就会被执行。

任何 HTML 或 XML 文档都可以用 DOM 表示为一个由节点构成的层级结构。
HTML 中每段标记都可以表示为树形结构中的一个节点,文档节点表示 HTML 元素,属性节点表示属性, 文档节点表示文档类型。

常见的HTML标签

  • 行内元素: abspanimginputselectstrong;
  • 块级元素: divullidldtddh1-5p等;
  • 空元素: <br><hr><img><link><meta>;

具体的标签介绍可以参考 MDN 和菜鸟教程。

语义化是什么

语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器很好的解析。
比如开发者应该遵循语义来编写 HTML:

  • 有序列表用 ol; 无序列表用 ul
  • lang 属性表示内容所使用的语言

语义化的好处

  • 提高代码可读性,可维护性
  • 用正确的标签做正确的事情;
  • 去掉或者丢失样式的时候能够让页面呈现出清晰的结构;
  • 搜索引擎优化,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
  • 提升无障碍性(屏幕阅读器,盲人阅读器等)