web
:互联网。w3c
:万维网联盟,w3.org,为互联网提供各种标准。xml
:可扩展的标记语言,extension markup language
,用于定义文档结构。html
:超文本标记语言,Hyper Text Markup Language
,是w3c
组织定义的语言标准,html
是用于描述页面结构的语言。MDN
:Mozilla Development Network
,Mozilla
开发者社区。css
:CSS
是用于描述页面展示的语言,是w3c
组织定义的语言标准。html
决定了网页有什么,css
决定了网页长什么样子。html
和css
都是交给浏览器内核执行。shell
+ 内核core
,常见的浏览器以及内核如下【五大浏览器、四大内核】
IE
:Trident
Firfox
:Gecko
Chrom
:webkit
/blink(现在)
Safari
:webkit
Opera
:blink
W3C
现在推荐的标准为html5
+css3
,css3
目前还没有制作完成。C/S架构(Client/Server)
:bilibili
、微信、QQ
等——需要安装、偶尔更新、不跨平台,但是大型专业应用、安全性要求较高的应用需要采用C/S
架构。B/S架构(Browser/Server)
:小程序、网页等——无需安装、无需更新、可跨平台。元素element
又叫做标签、标记,元素 = 起始标记(begin tag) + 结束标记(end tag) + 元素内容 + 元素属性
,没有结束标记的元素叫做空元素。属性 = 属性名 + 属性值
,属性大体上可以分为两类:
元素之间可以嵌套使用,因此元素之间就存在了父元素、子元素、祖先元素、后代元素、兄弟元素这些元素关系。
W3C
】DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
body>
html>
:文档声明,告诉浏览器当前文档使用的
HTML
标准是HTML5
,如果不写文档声明,可能导致浏览器进入怪异渲染模式。
:根元素,一个
html
文件中有且只能有一个根元素,它是所有元素的父元素或祖先元素。在HTML5
中可以省略根元素。
lang
属性:全局属性,表示该元素内部的文字使用的是哪一种自然语言。
en
:英语。cmn-hans
:汉语。zh-CN
也表示汉语,但是已经过时了。:文档头,文档头中的内容不会显示到页面上。
元素:文档的元数据,附加信息。
charset
属性用来指定网页内容的编码。
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
head>
:文档体,页面上所有要参与显示的元素,都应该放到文档体中。
语义化
即每一个HTML元素都有具体的含义,即选择什么元素取决于内容的含义,而不是显示出的效果。如a
元素表示超链接,p
元素表示段落,h1
表示一级标题等等。元素的显示效果由CSS
控制,不同元素在浏览器中具有不同的显示效果,是因为浏览器自带默认的CSS
样式。那为什么需要语义化?
为了搜索引擎优化SEO
:语义化便于搜索引擎bing、百度、Google
爬虫理解,和搜索引擎建立良好的沟通,能让爬虫爬取更多关键有效的信息。
便于其它开发者阅读代码。
方便其他设备阅读,如屏幕阅读器,盲人设备和移动设备等。
在使用文本元素时,经常需要用到一些测试文本,这时就可以使用乱数假文lorem
,乱数假文即没有任何实际含义的文字,经常用来测试排版。如下:
<p>Lorem, ipsum dolor.p>
<p>Quidem, autem voluptatem?p>
<p>Ratione, vitae molestiae.p>
<p>Harum, sint illo!p>
<p>Voluptates, nihil dolorem?p>
<p>Aliquam, vel labore?p>
在html
中,常用的文本元素如下:
h
元素:h1~h6
,共六级标题。
<h1>1级标题h1>
<h2>2级标题h2>
<h3>3级标题h3>
<h4>4级标题h4>
<h5>5级标题h5>
<h6>6级标题h6>
p
元素:表示一个段落。
<p>这是一个段落p>
<p>这是一个段落p>
<p>这是一个段落p>
span
元素:无语义,仅用来设置样式。
<p>
三原色有<span style="color: red;">红span>、<span style="color: green;">绿span>、<span style="color:blue">蓝span>
p>
pre
元素:预格式化文本元素。
空白折叠:在源代码中的连续空白字符【空格、换行、制表符】,在页面显示时会被折叠为一个空格。
在pre
元素中的内容不会出现空白折叠,里面的内容会按照源代码格式显示到页面上。该元素通常用于在网页中显示一些源代码。pre
元素功能的本质是它有一个默认的CSS
属性white-space: pre
,显示代码时,通常外面会加上code
元素,code
表示代码区域。
<pre>
<code>
var i = 2;
if(i) {
console.log(i);
}
code>
pre>
实体字符entity: 通常用于在页面中显示一些特殊字符
- &单词;(常用)
- 数字;
常用的实体字符: 更多的见w3.org
- < <
- > >
- 空格
- © 版权符号
- & &
a
元素常用属性
href
:hyper reference
,通常表示跳转地址。id
:全局属性,表示元素在文档中的唯一编号。target
:表示跳转窗口位置。
_self
:在当前窗口打开,默认值。_blank
:在新窗口中打开。title
:全局属性,表示提示信息。常见的链接
普通链接:跳转地址
<a href="https://baidu.com">百度a>
锚链接:跳转到某个锚点。如果当前锚点是在当前网页,则页面不会刷新,否则页面刷新。
功能链接:点击后执行JS
代码,触发某个功能。
<a href="javascript:alert('哈哈哈')">弹出哈哈哈a>
<a href="mailto:2781196094@qq.com">发送邮件a>
<a href="tel:1899023926035">拨打电话a>
站内资源
:当前网站的资源,一般使用相对路径。绝对路径的书写方式为schema://host:port/path
。
schema
:协议名,https、http、file(表示本地文件)
,当跳转目标和当前页面协议相同时,可以省略协议。host:port
:主机名:端口号
,主机名可以是域名、IP
地址,如果协议是http
则默认端口号为80
。如果协议是https
,则默认端口号为443
。端口号一般有默认值,可以省略。path
:路径。站外资源
:非当前网站的资源,只能使用绝对路径。
./
:表示当前资源所在目录,可以省略。../
:表示上一级目录。img
img
元素是一个空元素,常用属性如下:
src
:source
,图片地址。alt
:当图片资源失效时,将使用该属性的文字替代图片。width
与height
:设置图片的宽高,一般只设置一个,另一个属性会进行等比例缩放。与a
元素联用:点击图片跳转到指定链接。
<body>
<a href="https://www.yili.com" target="_blank">
<img src="./imgs/logo.png" alt="伊利官方网站">
a>
body>
与map
元素联用:点击图片的不同区域跳转到不同的地址。img
元素中使用usemap="#mapname"
和map
元素进行关联。
<body>
<img src="./imgs/solar.png" alt="八大行星" title="八大行星" width="1000" usemap="#solar_map">
<map name="solar_map">
<area shape="circle" coords="167, 312, 100" href="https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431" alt="地球" target="_blank">
<area shape="rect" coords="167, 312, 100" href="https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431" alt="金星" target="_blank">
<area shape="poly" coords="167, 312, 100" href="https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431" alt="天王星" target="_blank">
map>
body>
与figure
元素联用:当图片配有文字描述时,计算机并不知道该图片与文字有所关联,可以使用figure
元素将其关联起来。
figure
、figcaption
元素figure
用于定义一个可附加标题的内容元素,其子元素figcaption
用来为figure
元素添加标题或描述信息,通常用于把图片、图片标题、描述内容包裹起来,如页面中的插图卡片。HTML5
中新增,浏览器支持程度比较高,IE8
及以下不支持。figure
的浏览器默认样式是宽度100%
,高度依赖其内容的高度。figure
可以有多个子元素,但最好只有一个figcaption
元素。figure
元素的内容不仅仅限于图片, 还可以包括诗词、代码段、表格。图片
<figure>
<img src="image.png" alt="">
<figcaption>caption and descriptionsfigcaption>
figure>
代码段
<figure>
<figcaption>codefigcaption>
<pre>
function log(val) {
console.log(val)
}
log('hello world')
pre>
figure>
引用文本
<figure>
<figcaption>Shakespeare: figcaption>
<blockquote>Nutrition books in the world. There is no book in life, there is no sunlight; wisdom without
books, as if the birds do not have wings.blockquote>
figure>
诗词
<figure>
<figcaption>滕王阁序figcaption>
<p>落霞与孤鹜齐飞,秋水共长天一色。p>
figure>
图片插图
MessyDuke
Duke is very bored. When he looks at the sky, he feels to run.
audio
、video
video
:视频,通常使用.mp4
文件、.webm
文件。
audio
:音频,通常使用.mp3
文件。
布尔属性:只有两种状态,要么不写False
,要么取值为属性名或只写属性名True
。audio
、vedio
常用的布尔属性如下:
controls
:控制控件的显示。
autoplay
:自动播放。
muted
:静音播放。
loop
:循环播放。
<audio src="video&audio/高鱼 - 天下.mp3" controls="controls" loop="loop" autoplay="autoplay">audio>
兼容性问题:旧版的浏览器不支持audio、video
元素,或者不同的浏览器支持的音频格式可能不一致,因此开发中一般同一个视频可能会准备多种格式。
<video controls autoplay muted loop style="width:500px;">
<source src="media/open.mp4">
<source src="media/open.webm">
<p>
对不起, 您的浏览器不支持播放.mp4、.webm格式文件, 请下载最新版浏览器
p>
video>
有序列表:ol
表示整个列表,li
表示列表中每一项。ol
的子元素只能是li
。
type
属性:除非列表中序号很重要才使用type
属性,否则使用CSS
中的list-style-type
属性设置序号样式。
a
:表示小写字母编号。A
:表示大写字母编号。i
表示小写罗马数字编号。I
:表示大写罗马字母编号。1
:表示使用数字编号,默认值。reverse
属性:布尔属性,倒序。
<p>把大象装进冰箱需要哪三步p>
<ol type="i">
<li>打开冰箱门li>
<li>把大象放进去li>
<li>关上冰箱门li>
ol>
无序列表:ul
表示整个列表,li
表示列表中每一项,ul
的子元素只能是li
,开发中无序列表常用于制作菜单或新闻列表。
<p>想要去旅游的城市p>
<ul>
<li>重庆li>
<li>浙江li>
<li>北京li>
ul>
定义列表:通常用于一些术语的定义,dl
表示整个列表,dt
表示术语,dd
表示术语的描述。
<p>HTML中的术语解释p>
<dl>
<dt>HTMLdt>
<dd>
<p>超文本标记语言XXXXXp>
dd>
<dt>元素dt>
<dd>
<p>组成HTML文档的单元XXXXp>
dd>
dl>
容器元素,表示一块区域,内部用于放置其他元素。在网页中最常见的容器元素就是div
元素,div
元素没有语义,浏览器无法理解每个div
区域的含义。语义化容器元素即浏览器很容易理解每个区域的含义,如下:
article
:通常用于表示整篇文章。
header
:通常用于表示页头,也可以用于表示文章的头部。
footer
:通常用于表示页脚,也可以用于表示文章的尾部。
section
:通常用于表示文章的章节。
aside
:通常用于表示侧边栏,即一些附加信息。
nav
:通常用于表示导航信息。
<article>
<header>
<h1>地球大爆炸h1>
header>
<section>
<p>第一章p>
<p>Lorem, ipsum dolor.p>
<p>Officiis, magni velit.p>
<p>Nobis, esse odio.p>
section>
<section>
<p>第二章p>
<p>Lorem, ipsum dolor.p>
<p>Officiis, magni velit.p>
<p>Nobis, esse odio.p>
section>
<aside>侧边栏aside>
<footer>作者: XXXfooter>
article>
&
行内元素在HTML
和CSS
的体系中,块级元素和行内元素是两种不同类型的HTML
元素,它们在页面布局和显示方式上有着显著区别。
h1-h6
、p
、li
、ol
、from
等。CSS
设置宽高【部分元素如img
元素除外】,宽高由内容决定,一般只能包含行内元素。常见的行内元素有a
、span
、img
等等。对于更具体的元素说明以及元素间的嵌套关系,可以去mdn
等网站查看。
del
:文本删除效果
ins
:文本下划线效果
sub
:文本下标效果
sup
:文本上标效果
abbr
:显示缩写说明
/*鼠标移到缩写文本处可以显示缩写说明*/
<abbr title="缩写说明">
缩写文本
abbr>
jpg
格式:有损的压缩格式,把肉眼不容易观察出来的细节丢弃。优点是支持颜色丰富,占用空间较少;缺点是不支持透明背景、不支持动态图。常用于网站的产品宣传图。
png
格式:无损的压缩格式,能够更高质量的保存图片。优点是支持颜色丰富,支持透明背景;缺点是占用空间略大,不支持动态图。常用于公司logo
、重要配图。
bmp
格式:不进行压缩的一种格式,在最大程度上保留图片上的更多细节。优点是支持颜色丰富,保留细节更多;缺点是占用空间极大,不支持动态图。常用于一些大型游戏中的图片。
gif
格式:优点是支持简单的透明背景,支持动态图。缺点是支持的颜色较少。常用于网页中的动态图片。
webp
格式:谷歌推出的一种格式,专门用来在网页中呈现图片。具备上述几种格式的优点,但兼容性不太好。常用于网页中的各种图片。
base64
格式:
本质:一串特殊的文本,要通过浏览器打开,传统的看图软件无法打开。
原理:把图片进行base64
编码,形成一串文本,靠一些网站和工具生成。
使用:直接作为图片标签的src
属性的值即可。
使用场景:一些较小的图片或需要和网页一起加载的图片。
图片为什么要转换成base64
格式:
https
请求下载而来。而base64
可以随着HTML
的下载的同时下载到本地,减少https
请求。base64
格式的文件,把样式放在全局中,比如common.css
,以后在使用时就可以直接加类名,而不需要多层寻找文件路径,提升开发效率。