零基础入门学习前端三件套——HTML篇 | 青训营笔记

390 阅读9分钟

零基础入门学习前端三件套——HTML篇 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第1天

前言

这是零基础入门学习前端三件套系列的第一篇笔记,从HTML开始。接下来我们将以相当直观的例子学习HTML。

HTML与CSS,哪一个更重要?

既然要学HTML和CSS,那么这两个到底哪一个更重要?

嗯…其实都很重要。

举个例子吧!

第一张图是纯 HTML 的页面效果。

image.png

第二张图是 HTML + CSS 所带来的页面效果。

image.png

由此可见内容都在HTML中,HTML是必要的;而拥有CSS的HTML非常美观,因此CSS也是很重要的!

但总的来说,如果没有HTML,一切都不存在。

既然如此,我们就知道他们的关系了! HTML为骨架,是支撑起网页的核心;CSS是外貌,让网页看起来更优秀。

image.png

那么,让我们开始 HTML 的学习吧!

HTML —— 超文本标记语言

HTML 是一种浏览器用于描述网页内容和框架的语言。

这到底是什么意思呢??????

简单来说,HTML,就是一堆嵌套的框架。

举个例子吧,我们来看看下面这个网页。通过它来理解 HTML 中嵌套框的含义的具体表现!

image.png

该网页以外框为基础,对内部内容进行不断细分,最终我们会发现,其内容都是嵌套在一个又一个框架当中。

那么,这就是HTML,一堆盒子,嵌套在其他盒子的里面。不用担心,让我们通过编程来逐步理解这一切吧~

HTML 基本框架结构

这是一个基本框架,是你必须要记住的重要内容!不过不要担心,让我来一步步说明这一切。图片的右侧是该示例的实现效果。

image.png

!DOCTYPE html 标签

让我们先来看看第一行的<!DOCTYPE html>

用这一行代码保证网页采用的是最新的HTML版本,而非其他奇怪的版本,以免浏览器用错误的方式解读HTML,导致网页内容显示错误。

html 标签

前后的<html></html>是HTML的根基,关于网页的一切内容都在该标签之中。

你也许注意到了,这两个html只差了一个斜杠。

这个html元素由一对开始标签结尾标签组成,这也是HTML标签的基本形式。

每一个HTML元素都有一对开始标签和结尾标签,这不仅表明了嵌套的内容应该在哪,在该标签之间还承载着内容,他们都是内容的容器。

回顾我们的代码,你可以看到代码中存在很多这样的容器。html 容器... head 容器... body 容器...所有这些容器基本上都是我们之前讨论的嵌套框表示形式。

使用这些标签,我们为语句提供了意义(意思是提供了其在网页上的表达形式)。例如,这里的 h1 标签表示“Heading!”是1级标题 ,是内容中的“主要”标题。

但是,请注意:标签之间不能交错出现,必须为嵌套的格式。

下面的 head/body 标签具有预设样式,而这是可以被改写或覆盖的。

head 标签

在head标签里,有文档的标题(title)、脚本(script)、样式(style)、有关页面数据的基本信息(“metadata”)(浏览器和搜索引擎所需要的信息)

title 标签

title 标签承担着标题栏的内容,显示在浏览器的标题栏上。

image.png

body 标签

这是页面主体(body)

image.png

最外面的框,就是body。

也就是说,显示在页面的一切内容都在body之内。

heading!是body中的第一条内容,在最上面。

Paragraph是body中的第二条内容,在第二位。

你会发现其实这一切都是按照代码顺序排列的。

常用的基础标签

这里是一些基本的 HTML 标记...你可以花点时间看看它们,但是总共有一百多个,最好在你学习的过程中在网上搜索它们。我们将详细地介绍这些标签,但前3个最重要,也最基本,因为它们在基本上所有的html文档中都是必不可少的。

最后2个是通用的html标签,没有默认的样式或表示形式。

image.png

标签属性

接下来介绍HTML标签的属性

你可以在你的元素/标签中应用任意属性。

image.png

下面是通过链接或图像设置这些HTML属性的示例。

a 标签

a = “anchor”

这里a的意思是“锚点”,能够承载一个链接,点击即可跳转至链接网页或本网页的特定位置。

其形式如下:

image.png

链接的属性名称为href,输入的链接为value。这一切属性都在开始标签中。

我们让这个 a 标签承载一个网址试试…

image.png

嗯…很简单嘛。

img 标签

接下来来看看另外一个常用的标签:img

该标签和刚刚的那些标签最大的不同是:这是一个自闭标签(self-closing tag,自我结尾的标签),这意味着该标签并非是成对出现的,而是只有一个。

我们看看这个标签的写法错在哪了。

<img src="wave.jpg"></img>

