HTML
html 结构
一个完整的 html 结构包含哪几部分结构?
- 文档声明
- html 元素
- head 元素
- body 元素
文档声明
<!DOCTYPE html>
- html 文档声明,告诉浏览器当前页面是HTML5页面,让浏览器用HTML5 的标准去解析识别html 文档
- 必须放 html 文档最前面,省略了会出现兼容问题
html 元素
-
一个文档只能有一个,所有元素的根元素
-
w3c标准建议为 html 元素增加一个lang 属性,作用:
帮助语音合成工具确定要使用的发音
帮助翻译工具确定要使用的翻译规则
head 元素
内容是一些元数据(描述数据的数据)
一般用于描述网页的各种信息,比如字符编码、网页标题、网页图标等等
-
title元素 网页标题
-
meta元素 字符编码(常见 ASCll、Unicode、utf-8/16/32)(所有网页目前都需要采用utf-8 编码,为了浏览器在解析时能正确解析出来内容,因此我们要告诉浏览器用utf-8 去解析/解码)
-
link元素 可以设置图标或引入外部样式文件
link 元素的rel 属性不能省略,用来指定文档与链接资源的关系
一般 rel 若确定,相应的type 也会默认确定,所以可以省略 type
网页图标支持的图片格式:ico、png
-
base 元素 与a 元素搭配使用
body 元素
body 内常用元素
列表
浮动一开始不是用来设置布局的(浮动的滥用)
是用来图文混排的
3 组常用展示列表的元素
- 有序列表 ol、li
- 无序列表 ul、li
- 定义列表 dl、dt、dd
ol 和 ul 子元素只能是 li
dl 的子元素只能是 dt 和 dd
让li前面的点设置红色?
li::marker {
color: red;
}
表格
- table
- tr(table row)
- td (table define)
table>tr>td
表格的其它元素
tbody 表格内容
caption 表格标题
thead 表头
tfoot 页脚
单元格合并
td设置这些属性
- colspan 跨行
- rowspan 跨列
记得合并后删去原来的单元格
表单
- form
- input 单标签
- textarea
- select、option
- button
- label 优化用户体验(for id)
- fieldset、legend 表单外围
inupt 有多种 type
input 的 type="reset"时可以重置表单(记得在同一个 form 元素中)
input 的 autoFocus 属性,当页面加载时,自动聚焦
input 的 name 和 value 属性,提交到服务器时,当参数传递给服务器
模拟百度搜索引擎
<form action="https://www.baidu.com/s">
<input type="text" placeholder="请输入内容" name="wd" />
<input type="submit" value="百度一下" />
</form>
传统表单提交
- 将所有input包裹到form中
- form 的action属性=服务器地址
- input/button类型是submit
- 点击submit,自动将所有数据提交到服务器
弊端:
1.提交会进行页面的跳转,这就意味着服务器端要提前将这个页面写好,并且将这个已经写好的页面返回给前端,前端直接展示(服务端渲染)
2.不方便进行表单数据的验证
前后端分离表单提交
- 通过js 获取到所有表单的内容
- 通过正则表达式进行表单的验证
- 发送ajax请求,将数据传给服务器
- 验证成功后,服务器后会返回结果,需要前端解析这个数据,并且决定显示什么内容
而大型公司用传统表单提交更多见,因为大公司都希望做SEO,并且这种方式(SSR服务器渲染)首屏渲染速度更快
推荐个播放器 vlc
h 元素
有助于网站的SEO(search engine optimization)优化,可以促进关键词排名
- 搜索引擎爬取网站数据时,选择的是h1 标签爬取关键词
- 建议一个网页最多只有一个h1 元素,多了有可能会被搜索引擎认为作弊,视为 k 站
魏则西事件,有家广告公司利用了这点害死了魏则西
字符实体
比较常用的
- 空格  
- 大于号 >
- 小于号 <
- & &
sapn 元素
- 区别普通文本,便于控制文本样式
- 行内元素之间有空格是因为 html 代码中的换行符
div 元素
img 元素
- 单标签
- alt 属性:图片加载失败时显示文本
web 常用图片格式
png:静态图片,支持透明
jpg:静态图片,不支持透明
gif: 动态图片,支持透明
像素
图像显示的最小单位
每个像素都可以表示一种颜色
a 元素
a 元素不一定是跳转:
如果 href 属性值是资源的下载地址的话就会下载资源
如果是邮箱地址也可能发送邮箱
- target 属性 _self当前窗口打开 _blank新窗口打开
与base 元素搭配
- 抽取多个 a 元素相同的属性
- 当a 元素的href 属性没有值时,使用base 元素的 href 值,有的话就用 a 自己的
锚点链接
点击 a 元素在网页内跳转
- 定位元素设 id
- a 元素的href 属性值为#id