个人博客地址 www.codermjjh.cn/ 大家走过路过不要错过
HTML的结构
完整的HTML结构
- 一个完整的html结构分为哪几部分呢?
- 文档声明
- html元素
- head元素
- body元素
<!DOCTYPE html>
<head>
<title>Document</title>
</head>
<body>
</body>
</html>
文档声明
- HTML最上方的一段文本我们称之为文档类型声明,用于声明文档类型
<!DOCTYPE html>
-
- HTML文档声明,告诉浏览器当前页面是HTML5页面:
- 让浏览器用HTML5的标准去解析识别内容;
- 必须放在HTML文档的最前面,不能省略,省略了会出现兼容性问题;
-
HTML5的文档声明比HTML4.01、XHTML1.0简洁非常多(了解即可)
html元素( lang )
-
****元素表示一个HTML文档的根(顶级元素),所以它也被称为根元素。
-
所有其他元素必须是此元素的后代。
<!DOCTYPE html> <html lang="en"></html>
-
-
W3C标准建议为html元素增加一个lang属性,作用是
- 帮助语音合成工具确定要使用的发音
- 帮助翻译工具确定要使用的翻译规则
-
比如常用的规则:
- lang="en”表示这个HTML文档的语言是英文;
- lang="z-CN"表示这个HTML文档的语言是中文:
head元素
-
HTML head元素规定文档相关的配置信息(也称之为元数据),包括文档的标题,引用的文档样式和脚本等。
-
什么是元数据(meta data),是描述数据的数据:
-
这里我们可以理解成对整个页面的配置:
-
-
网页的标题:title元素
<title>网页的标题</title>
-
网页的编码:meta元素
-
可以用于设置网页的字符编码,让刘览器更精准地显示每一个文字,不设置或者设置错误会导致乱码:
-
一般都使用utf-8编码,涵盖了世界上几乎所有的文字
<metac charset="utf-8">
-
body元素
-
body元素里的内容讲是你在浏览器窗口中看到的东西,也就是网页的具体结构
- 大部分HTML元素都是在 body中编写的
<body> <input type="text"> <ul> <li>苹果</li> <li>香蕉</li> <li>橘子</li> </ul> </body>\
HTML元素
- HTML元素本身很多,但是常用的元素就是那么几个。
- developer.mozilla.org/zh-CN/docs/…
- 我们只需要记住常用的,不常用的学会查看文档即可:
- 常用的元素(暂时掌握下面几个就够了,90%时间都在写这几个):
- p元素、h元素:
- img元素、a元素、iframe元素:
- div元素、span元素;
- 下阶段学习的元素:
- ul、ol、i元素:
- button:元素、input元素:
- table、thead、tbody、thead、th、tr、td;
HTML元素(重点)
认识元素
- 我们会发现HTML本质上是由一系列的元素(Element)构成的;
- 什么是元素(Element)呢?
- 元素是网页的一部分;
- 一个元素可以包含一个数据项,或是一块文本,或是一张照片,亦或是什么也不包含;
- 那么HTML有哪些元素呢?
- 我们会发现元素非常非常的多,这么多能记得住吗?
- 常用的,用的多自然就记住了;
- 不常用的,知道在哪里查找即可;
元素的组成
- 剖析一个HTML元素的组成:
- 这个元素的主要部分有:
- 开始标签(Opening tag):包含元素的名称(本例为 p),被左、右尖括号所包围。表示元素从这里开始或者开始起作用 —— 在本例中即段落由此开始。
- 结束标签(Closing tag):与开始标签相似,只是其在元素名之前包含了一个斜杠。这表示着元素的结尾 —— 在本例中即段落 在此结束。初学者常常会犯忘记包含结束标签的错误,这可能会产生一些奇怪的结果。
- 内容(Content):元素的内容,本例中就是所输入的文本本身。
- 元素(Element):开始标签、结束标签与内容相结合,便是一个完整的元素。
元素的属性
-
元素也可以拥有属性(Attribute):
-
属性包含元素的额外信息,这些信息不会出现在实际的内容中。
-
一个属性必须包含如下内容:
- 一个空格,在属性和元素名称之间。(如果已经有一个或多个属性,就与前一个属性之间有一个空格。)
- 属性名称,后面跟着一个等于号。
- 一个属性值,由一对引号“ ”引起来。
-
创建一个超链接元素a:
属性的分类
- 有些属性是公共的,每一个元素都可以设置
- 比如class、id、title属性
- 有些属性是元素特有的,不是每一个元素都可以设置
- 比如meta元素的charset属性、img元素的alt属性等
- 不用去记忆,后续学到的时候自然就知道了
单标签元素 – 双标签元素
- 双标签元素:我们会发现前面大部分看到的元素都是双标签的;
- html、body、head、h2、p、a元素;
- 单标签元素:也有一些元素是只有一个标签;
- br、img、hr、meta、input;
- 注意事项:
- HTML元素不区分大小写,但是推荐小写
元素的结构总结
元素的嵌套关系
-
某些元素的内容除了可以是文本之外,还可以去其他元素,这样形成了元素的嵌套
<ul> <li> <div> <span>第一段文字</span> <span>第一段文字</span> <span>第一段文字</span> </div> <div></div> <div></div> </li> </ul>
常见元素
常见元素-h元素
- 在一个页面中通常会有一些比较重要的文字作为标题,这个时候我们可以使用元素。
- h1-h6标题(Heading)元素呈现了六个不同的级别的标题
- Heading是头部的意思,通常会用来做材题
- h1级别最高,而h6级别最低
- 实际上就是给了不同的css进行调整
- 注意:h元素通常和SEO优化有关系(什么是SEO,后续再介绍)
常见元素-p元素
- 如果我们想表示一个段落,这个时候可以使用p元素
- HTML
元素(或者说HTML段落元素)表示文本的一个段落
- p元素是paragraph单词的缩写,是段落、分段的意思;
- p元素多个段落之间会有一定的间距;
常见元素-img元素
-
我们应该如何告诉浏览器来显示一张图片呢?使用mg元素
-
HTML
元素将一份图像嵌入文档.
- img是image单词的所以,是图像、图像的意思;
- 事实上img是一个可替换元素(replaced element);img有两个常见的属性:
-
src属性:source单词的缩写,表示源
- 是必须的,它包含了你想嵌入的图片的文件路径。
-
alt属性:不是强制性的,有两个作用
- 作用一:当图片加载不成功(错误的地址或者图片资源不存在),那么会显示这段文本:
- 作用二:屏幕阅读器会将这些描述读给需要使用阅读器的使用者听,让他们知道图像的含义;
-
某些其他属性目前已经不再使用
- 比如width、height、border
img-元素-图片的路径
- 设置img的src时,需要给图片设置路径;
- 网络图片:一个URL地址(后续会专门讲URL)
- 网络图片的设置非常简单,给一个地址即可
- 本地图片:本地电脑上的体魄,后续会和html一起部署刀服务
- 网络图片:一个URL地址(后续会专门讲URL)
- 本地图片的路径又两周方式
- 方式一:绝对路径(几乎不用);
- 电脑的根目录一直找到资源的路径
- 方式二;相对路径(常用)
- 相当于文件夹的一个路径
- ./ 代表当前文件夹(1个),可以省略
- ../ 代表上级文件夹(2个)
- 方式一:绝对路径(几乎不用);
- 对于网页来说,不管什么操作系统(Windows,Mac,Linux),路径分隔符都是/,而不是\
img元素-图片的格式
常见元素-a元素
-
在网页中我们经常需要跳转到另外一个链接,这个时候我们使用元素:
-
HTMLa元素(或称锚(anchor)元素):
- 定义超链接,用于打开新的URL:
-
a元素有两个常见的属性:
- href:Hypertext Reference的简称
- 指定要打开的URL地址:
- 也可以是一个本地地址:
- target:该属性指定在何处显示链接的资源,
- _self:默认值,在当前窗打开URL
- _blank:在一个新的窗口中打开URL:
- 其他不常用,后面iframe可以讲一下:
- href:Hypertext Reference的简称
a元素-锚点链接
-
锚点链接可以实现:跳转到网页中的具体位置
-
锚点链接有两个重要步骤:
- 在要跳到的元素上定义一个id属性;
- 定义a元素,并且a元素的href指向对应的id;
<a href="#one">段落1</a> <p id="one"></p>
a元素-图片链接
-
在很多网站我们会发现图片也是可以点击进行跳转的
- img元素跟a元素一起使用,可以实现图片链接;
- img元素跟a元素一起使用,可以实现图片链接;
-
实现思路:
- a元素中不存放文字,而是存放一个img元素;
- 也就是img元素是a元素的内容;
<a href="https://www.mi.com/redmik50"> <img src="./images/xiaomi_01.jpeg" alt="小米手机"> </a>
a元素-其他URL地址
-
a元素一定是用来跳转到新网页的么?
- github.com/coderwhy/HY… 下载
- mailto:12345@qq.com 邮件
<a href="https://github.com/coderwhy/HYMiniMall/archive/master.zip ">网页下载</a> <a href="mailto:12345@qq.com">邮件</a>
iframe元素
- 利用iframe元素可以实现:再一个HTML文档中嵌入其他HTML文档
- frame border属性
- 用于规定师傅线上边框
- 1:显示
- 0:不显示
- 用于规定师傅线上边框
- a元素target其他值
- _parent:再父窗口打开URL
- _top:在顶层窗口打开URL
div、span元素
div、span元素的历史
- 在HTML中有两个特殊的元素div元素、span元素:
- div元素:division,分开、分配的意思;
- span元素:跨域、涵盖的意思;
- 这两个元素有什么作用呢?无所用、无所不用。
- 产生的历史:
- 网页的发展早期是没有css,这个时候我们必须通过语义化元素来告知浏览器一段文字如何显示;
- 后来出现了css,结构和样式需要分离,这个时候html只需要负责结构即可;
- 比如h1元素可以是一段普通的文本+CSS修饰样式;
- 这个时候就出现了div、span来编写HTML结构所有的结构,样式都交给css来处理;
- 所以,理论上来说:
- 我们的页面可以没有div、span;
- 我们的页面也可以全部都是div、span;
- 以上两种都比较极端,所以现在引入了语义化的HTML标签使用,什么样的标签就做什么样的事情
div、span元素的区别
- 这个时候有一个问题:我出现一个不就可以了吗?
- div元素和span元素都是“纯粹的” 容器,也可以把他们理解成“盒子”,它们都是用来包裹内容的;
- div元素:多个div元素包裹的内容会在不同的行显示;
- 一般作为其他元素的父容器,把其他元素包住,代表一个整体
- 用于把网页分割为多个独立的部分
- span元素:多个span元素包裹的内容会在同一行显示;
- 默认情况下,跟普通文本几乎没差别
- 用于区分特殊文本和普通文本,比如用来显示一些关键字
- div元素:多个div元素包裹的内容会在不同的行显示;
不常用元素
- strong元素:内容加粗、强调;
- 通常加粗会使用css样式来完成;
- 开发中很偶尔会使用一下;
- i元素:内容倾斜;
- 通常斜体会使用css样式来完成;
- 开发中偶尔会用它来做字体图标(因为看起来像是icon的缩写);
- code元素:用于显示代码
- 偶尔会使用用来显示等宽字体;
- br元素:换行元素
- 开发中已经不使用;
- 更多元素详解,查看MDN文档:
HTML的类型
-
在前面我们会经常提到div是块级元素会独占一行, span是行内级元素会在同一行显示.
- 到底什么是块级元素, 什么是行内级元素呢?
-
HTML定义元素类型的思路:
- HTML元素有很多, 比如h元素/p元素/div元素/span元素/img元素/a元素等等;
- 当我们把这个元素放到页面上时, 这个元素到底占据页面中一行多大的空间呢?
- 为什么我们这里只说一行呢? 因为垂直方向的高度通常是内容决定的;
- 比如一个h1元素的标题, 我们必然是希望它独占一行的, 其他的内容不应该和我的标题放在一起;
- 比如一个p元素的段落, 必然也应该独占一行, 其他的内容不应该和我的段落放在一起;
- 而类似于img/span/a元素, 通常是对内容的某一个细节的特殊描述, 没有必要独占一行;
-
所以, 为了区分哪些元素需要独占一行, 哪些元素不需要独占一行, HTML将元素区分(本质是通过CSS的)成了两类:
- 块级元素(block-level elements): 独占父元素的一行
- 行内级元素(inline-level elements):多个行内级元素可以在父元素的同一行中显示