首先,它是自闭标签,因此只有一个,没有结尾标签。

其次,它是自闭的标签,因此在该标签的最后要打上一个斜杠表示自闭。

所以正确的写法应该是这样:

<img src="wave.jpg" />

如果不写这个斜杠的话,其实也不会发生什么严重的错误…

为了严谨起见,或是避免某些浏览器出现内容的错误显示,对于自闭标签应当在标签末尾加上一个斜杠以表示其自闭的特性。

如果自闭标签不自闭,浏览器看到这个就自闭了(bushi)

需要注意的是,这里使用了 src 属性以引用图片。

扩展:如何分辨哪些是自闭标签?

一个不能插入文本内容的标签即为自闭标签。例如img标签就不能用做文本标签(如果用alt属性来杠我的话我也没办法┐(゚~゚)┌,我的意思是这类标签是不能为文本带来效果的标签)

如果引用图片的 html 文件与图片在同一个文件夹内,则只需要直接输入图片名称即可。

例如对于下面这个文件路径

app/
    hello.html
    wave.jpg

我们应该写作<img src="wave.jpg" />

相对位置:

在同一文件夹中时,应该用 ./ 表示处于同一文件夹中(相对位置)

从严谨的角度来看,示例中应该用 ./wave.jpg 表示照片相对于 hello.html 的路径信息。

如果引用图片的 html 文件与图片在同一个文件夹内的另一个文件夹中时,则需要输入图片所在文件夹(/images),再输入图片名称(wave.jpg)。

如果引用图片的 html 文件与图片在不同文件夹(但父文件夹相同) 时,则需要先回到上层文件夹(../),输入图片所在文件夹(/images),再输入图片名称(/cat.gif)。

blog/
    app/
        hello.html
    images/
        cat.gif

错误示例:<img src=“cat.gif" />

正确示例:<img src=“../images/cat.gif"/>

列表

现在介绍一下列表~

image.png

其中,ol 和 ul 为列表形式标签,用以改变 li 标签的显示效果。

我们试试单独用 ul 会发生什么…什么也没有发生!

image.png

这是因为 ul 只是用于给 li 标签添加形式,没有 li 就没有实际效果。

我们添加一个 li 标签试试…这下 ul 的点列表效果就出现了

再添加一个 li 标签…显示在了第一个 li 标签的下面!这就是列表。

你也可以试试将 ul 改为 ol,看看 ol 是什么效果的列表。

div 与 span

接下来介绍以后你最常用到的元素—— div 和 span 标签

image.png

我们先来看看div标签吧。

如果我们想把 body 的内容(h1和p)放在一个框中的话…

现在把<h1><p>都放在了<div>里,似乎什么变化都没有

但事实上存在一个 div 框将内容包括在了里面!

image.png

如果没能理解的话,可以看看这篇文章:developer.mozilla.org/en-US/docs/…

再进一步...

我们已经介绍了一些非常常见的标签,但事实上还有很多标签都还没接触到。

还有这么多的标签…到底该怎么办呢?

作为一名程序员,最重要的技能当然是学会上网搜索

如果会科学上网的话,当然Google是最好的!

如果不会的话,那就用必应吧!

什么?百度?狗都不用(狗头保命)

在输入关键词之后,就找找你最能理解的答案吧~

关于MDN与W3schools:

MDN上的内容更新迅速!它像 wiki 一样由大家共同维护(不需要科学上网~)

W3schools 并不好用,尽管它总是出现在搜索结果的第一行…

对比二者,我更推荐大家使用 MDN!(在必应搜索时,MDN会倾向于在第一位出现)

一个问题

话说回来…既然 div 是通用标签,为什么不直接用 div 就行了呢?

嗯…或者说为什么只用它并不是很好?

让我们看看MDN是怎么说的吧!

div

  • “是一个存粹的容器,div 元素不会继承任何样式属性。”
  • “div 元素应只被用于没有其他语义元素(例如<article><nav>)的时候”
  • “语义切片元素:<section>, <article>, <nav>, <header>, <footer>

因此,应当有更合理的选择。

语义首次在 HTML5 中引进,如果你对向后兼容性方面感兴趣的话,可以点击下方链接: developer.mozilla.org/en-US/docs/…

简单来说,语义能够:

  • 使机器可读,对网络爬虫友好(可以有效抓取内容信息,让你的网站更容易被发现)
  • 使人类可读(更易维护,虽然我也不是很懂…)

总之不用只用 div!如果你有其他疑惑,可以问问MDN!

当然,这也不是说 div 就不好。当你只是单纯为了给某样东西应用特殊的CSS样式而想要把一些东西放在一堆标签里时,就是一个不错的 div 使用场景。

一段尾声

OK,HTML篇结束!接下来将更新 CSS 篇!敬请关注。