html复盘

182 阅读7分钟

这篇文章收录了html中常用元素以及好用的快捷键!

1 html结构

一个完整的html结构包含哪几部分结构?

  • 文档声明
  • html元素
  • head元素
  • body元素

1.1 文档声明

<!DOCTYPE html>
  • html文档声明,告诉浏览器当前页面是HTML5页面,让浏览器用HTML5的标准解析识别html文档
  • 必须放html文档最前面,省略了会出现兼容问题

1.2 html元素

  • 一个文档只能有一个,所有元素的根元素

  • w3c标准建议为html元素增加一个lang属性,作用:

    帮助语音合成工具确定要使用的发音

    帮助翻译工具确定要使用的翻译规则

1.3 head元素

内容是一些元数据(描述数据的数据)

一般用于描述网页的各种信息,比如字符编码、网页标题、网页图标等等

  • title元素 网页标题

  • meta元素 字符编码(常见ASCll、Unicode、utf-8/16/32)(所有网页目前都需要采用utf-8编码,为了浏览器在解析时能正确解析出来内容,因此我们要告诉浏览器utf-8去解析/解码)

  • link元素 可以设置图标引入外部样式文件

    link元素的rel属性不能省略,用来指定文档与链接资源的关系

    一般rel若确定,相应的type也会默认确定,所以可以省略type

    网页图标支持的图片格式:ico、png

  • base元素a元素搭配使用

1.3 body元素

2 body内常用元素

2.1 列表

浮动一开始不是用来设置布局的(浮动的滥用)

是用来图文混排

3组常用展示列表的元素

  • 有序列表ol、li
  • 无序列表ul、li
  • 定义列表dl、dt、dd

ol和ul子元素只能是li

dl的子元素只能是dt和dd

2.2 表格

  • table
  • tr(table row)
  • td (table define)

table>tr>td

表格的其它元素

tbody 表格内容

caption 表格标题

thead 表头

tfoot 页脚

单元格合并

td设置这些属性

  • colspan 跨行
  • rowspan 跨列

记得合并删去原来的单元格

2.3 表单

  • 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服务器渲染)首屏渲染速度更快

请求方式

最常用2种

  • get
  • post

get

?参数1&参数2

由于服务器和浏览器URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1kb

post

  • 发送给服务器的参数全部放在请求体
  • 理论上,post传递的数据量没有限制(具体还得看服务器处理能力

推荐个播放器vlc

2.4 h元素

有助于网站的SEO(search engine optimization)优化,可以促进关键词排名

  • 搜索引擎爬取网站数据时,选择的是h1标签爬取关键词
  • 建议一个网页最多只有一个h1元素,多了有可能会被搜索引擎认为作弊,视为k站

魏则西事件,有家广告公司利用了这点害死了魏则西

2.5 字符实体

比较常用的

  • 空格 &nbsp
  • 大于号 &gt
  • 小于号 &lt
  • & &amp

2.6 sapn元素

  • 区别普通文本,便于控制文本样式
  • 行内元素之间有空格是因为html代码中的换行符

2.7 div元素

2.8 img元素

  • 单标签
  • alt属性:图片加载失败时显示文本

web常用图片格式

png:静态图片,支持透明

jpg:静态图片,不支持透明

gif: 动态图片,支持透明

像素

图像显示的最小单位

每个像素都可以表示一种颜色

2.9 a元素

a元素不一定是跳转

如果href属性值是资源下载地址的话就会下载资源

如果是邮箱地址也可能发送邮箱

  • target属性 _self当前窗口打开 _blank新窗口打开

base元素搭配

  • 抽取多个a元素相同的属性
  • a元素href属性没有值时,使用base元素的href值,有的话就用a自己的

锚点链接

点击a元素在网页内跳转

  • 定位元素设id
  • a元素href属性值为#id

伪链接

没有指明具体链接地址的链接

如果点击暂时不做任何事,可以写成下面这种形式

<a href="#" onclick="return false"> </a>
<a href="javascript:"></a>

所以有时候可以把链接当做按钮来使用

href="#"时,点击会跳到顶部

img元素结合

图片链接

2.10 iframe元素

网页里嵌套网页

2.11 标签语义化

好处:

  • 维护成本低
  • 组员沟通间成本低
  • 让搜索引擎更好的识别更加重要的信息

百度搜索引擎只识别后端渲染

而谷歌搜索引擎前端渲染和后端渲染都识别

所以谷歌做的更好

3 URL

全称Uniform Resource Locator,统一资源定位符

3.1 基本格式

协议://主机地址/路径

protocol://hostname/path

更具体更完整的格式

protocol://hostname[:port]/path/[;parameters][?query]#fragment

www.baidu.com:80/s?wd=ios#pa…

http默认端口是80,ftp默认端口是21

端口可以理解为不同的服务窗口

3.2 协议

不同的协议,代表着不同的资源查找方式,资源传输方式

常见协议

http 超文本传输协议,访问的是远程网络资源https协议相当于http协议的安全版本

file 访问本地计算机上的资源,不用加主机地址

ftp 访问的是共享主机资源

mailto 访问的是电子邮件地址

4 Emmet语法

可以理解理解代码生成快捷键

html

生成子代元素 div>span

生成兄弟元素 div+span

生成分组 ()

生成数字 $

生成内容 {}

生成多份 *

css

  • w100
  • w100+h100
  • 属性首字母

5 html5

狭义概念

说的是html新的元素和特性

广义

html5新的标准,包括最的html 元素+css新特性+js

5.1 新增语义化元素

  • nav
  • header
  • section
  • article
  • footer
  • aside

5.2 媒体元素

在h5之前用flash插件

  • video
  • audio

video

  • src
  • control 工具栏
  • autoplay (有兼容问题,谷歌不支持自动播放,加上muted就可以)
  • muted 静音
  • loop 循环

audio

  • src
  • control 工具栏
  • autoplay (有兼容问题,谷歌不支持自动播放,加上muted就可以)
  • muted 静音
  • loop 循环

source元素

  • 如果存在兼容性问题,可以将多个音/视频格式的数据源放到source元素中
  • 通过src指定数据来源

5.3 input元素拓展

  • placeholder
  • multiple
  • autofocus

对于type值也有拓展

  • date
  • time
  • number
  • tel
  • color
  • email
  • 等等

6 常用快捷键

  • Ctrl+Enter 写完换行
  • Ctrl+F 搜索(代码找变量/网页找元素)
  • Alt+Shift+下 向下复制当前行
  • Alt+Shift+F 代码格式化