HTML详解

  • HTML 基础
  • HTML 标题
  • HTML 段落
  • HTML 链接
  • HTML 图片
  • HTML 元素
  • HTML 注释
  • HTML 属性
  • HTML 文本格式化
  • HTML 头部
  • HTML css
  • HTML 表格
  • HTML 列表
  • HTML 自定义列表
  • HTML 区块
  • HTML 表单
  • HTML 框架
  • HTML 颜色
  • HTML 脚本
  • HTML 事件
  • HTML 实体
  • HTML url
  • HTML5 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新表单元素
  • 新元素
  • uotput 新属性
  • 新的语义和结构元素
  • SVG
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • MathML 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • 新元素
  • HTML5 拖放
  • Geolocation(地理定位)
  • 新的 Input 类型
  • 新的表单元素
  • 表单属性
  • HTML5 语义元素
  • Web 存储
  • localStorage 和 sessionStorage
  • Web SQL 数据库
  • Web Workers
  • HTML5 服务器发送事件(Server-Sent Events)
  • HTML5 WebSocket

HTML 基础

HTML 是一种用于创建网页的标记语言,它使用标签来定义网页的结构和内容。

HTML 标题

HTML 标题是通过 <h1><h6> 六个标签来定义的,<h1> 标签定义了网页的最重要的标题,<h6> 标签定义了网页的最低级标题。

<h1>网页标题</h1>
<h2>副标题</h2>
<h3>小标题</h3>    

HTML 段落

HTML 段落是通过 <p> 标签来定义的,<p> 标签定义了网页的正文内容。

<p>这是一个段落。</p>
<p>这是一个另一个段落。</p>

HTML 链接

HTML 链接是通过 <a> 标签来定义的,<a> 标签定义了网页的超链接。

<a href="https://www.baidu.com">百度</a>

HTML 图片

HTML 图片是通过 <img> 标签来定义的,<img> 标签定义了网页的图片。

<img src="https://www.baidu.com/img/bd_logo1.png" alt="百度logo"> 

HTML 元素

HTML 元素是 HTML 代码的基本单位,它由开始标签、内容和结束标签组成。

<标签名 属性名="属性值">内容</标签名>

HTML 注释

HTML 注释是通过 <!-- --> 来定义的,<!-- --> 之间的内容不会被显示在网页上。

<!-- 这是一个注释 -->

HTML 属性

HTML 属性是标签的附加信息,它可以用来设置标签的各种属性,如:

  • class:设置标签的类名,可以为标签添加多个类名。
  • id:设置标签的唯一标识符,可以为标签添加唯一标识符。
  • style:设置标签的样式,可以为标签添加 CSS 样式。
  • title:设置标签的提示信息,当鼠标悬停在标签上时,会显示提示信息。

HTML 文本格式化

HTML 文本格式化是指通过 HTML 标签来控制文本的显示方式,如:

  • <b> 标签定义粗体文本。
  • <i> 标签定义斜体文本。
  • <u> 标签定义下划线文本。
  • <strike> 标签定义删除线文本。
  • <sup> 标签定义上标文本。
  • <sub> 标签定义下标文本。
<p><b>粗体文本</b></p>
<p><i>斜体文本</i></p>
<p><u>下划线文本</u></p>
<p><strike>删除线文本</strike></p>
<p>H<sub>2</sub>O</p>
<p>X<sup>2</sup></p>

HTML 头部

HTML 头部是指网页的元信息,它包含网页的标题、描述、关键字、作者、和其他信息。

<!DOCTYPE html> //声明文档类型
<html> //html 根元素
<head>
	<title>网页标题</title> //网页标题
	<meta charset="UTF-8"> //网页编码
	<meta name="description" content="网页描述"> //网页描述
	<meta name="keywords" content="网页关键字"> //网页关键字
	<meta name="author" content="作者"> //作者
</head>
<body>
</body>
</html>

HTML css

HTML 样式表是一种用来控制 HTML 元素外观的语言,它可以让网页的布局、字体、颜色等都可以被定义。

<!DOCTYPE html>
<html>
<head>
	<title>网页标题</title>
	<style>
		body {
			background-color: #f2f2f2; //背景颜色
			font-family: Arial, sans-serif; //字体
			font-size: 16px; //字体大小
			line-height: 1.5; //行高
			color: #333; //字体颜色
		}
		h1 {
			font-size: 36px; //标题字体大小
			color: #333; //标题字体颜色
			margin-top: 20px; //标题顶部外边距
			margin-bottom: 10px; //标题底部外边距
		}
		p {
			margin-top: 10px; //段落顶部外边距 
			margin-bottom: 10px; //段落底部外边距
		}   
	</style>
</head>
<body>
	<h1>网页标题</h1>
	<p>这是一个段落。</p>
	<p>这是一个另一个段落。</p>
</body>
</html>

HTML 表格

HTML 表格是通过 <table> 标签来定义的,<table> 标签定义了网页的表格。

colgroup 和 col 标签定义表格的列,row 和 td 标签定义表格的行和单元格。

caption 标签定义表格的标题,thead 标签定义表格的表头,tfoot 标签定义表格的脚注,tbody 标签定义表格的主体。

border 属性定义表格边框的宽度,cellspacing 属性定义单元格之间的间距,cellpadding 属性定义单元格内容与单元格边框之间的间距。

colspan 属性定义单元格横跨的列数,rowspan 属性定义单元格纵向跨越的行数。


<table border="1" cellpadding="5" cellspacing="0">  
<caption>表格标题</caption>  
<colgroup>  
	<col span="2" style="background-color:yellow;">  
	<col style="background-color:pink;">  
</colgroup>  
<thead>  
	<tr>  
		<th>姓名</th>  
		<th>性别</th>  
		<th>年龄</th>  
	</tr>  
</thead>  
<tfoot>  
	<tr>  
		<td colspan="3">总计</td>  
	</tr>  
</tfoot>  
<tbody>  
	<tr>  
		<td>张三</td>  
		<td></td>  
		<td>20</td>  
	</tr>  
	<tr>  
		<td></td>  
		<td>25</td>  
	</tr>  
	<tr>  
		<td>王五</td>  
		<td></td>  
		<td>30</td>  
	</tr>  
</tbody>  
</table>

HTML 列表

HTML 列表是通过 <ul><ol> 标签来定义的,<ul> 标签定义无序列表,<ol> 标签定义有序列表。

li 标签定义列表项,type 属性定义列表的类型,start 属性定义列表的起始值。

<ul>
	<li>列表项1</li>
	<li>列表项2</li>
	<li>列表项3</li>
</ul>

<ol type="1" start="3">
	<li>列表项1</li>
	<li>列表项2</li>
	<li>列表项3</li>
</ol>

HTML 自定义列表

HTML 自定义列表是通过 <dl> 标签来定义的,<dl> 标签定义定义列表。

dt 标签定义定义项,dd 标签定义定义描述。

<dl>
	<dt>自定义列表1</dt>
	<dd>定义1</dd>
	<dt>自定义列表2</dt>
	<dd>定义2</dd>
</dl>

HTML 区块

HTML 区块是通过 <div> 标签来定义的,<div> 标签定义了网页的区块。

<div>
	<h2>区块标题</h2>
	<p>这是一个区块。</p>
</div>
     

span 标签定义了网页的行内元素。

<p>这是一个<span style="color:red;">红色</span>的段落。</p>

HTML 表单

HTML 表单是通过 <form> 标签来定义的,<form> 标签定义了网页的表单。
input 标签定义了表单的输入控件,type 属性定义了输入控件的类型,
name 属性定义了输入控件的名称,value 属性定义了输入控件的初始值。
label 标签定义了输入控件的标签,for 属性定义了输入控件的 id。

<form>
	<label for="name">姓名:</label>
	<input type="text" id="name" name="name" value="张三">
	<br>    
	<label for="gender">性别:</label>  
	<input type="radio" id="male" name="gender" value="male">  
	<label for="male"></label>  
	<input type="radio" id="female" name="gender" value="female">  
	<label for="female"></label>  
	<br>    
	<label for="age">年龄:</label>    
	<input type="number" id="age" name="age" value="20">  
	<br>  
	<label for="email">邮箱:</label>      
	<input type="email" id="email" name="email" value="123@qq.com">      
	<br>  
	<label for="message">留言:</label>      
	<textarea id="message" name="message" rows="5" cols="30">这是一个留言。</textarea>      
	<br>  
	<input type="submit" value="提交">        
</form> 

属性:
- accept:文件类型。
- method:提交方式。
- name:表单名称。
- target:表单提交目标。
- action:表单提交地址。
- enctype:表单提交编码类型。
- onsubmit:表单提交事件。
- onreset:表单重置事件。
- autocomplete:自动完成。
- novalidate:禁用表单验证。
- list:列表。
- min:最小值。
- max:最大值。
- step:步长。
- pattern:正则表达式。
- required:必填。
- multiple:多选。
- size:输入控件大小。
- form:表单。
- formaction:表单提交地址。
- formenctype:表单提交编码类型。
- formmethod:表单提交方式。
- formnovalidate:禁用表单验证。
- formtarget:表单提交目标。
- height:输入控件高度。
- width:输入控件宽度。
- alt:输入控件的提示信息。
- placeholder:输入控件提示信息。
- readonly:只读。
- alt:输入控件的提示信息。
- tabindex:Tab 键顺序。
- autocomplete:自动完成。
- autofocus:自动聚焦。
- checked:默认选中。
- disabled:禁用。
- form:表单。
- formaction:表单提交地址。
- formenctype:表单提交编码类型。
- formmethod:表单提交方式。
- formnovalidate:禁用表单验证。
- formtarget:表单提交目标。
- height:输入控件高度。
- list:列表。
- max:最大值。
- maxlength:最大长度。
- min:最小值。
- multiple:多选。
- name:输入控件名称。
- pattern:正则表达式。
- placeholder:输入控件提示信息。
- readonly:只读。
- required:必填。
- size:输入控件大小。
- src:图片路径。
- step:步长。
- type:输入控件类型。
- value:输入控件值。
- width:输入控件宽度。


HTML 框架

HTML 框架是通过 <frameset><frame> 标签来定义的,<frameset> 标签定义了网页的框架,<frame> 标签定义了框架内的页面。

<!DOCTYPE html>
<html>
<head>
	<title>网页标题</title>
</head>
<frameset rows="20%,80%">
	<frame src="top.html">
	<frame src="main.html">
</frameset>
</html>

HTML 颜色

HTML 颜色是通过 <font> 标签的 color 属性来定义的,<font> 标签定义了网页的字体颜色。

<font color="red">这是一个红色的字。</font>

HTML 脚本

HTML 脚本是通过 <script> 标签来定义的,<script> 标签定义了网页的脚本。

<script>
	alert("Hello, World!");
</script>

HTML 事件

HTML 事件是指网页的用户操作,如:鼠标点击、鼠标移动、键盘按下、表单提交等.
HTML 事件是通过 JavaScript 来处理的,JavaScript 可以绑定到 HTML 事件上,当事件发生时,JavaScript 代码可以执行。

常见的 HTML 事件有:

  • onclick:鼠标点击事件。
  • onmouseover:鼠标移入事件。
  • onmouseout:鼠标移出事件。
  • onkeydown:键盘按下事件。
  • onkeyup:键盘松开事件。
  • onchange:表单值改变事件。
  • onsubmit:表单提交事件。
  • onload:页面加载事件。
  • onunload:页面卸载事件。
  • onerror:页面错误事件。
  • onresize:窗口大小改变事件。
  • onscroll:窗口滚动事件。
  • onblur:元素失去焦点事件。
  • onfocus:元素获得焦点事件。
  • onselect:文本被选中事件。
  • onload:页面加载完成事件。
  • onbeforeunload:页面即将卸载事件。
  • onhashchange:URL hash值改变事件。
  • onmessage:页面间通信事件。
  • onoffline:浏览器离线事件。
  • ononline:浏览器上线事件。
  • onpopstate:页面历史记录改变事件。
  • onstorage:本地存储事件。
  • onpagehide:页面隐藏事件。
  • onpageshow:页面显示事件。
  • onabort:页面中止事件。
  • oncanplay:媒体文件可以播放事件。
  • oncanplaythrough:媒体文件可以播放至结尾事件。
  • ondurationchange:媒体文件时长改变事件。
  • onemptied:媒体文件清空事件。
  • onended:媒体文件播放结束事件。
  • onloadeddata:媒体文件加载完成数据事件。
  • onloadedmetadata:媒体文件加载元数据事件。
  • onpause:媒体文件暂停事件。
  • onplay:媒体文件播放事件。
  • onplaying:媒体文件正在播放事件。
  • onprogress:媒体文件加载进度事件。
  • onratechange:媒体文件速率改变事件。
  • onseeked:媒体文件跳转完成事件。
  • onseeking:媒体文件跳转开始事件。
  • onstalled:媒体文件加载失败事件。
  • onsuspend:媒体文件暂停事件。
  • ontimeupdate:媒体文件播放时间更新事件。
  • onvolumechange:媒体文件音量改变事件。
  • onwaiting:媒体文件缓冲事件。
  • oncopy:复制事件。
  • oncut:剪切事件。
  • onpaste:粘贴事件。
  • onbeforeinput:输入控件内容改变前事件。
  • oninput:输入控件内容改变事件。
  • oninvalid:输入控件无效输入事件。
  • onreset:表单重置事件。
  • onsearch:搜索事件。
  • onselectstart:选择控件开始事件。
  • onselectionchange:选择控件改变事件。
  • onshow:元素显示事件。
  • onwheel:滚轮事件。
  • ondrag:拖拽事件。
  • ondragend:拖拽结束事件。
  • ondragenter:拖拽进入目标元素事件。
  • ondragleave:拖拽离开目标元素事件。
  • ondragover:拖拽在目标元素上方事件。
  • ondragstart:拖拽开始事件。
  • ondrop:拖拽放下事件。
  • onscroll:滚动事件。
  • onanimationstart:动画开始事件。
  • onanimationiteration:动画一次迭代结束事件。
  • onanimationend:动画结束事件。
  • ontransitionend:动画结束事件。
  • onpointerdown:指针按下事件。
  • onpointermove:指针移动事件。
  • onpointerup:指针松开事件。
  • onpointercancel:指针取消事件。
  • onpointerover:指针悬停在目标元素上方事件。
  • onpointerout:指针移出目标元素事件。
  • onpointerenter:指针进入目标元素事件。
  • onpointerleave:指针离开目标元素事件。
  • ongotpointercapture:指针捕获事件。
  • onlostpointercapture:指针释放事件。
  • onbeforeinstallprompt:安装提示事件。
  • onappinstalled:应用安装完成事件。
  • onbeforeprint:打印前事件。
  • onafterprint:打印后事件。
  • onbeforecopy:复制前事件。
  • onaftercopy:复制后事件。
  • onbeforecut:剪切前事件。
  • onaftercut:剪切后事件。
  • onbeforepaste:粘贴前事件。
  • onafterpaste:粘贴后事件。
  • onbeforeunload:页面即将卸载事件。
  • onafterprint:页面打印完成事件。
  • onanimationcancel:动画取消事件。
  • onanimationend:动画结束事件。
  • onanimationiteration:动画迭代事件。
  • onanimationstart:动画开始事件。
  • onauxclick:辅助点击事件。
  • onblur:元素失去焦点事件。
  • oncancel:用户取消事件。
  • oncanplay:媒体文件可以播放事件。
  • oncanplaythrough:媒体文件可以播放至结尾事件。
  • onchange:元素值改变事件。
  • onclick:元素点击事件。
  • onclose:对话框关闭事件。
  • oncontextmenu:上下文菜单事件。
  • oncuechange:媒体文件cue变化事件。
  • ondblclick:元素双击事件。
  • ondrag:拖拽事件。
  • ondragend:拖拽结束事件。
  • ondragenter:拖拽进入目标元素事件。
  • ondragleave:拖拽离开目标元素事件。
  • ondragover:拖拽在目标元素上方事件。
  • ondragstart:拖拽开始事件。
  • ondrop:拖拽放下事件。

HTML 实体

HTML 实体是指 HTML 代码中使用的特殊符号,如:<、>、&、"、 等。

HTML 实体的作用是将特殊符号转换为对应的字符。

<p>这是一个&lt;p&gt;段落。</p>

常见的 HTML 实体有:

  • <:小于号。
  • >:大于号。
  • &:和号。
  • ":双引号。
  •  :空格。
  • ©:版权符号。
  • ®:注册商标符号。
  • ™:商标符号。
  • €:欧元符号。
  • £:英镑符号。
  • ¥:日元符号。
  • ¢:分符号。
  • δ:希腊字母 delta。
  • ↑:上箭头。
  • ↓:下箭头。
  • ←:左箭头。
  • →:右箭头。
  • ×:乘号。
  • ÷:除号。
  • ±:正负号。
  • ¶:段落符号。
  • §:节符号。
  • °:度符号。
  • µ:微符号。
  • ²:上标 2。
  • ³:上标 3。
  • ½:分数 1/2。
  • ¼:分数 1/4。
  • ¾:分数 3/4。

HTML url

HTML url 是指网页的 URL,URL 用于标识网页的位置。

URL 的格式如下:

协议://主机名[:端口号]/路径名[?查询字符串][#片段标识符]

HTML5 新元素

新元素

HTML5 新增了 <canvas> 元素,用于在网页上绘制图形。

<canvas> 元素可以用来绘制图像、动画、游戏、动态数据图表等。

<canvas id="myCanvas" width="200" height="100"></canvas>

<script>
	var c = document.getElementById("myCanvas");
	var ctx = c.getContext("2d");
	ctx.fillStyle = "red";
	ctx.fillRect(10, 10, 50, 50);
</script>

属性:
- height:画布高度。
- width:画布宽度。
- getContext():获取画布的上下文。
- fillStyle:填充颜色。
- fillRect():填充矩形。
- strokeStyle:边框颜色。
- strokeRect():描边矩形。
- clearRect():清除矩形。
- fillText():填充文本。
- strokeText():描边文本。
- measureText():测量文本宽度。
- drawImage():绘制图像。
- createLinearGradient():创建线性渐变。
- createRadialGradient():创建放射性渐变。


新元素

HTML5 新增了 <audio> 元素,用于在网页上播放音频。
元素支持的3种文件格式:MP3、Wav、Ogg。

<audio controls>
	<source src="horse.ogg" type="audio/ogg">
	<source src="horse.mp3" type="audio/mpeg">
	Your browser does not support the audio element.
</audio>

属性:
- autoplay:自动播放。
- controls:显示控制条。
- loop:循环播放。
- muted:静音播放。
- src:音频文件路径。
- volume:音量。


新元素

HTML5 新增了 <video> 元素,用于在网页上播放视频。

<video width="320" height="240" controls>
	<source src="movie.mp4" type="video/mp4">
	<source src="movie.ogg" type="video/ogg">
	Your browser does not support the video tag.
</video>

属性:
- autoplay:自动播放。    
- controls:显示控制条。    
- height:视频高度。    
- loop:循环播放。    
- muted:静音播放。    
- poster:封面图片。    
- src:视频文件路径。    
- width:视频宽度。    
- volume:音量。    
- oncanplaythrough:视频可以播放至结尾事件。    
- onended:视频播放结束事件。    
- onerror:视频播放错误事件。    
- onloadeddata:视频加载完成数据事件。    
- onloadedmetadata:视频加载元数据事件。    
- onpause:视频暂停事件。    
- onplay:视频播放事件。    
- onplaying:视频正在播放事件。    
- onprogress:视频加载进度事件。    
- onratechange:视频速率改变事件。    
- onseeked:视频跳转完成事件。    
- onseeking:视频跳转开始事件。    
- onstalled:视频加载失败事件。    
- onsuspend:视频暂停事件。    
- ontimeupdate:视频播放时间更新事件。    
- onvolumechange:视频音量改变事件。    

新元素

HTML5 新增了 <source> 元素,用于指定不同格式的视频文件。

<video width="320" height="240" controls>
	<source src="movie.mp4" type="video/mp4">
	<source src="movie.ogg" type="video/ogg">
	Your browser does not support the video tag.
</video>

新元素

HTML5 新增了 <embed> 元素,用于在网页上嵌入外部应用程序或插件。

<embed src="example.swf" type="application/x-shockwave-flash" width="300" height="200">

属性:
- height:嵌入内容高度。
- src:嵌入内容文件路径。
- type:嵌入内容类型。
- width:嵌入内容宽度。
- align:对齐方式。

新元素

HTML5 新增了 <track> 元素,用于为媒体文件添加字幕。

<video width="320" height="240" controls>
	<source src="movie.mp4" type="video/mp4">
	<source src="movie.ogg" type="video/ogg">
	<track kind="subtitles" src="subtitles_en.vtt" srclang="en" label="English">
	Your browser does not support the video tag.
</video>
属性:
- kind:字幕类型。
- src:字幕文件路径。
- srclang:字幕语言。
- label:字幕语言名称。

新表单元素

新元素

HTML5 新增了 <datalist> 元素,用于创建下拉列表。

<input list="browsers">
<datalist id="browsers">
	<option value="Internet Explorer">
	<option value="Firefox">
	<option value="Chrome">
	<option value="Opera">
	<option value="Safari">
</datalist>

属性:
- list:关联的 input 元素。
- value:下拉列表选项值。

uotput 新属性

HTML5 新增了 <output> 元素,用于显示计算结果。

<form oninput="result.value=parseInt(a.value)+parseInt(b.value)">
     <input type="number" id="a" value="5"> +
     <input type="number" id="b" value="10"> =
     <output name="result" for="a b"></output>
</form>
属性:
- name:输出结果名称。
- for:关联的 input 元素。

新的语义和结构元素

HTML5提供了新的元素来创建更好的页面结构:

标签	描述
<article>	定义页面独立的内容区域。
<aside>	定义页面的侧边栏内容。
<bdi>	允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command>	定义命令按钮,比如单选按钮、复选框或按钮
<details>	用于描述文档或文档某个部分的细节
<dialog>	定义对话框,比如提示框
<summary>	标签包含 details 元素的标题
<figure>	规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption>	定义 <figure> 元素的标题
<footer>	定义 section 或 document 的页脚。
<header>	定义了文档的头部区域
<mark>	定义带有记号的文本。
<meter>	定义度量衡。仅用于已知最大和最小值的度量。
<nav>	定义导航链接的部分。
<progress>	定义任何类型的任务的进度。
<ruby>	定义 ruby 注释(中文注音或字符)。
<rt>	定义字符(中文注音或字符)的解释或发音。
<rp>	在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section>	定义文档中的节(section、区段)。
<time>	定义日期或时间。
<wbr>	规定在文本中的何处适合添加换行符。

SVG

新元素

HTML5 新增了 <svg> 元素,用于创建矢量图形。

<svg width="100" height="100">
	<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

属性:
- height:图形高度。
- width:图形宽度。
- viewBox:定义坐标系统。
- cx:圆心 x 坐标。
- cy:圆心 y 坐标。
- r:半径。
- stroke:边框颜色。
- stroke-width:边框宽度。
- fill:填充颜色。
- transform:图形变换。
- d:路径数据。
- pathLength:路径长度。
- points:多边形顶点。
- x1:线段起点 x 坐标。
- y1:线段起点 y 坐标。
- x2:线段终点 x 坐标。
- y2:线段终点 y 坐标。
- x:矩形左上角 x 坐标。
- y:矩形左上角 y 坐标。
- width:矩形宽度。
- height:矩形高度。
- rx:矩形 x 轴半径。
- ry:矩形 y 轴半径。

新元素

HTML5 新增了 <use> 元素,用于重用 SVG 元素。

<svg width="100" height="100">
    
	<circle id="myCircle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
    
	<use x="50" y="50" xlink:href="#myCircle" />

</svg>

新元素

HTML5 新增了 <animate> 元素,用于创建动画。

<svg width="100" height="100">
    
	<circle id="myCircle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
    
	<animate attributeName="cx" from="50" to="100" dur="5s" />
	<animate attributeName="cy" from="50" to="100" dur="5s" />
	<animate attributeName="r" from="40" to="80" dur="5s" />


	<use x="50" y="50" xlink:href="#myCircle" />

</svg>

新元素

HTML5 新增了 <animateTransform> 元素,用于创建变换动画。

<svg width="100" height="100">
    
	<circle id="myCircle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
    
	<animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="5s" />
<use x="50" y="50" xlink:href="#myCircle" />

</svg>

MathML 新元素

新元素

HTML5 新增了 <math> 元素,用于创建数学公式。

<math>
	<mrow>
		<mi>x</mi>
		<mo>+</mo>
		<mi>y</mi>
	</mrow>
	<mo>=</mo>
	<mrow>
		<mi>z</mi>
		<mo>+</mo>
		<mn>2</mn>
	</mrow>
</math>


新元素

HTML5 新增了 <mstyle> 元素,用于设置数学公式的样式。

<math>
	<mstyle displaystyle="true">
		<mrow>
			<mi>x</mi>
			<mo>+</mo>
			<mi>y</mi>
		</mrow>
		<mo>=</mo>
		<mrow>
			<mi>z</mi>
			<mo>+</mo>
			<mn>2</mn>
		</mrow>
	</mstyle>
</math>


新元素

HTML5 新增了 <mrow> 元素,用于创建行级数学公式。

<math>
	<mrow>
		<mi>x</mi>
		<mo>+</mo>
		<mi>y</mi>
	</mrow>
	<mo>=</mo>
	<mrow>
		<mi>z</mi>
		<mo>+</mo>
		<mn>2</mn>
	</mrow>
</math>

新元素

HTML5 新增了 <mfrac> 元素,用于创建分数数学公式。

<math>
	<mfrac>
		<mrow>
			<mi>x</mi>
			<mo>+</mo>
			<mi>y</mi>
		</mrow>
		<mrow>
			<mi>z</mi>
			<mo>+</mo>
			<mn>2</mn>
		</mrow>
	</mfrac>
</math>

新元素

HTML5 新增了 <msqrt> 元素,用于创建平方根数学公式。

<math>
	<msqrt>
		<mi>x</mi>
	</msqrt>
</math>

新元素

HTML5 新增了 <mroot> 元素,用于创建根数学公式。

<math>
	<mroot>
		<mi>x</mi>
		<mn>3</mn>
	</mroot>
</math>

新元素

HTML5 新增了 <mstyle> 元素,用于设置数学公式的样式。

<math>
	<mstyle displaystyle="true">
		<mrow>
			<mi>x</mi>
			<mo>+</mo>
			<mi>y</mi>
		</mrow>
		<mo>=</mo>
		<mrow>
			<mi>z</mi>
			<mo>+</mo>
			<mn>2</mn>
		</mrow>
	</mstyle>
</math>

新元素

HTML5 新增了 <merror> 元素,用于创建错误数学公式。

<math>
	<merror>
		<mrow>
			<mi>x</mi>
			<mo>+</mo>
			<mi>y</mi>
		</mrow>
		<mo>=</mo>
		<mrow>
			<mi>z</mi>
			<mo>+</mo>
			<mn>2</mn>
		</mrow>
	</merror>
</math>

新元素

HTML5 新增了 <mtext> 元素,用于创建文本数学公式。

<math>
	<mtext>
		This is some text.
	</mtext>
</math>

新元素

HTML5 新增了 <mspace> 元素,用于创建空白数学公式。

<math>
	<mspace width="1em" />
</math>

新元素

HTML5 新增了 <menclose> 元素,用于创建围绕数学公式的框。

<math>
	<menclose notation="longdiv">
		<mrow>
			<mi>x</mi>
			<mo>+</mo>
			<mi>y</mi>
		</mrow>
	</menclose>
</math>

新元素

HTML5 新增了 <mtable> 元素,用于创建表格数学公式。

<math>
	<mtable>
		<mtr>
			<mtd>
				<mi>x</mi>
			</mtd>
			<mtd>
				<mi>y</mi>
			</mtd>
		</mtr>
		<mtr>
			<mtd>
				<mi>z</mi>
			</mtd>
			<mtd>
				<mn>2</mn>
			</mtd>
		</mtr>
	</mtable>
</math>

HTML5 拖放

HTML5 拖放 API 提供了一种在网页上拖放元素的简单方式。

<div id="drag" ondragstart="drag(event)">Drag me</div>

<script>
function drag(event) {
	event.dataTransfer.setData("text", event.target.id);
}
</script>

属性
- ondragstart:拖动开始事件。
- dataTransfer:数据传输对象。
- setData():设置数据。
- getData():获取数据。
- drop:拖动结束事件。
- effectAllowed:允许的拖动效果。
- types:允许的类型。
- files:拖动的文件。



Geolocation(地理定位)

HTML5 Geolocation API 提供了一种在网页上获取用户位置的简单方式。

<button onclick="getLocation()">Get Location</button>

<p id="demo"></p>

<script>
function getLocation() {
	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(showPosition);
	} else { 
		document.getElementById("demo").innerHTML = "Geolocation is not supported by this browser.";
	}
}


function showPosition(position) {
	document.getElementById("demo").innerHTML = "Latitude: " + position.coords.latitude + 
"<br>Longitude: " + position.coords.longitude;
}
</script>

属性:
- getCurrentPosition():获取用户位置。
- coords.latitude:纬度。
- coords.longitude:经度。
- coords.accuracy:精度。
- timestamp:时间戳。
- altitude:海拔高度。
- altitudeAccuracy:海拔高度精度。
- heading:航向角。
- speed:速度。
- altitudeAccuracy:海拔高度精度。
- heading:航向角。
- speed:速度。
- address:地址。

新的 Input 类型

HTML5 新增了新的 input 类型:

  • color:颜色选择器。
  • date:日期选择器。
  • datetime:日期时间选择器。
  • datetime-local:本地日期时间选择器。
  • email:电子邮件输入框。
  • month:月份选择器。
  • number:数字输入框。
  • range:滑动输入框。
  • search:搜索框。
  • tel:电话号码输入框。
  • time:时间选择器。
  • url:URL 输入框。
  • week:周选择器。
<label for="color">Color:</label>
<input type="color" id="color" name="color">

<label for="date">Date:</label>
<input type="date" id="date" name="date">

<label for="datetime">Date and time:</label>
<input type="datetime" id="datetime" name="datetime">

<label for="datetime-local">Local date and time:</label>
<input type="datetime-local" id="datetime-local" name="datetime-local">

<label for="email">Email:</label>
<input type="email" id="email" name="email">

<label for="month">Month:</label>
<input type="month" id="month" name="month">

<label for="number">Number:</label>
<input type="number" id="number" name="number">

<label for="range">Range:</label>
<input type="range" id="range" name="range">

<label for="search">Search:</label>
<input type="search" id="search" name="search">

<label for="tel">Telephone:</label>
<input type="tel" id="tel" name="tel">

<label for="time">Time:</label>
<input type="time" id="time" name="time">

<label for="url">URL:</label>
<input type="url" id="url" name="url">

<label for="week">Week:</label>
<input type="week" id="week" name="week">

新的表单元素

HTML5 新增了新的表单元素:

  • datalist:下拉列表。
  • keygen:密钥生成器。
  • output:输出结果。
  • progress:进度条。
  • meter:进度指示器。
  • fieldset:字段集。
  • legend:字段集标题。
  • details:详情。
  • summary:详情标题。
  • command:命令按钮。
  • menu:菜单。
  • menuitem:菜单项。
  • dialog:对话框。
  • script:脚本。
<label for="cars">Choose a car:</label>
<input list="cars" id="cars" name="cars">
<datalist id="cars">
	<option value="Toyota">
	<option value="Honda">
	<option value="Ford">
	<option value="BMW">
</datalist>

<label for="key">Enter a key:</label>
<keygen id="key" name="key">

<label for="output">Result:</label>
<output name="output" for="a b"></output>

<progress value="25" max="100"></progress>

<meter value="0.5" min="0" max="1"></meter>

<fieldset> // 字段集
	<legend>Personal Information</legend>
	<label for="name">Name:</label>
	<input type="text" id="name" name="name">
	<label for="email">Email:</label>
	<input type="email" id="email" name="email">
	<label for="phone">Phone:</label>
	<input type="tel" id="phone" name="phone">
</fieldset>

<details> // 详情
	<summary>More information</summary>
	<p>Here is some more information.</p>
</details>

<script>// 脚本
	alert("Hello, world!");
</script> 

<menu>  // 菜单
	<menuitem type="command" label="New">  
	<menuitem type="command" label="Open">  
	<menuitem type="command" label="Save">  
	<menuitem type="command" label="Save As...">  
	<hr>  
	<menuitem type="checkbox" label="Bold" checked>  
	<menuitem type="checkbox" label="Italic">  
	<menuitem type="checkbox" label="Underline">  
	<hr>  
	<menuitem type="radio" label="Option 1" name="options">  
	<menuitem type="radio" label="Option 2" name="options">  
	<menuitem type="radio" label="Option 3" name="options">  
</menu>

<dialog id="myDialog"> // 对话框
	<form>
		<label for="name">Name:</label>
		<input type="text" id="name" name="name">
		<label for="email">Email:</label>
		<input type="email" id="email" name="email">
		<label for="phone">Phone:</label>
		<input type="tel" id="phone" name="phone">
		<button type="submit">Submit</button>
		<button type="reset">Reset</button>
        
	</form>
</dialog>

表单属性

HTML5 新增了一些表单属性:

  • autocomplete:自动完成。
  • autofocus:自动聚焦。
  • form:表单。
  • formaction:表单提交地址。
  • formenctype:表单提交编码类型。
  • formmethod:表单提交方法。
  • formnovalidate:禁用表单验证。
  • formtarget:表单提交目标。
  • list:列表。
  • min:最小值。
  • max:最大值。
  • pattern:正则表达式。
  • placeholder:占位符。
  • readonly:只读。
  • required:必填。
  • step:步长。
  • multiple:多选。
  • size:尺寸。
<label for="name">Name:</label>
<input type="text" id="name" name="name" autocomplete="off" autofocus>

<label for="email">Email:</label>
<input type="email" id="email" name="email" required>

<label for="phone">Phone:</label>
<input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" placeholder="123-456-7890">

<label for="message">Message:</label>
<textarea id="message" name="message" rows="5" cols="30" maxlength="100"></textarea>

<label for="cars">Choose a car:</label>
<select id="cars" name="cars">
	<option value="Toyota">Toyota</option>
	<option value="Honda">Honda</option>
	<option value="Ford">Ford</option>
	<option value="BMW">BMW</option>
</select>

<label for="file">Choose a file:</label>
<input type="file" id="file" name="file">


<form action="submit.php" method="post" enctype="multipart/form-data">
	<label for="name">Name:</label>
	<input type="text" id="name" name="name" required>
	<label for="email">Email:</label>
	<input type="email" id="email" name="email" required>
    <label for="phone">Phone:</label>
	<input type="tel" id="phone" name="phone" required>
	<label for="file">Choose a file:</label>
	<input type="file" id="file" name="file" required>
	<button type="submit">Submit</button>
</form>

HTML5 语义元素

HTML5 新增了一些语义元素:

  • article:文章。
  • section:章节。
  • nav:导航。
  • aside:侧边栏。
  • hgroup:标题组。
  • header:页眉。
  • footer:页脚。
  • figure:图表。
  • figcaption:图表标题。
  • main:主要内容。
  • mark:标记。
  • time:时间。
  • audio:音频。
  • video:视频。
  • canvas:画布。
  • progress:进度条。
  • meter:进度指示器。
  • details:详情。
  • summary:详情标题。
  • data:数据。
  • code:代码。
  • kbd:键盘输入。
  • pre:预格式化。
  • q:短引用。
  • blockquote:块引用。
  • cite:引用。
  • em:强调。
  • strong:重要。
  • small:小型。
  • sub:下标。
  • sup:上标。
  • i:斜体。
  • b:粗体。
  • u:下划线。
  • s:删除线。
  • strike:删除线。
  • br:换行。
  • hr:水平线。
  • a:链接。
  • img:图片。
  • embed:嵌入。
  • object:对象。
  • param:参数。
  • video:视频。
  • source:媒体源。
  • track:媒体轨道。
  • canvas:画布。
  • map:地图。
  • area:区域。
  • svg:矢量图。
  • math:数学公式。
  • ruby:中文标点。
  • rt:中文注音。
  • rp:中文注音括号。
  • bdi:Bi-directional Isolation。
  • bdo:Bi-directional Override。
  • wbr:Word Break Opportunity。

Web 存储

HTML5 提供了 Web 存储,可以将数据存储在用户的浏览器中,
可以将数据存储在本地,也可以将数据存储在服务器上。

<button onclick="save()">Save</button>
<button onclick="load()">Load</button>
<script>
function save() {
	localStorage.setItem("name", "John Doe");
	sessionStorage.setItem("age", "30");
}
function load() {
	document.getElementById("name").value = localStorage.getItem("name");
    document.getElementById("age").value = sessionStorage.getItem("age");
}
</script>

localStorage 和 sessionStorage

localStorage 和 sessionStorage 都是 Web 存储 API 的一部分,
它们都可以用来存储数据,但是它们的生命周期不同。

  1. localStorage:localStorage 存储的数据在浏览器关闭后依然存在,除非手动删除。
  2. sessionStorage:sessionStorage 存储的数据在浏览器窗口关闭后就清除。
  3. 存储大小:localStorage 和 sessionStorage 存储的数据量没有限制,可以存储大量的数据。
  4. 存储位置:localStorage 和 sessionStorage 存储在用户的本地计算机上,不受服务器控制。
  5. 安全性:localStorage 和 sessionStorage 存储的数据不会发送到服务器,所以安全性较高。
  6. 性能:localStorage 和 sessionStorage 存储数据时比 cookie 要快。
  7. 访问限制:localStorage 和 sessionStorage 存储的数据只能由同源的 JavaScript 脚本访问。
  8. 存储对象:localStorage 和 sessionStorage 存储的数据只能存储字符串,如果要存储对象,需要先将对象转换为字符串。
  9. 命名规则:localStorage 和 sessionStorage 存储的键名可以包含字母、数字、下划线和句点,但不能以数字开头。
  10. 编码规则:localStorage 和 sessionStorage 存储的数据在客户端和服务器之间传输时,会自动进行编码。

Web SQL 数据库

HTML5 提供了 Web SQL 数据库,可以用来存储结构化数据。

<button onclick="createTable()">Create Table</button>
<button onclick="insertData()">Insert Data</button>
<button onclick="selectData()">Select Data</button>
<button onclick="deleteData()">Delete Data</button>
<script>
var db;
function initDatabase() {
	if (!window.openDatabase) {
		alert("Web SQL is not supported by this browser.");
		return;
	}
	db = openDatabase("myDatabase", "1.0", "My Database", 2 * 1024 * 1024);
}


function createTable() {
	db.transaction(function(tx) {
    tx.executeSql("CREATE TABLE IF NOT EXISTS myTable (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
	});
}

function insertData() {
	db.transaction(function(tx) {
    tx.executeSql("INSERT INTO myTable (name, age) VALUES (?,?)", ["John Doe", 30]);
	});
}

function selectData() {
	db.transaction(function(tx) {
    tx.executeSql("SELECT * FROM myTable", [], function(tx, results) {
      var len = results.rows.length;
      for (var i = 0; i < len; i++) {
        var name = results.rows.item(i).name;
        var age = results.rows.item(i).age;
        alert("Name: " + name + ", Age: " + age);
      }
    });
	});
}

function deleteData() {
	db.transaction(function(tx) {
    tx.executeSql("DELETE FROM myTable", []);
	});
}

initDatabase();
</script>

Web Workers

HTML5 提供了 Web Workers,可以用来在后台运行脚本,不会影响页面的响应。
当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。

web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p>计数: <output id="result"></output></p>
<button onclick="startWorker()">开始工作</button>
<button onclick="stopWorker()">停止工作</button>

<p><strong>注意:</strong> Internet Explorer 9 及更早 IE 版本浏览器不支持 Web Workers.</p>

<script>
    var w;// 定义一个 Web Worker

    function startWorker() { // 启动 Web Worker
        if(typeof(Worker) !== "undefined") { // 检查浏览器是否支持 Web Workers
            if(typeof(w) == "undefined") { // 判断 Web Worker 是否已定义
                w = new Worker("demo_workers.js"); // 定义 Web Worker
            }
            w.onmessage = function(event) { // 监听 Web Worker 的消息 
                document.getElementById("result").innerHTML = event.data; // 更新计数
            };
        } else {
            document.getElementById("result").innerHTML = "抱歉,你的浏览器不支持 Web Workers...";
        }
    }

    function stopWorker()
    {
        w.terminate();
        w = undefined;
    }
</script>

</body>
</html>

HTML5 服务器发送事件(Server-Sent Events)

HTML5 提供了服务器发送事件,可以用来实时地向浏览器推送数据。

Server-Sent 事件指的是网页自动获取来自服务器的更新。

以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。

例子:更新、股价更新、新的博文、赛事结果等。

接收 Server-Sent 事件通知

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>


<script>
    if (typeof(EventSource)!== "undefined") { // 检查浏览器是否支持 Server-Sent 事件
        var source = new EventSource("sse.php");// 创建一个新的 Server-Sent 事件源
        source.onmessage = function(event) {// 监听 Server-Sent 事件
            document.getElementById("result").innerHTML = event.data; // 更新内容
        };
        source.onerror = function(event) {// 监听 Server-Sent 事件错误
            if (event.target.readyState == EventSource.CLOSED) { // 连接关闭
                document.getElementById("result").innerHTML = "连接关闭"; // 显示提示信息
            }
        };
    } else {
        document.getElementById("result").innerHTML = "抱歉,你的浏览器不支持 Server-Sent 事件...";
    }
</script>


</body>
</html>

发送 Server-Sent 事件通知

<?php
header("Content-Type: text/event-stream"); // 设置响应类型
header("Cache-Control: no-cache"); // 禁止缓存
header("Connection: keep-alive"); // 保持连接


$counter = 0; // 计数器
while(true) { // 循环
    $counter++;// 计数器加 1
    echo "data: The counter is ".$counter."\n\n"; // 发送数据
    ob_flush(); // 刷新输出缓冲区
    flush(); // 刷新输出缓冲区
    sleep(1);// 等待 1 秒
}
?>

HTML5 WebSocket

HTML5 WebSocket 是 HTML5 定义的一种协议,它使得客户端和服务器之间可以进行全双工通信。

WebSocket 是一种双向通信协议,在建立连接之后,WebSocket 服务器和客户端之间可以互相发送数据。

WebSocket 协议自 2011 年 12 月 25 日正式成为 RFC 6455 标准。

WebSocket 协议支持两种模式:

  • 文本模式:WebSocket 协议的默认模式,使用字符串或 JSON 数据。
  • 二进制模式:WebSocket 协议的二进制模式,使用 ArrayBuffer 或 Blob 数据。
  • 除了文本模式和二进制模式,WebSocket 协议还支持自定义帧格式。
  • 压缩:WebSocket 协议支持数据压缩,以减少网络流量。
  • 安全:WebSocket 协议支持安全套接层 (SSL/TLS) 和 WebSocket 安全 (WS-Security)。
  • 多路复用:WebSocket 协议支持多路复用,允许多个 WebSocket 连接复用同一个 TCP 连接。
  • 协议扩展:WebSocket 协议支持协议扩展,允许开发者自定义帧格式。
  • 协议版本:WebSocket 协议支持多版本,包括 75、76、77、78、79 版本。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。

当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。

什么是 WebSocket?
WebSocket 是一种网络通信协议,提供了在单个 TCP 连接上进行全双工通信的能力。在 WebSocket 连接中,客户端和服务器之间可以相互发送数据,这使得 WebSocket 特别适合实时应用,例如在线聊天、游戏、股票更新等。

WebSocket 的工作原理
建立连接:

WebSocket 以 HTTP 协议进行初始的握手,客户端发送一个 HTTP 请求来请求建立 WebSocket 连接。
如果服务器支持 WebSocket,它将返回一个 101 状态码的响应,表示协议切换成功。此时,HTTP 连接升级为 WebSocket 连接。
全双工通信:

一旦 WebSocket 连接建立,客户端和服务器可以随时通过这个连接发送和接收消息。
数据通过帧(frame)的形式传输,可以是文本、二进制数据等。
关闭连接:

任何一方都可以发送关闭帧,表示要关闭连接。
WebSocket 的优点
实时性:由于 WebSocket 是持久连接,数据可以实时传输,无需等待请求和响应,这样降低了延迟。
效率:WebSocket 的通信开销较小,头部开销比传统的 HTTP 请求低,更加高效。
双向通信:支持服务器主动推送数据给客户端,适用于需要实时更新的应用场景。
WebSocket 的基本使用步骤
创建 WebSocket 对象。
连接到 WebSocket 服务器。
发送和接收消息。
关闭连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/887153.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记(四十七)Diffusion Policy: Visuomotor Policy

Diffusion Policy: Visuomotor Policy 文章概括摘要1. 介绍2. 扩散策略的公式化2.1 去噪扩散概率模型2.2 DDPM 训练2.3 用于视觉运动策略学习的扩散模型 3 关键设计决策3.1 网络架构选项3.2 视觉编码器3.3 噪声计划3.4 加速实时控制的推理 4. 扩散策略的四个引人入胜的特性4.1 …

回归预测 | Matlab基于SABO-SVR减法平均算法优化支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于SABO-SVR减法平均算法优化支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SABO-SVR减法平均算法优化支持向量机的数据多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab基于SABO-SVR减法平均算法优化…

【api连接ChatGPT的最简单方式】

通过api连接ChatGPT的最简单方式 建立client 其中base_url为代理&#xff0c;若连接官网可省略&#xff1b;配置环境变量 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" )或给出api和base_url client OpenAI(api_key&…

数据仓库简介(一)

数据仓库概述 1. 什么是数据仓库&#xff1f; 数据仓库&#xff08;Data Warehouse&#xff0c;简称 DW&#xff09;是由 Bill Inmon 于 1990 年提出的一种用于数据分析和挖掘的系统。它的主要目标是通过分析和挖掘数据&#xff0c;为不同层级的决策提供支持&#xff0c;构成…

wordpress源码资源站整站打包32GB数据,含6.7W条资源数据

源码太大了&#xff0c;足足32gb&#xff0c;先分享给大家。新手建立资源站&#xff0c;直接用这个代码部署一下&#xff0c;数据就够用了。辅助简单做下seo&#xff0c;一个新站就OK了。 温馨提示&#xff1a;必须按照顺序安装 代码下载

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白

【word脚注】双栏设置word脚注&#xff0c;脚注仅位于左栏&#xff0c;右栏不留白 调整前效果解决方法调整后效果参考文献 调整前效果 调整前&#xff1a;脚注位于左下角&#xff0c;但右栏与左栏内容对其&#xff0c;未填充右下角的空白区域 解决方法 备份源文件复制脚注内…

【HTML|第1期】HTML5视频(Video)元素详解:从起源到应用

日期&#xff1a;2024年9月9日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉在这里插入代码片得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对…

【机器学习】探索GRU:深度学习中门控循环单元的魅力

目录 &#x1f354; GRU介绍 &#x1f354; GRU的内部结构图 2.1 GRU结构分析 2.2 GRU工作原理 2.4 Bi-GRU介绍 2.3 使用Pytorch构建GRU模型 2.5 GRU优缺点 &#x1f354; 小结 学习目标 &#x1f340; 了解GRU内部结构及计算公式. &#x1f340; 掌握Pytorch中GRU工具…

MySQL--数据库约束(详解)

目录 一、前言二、概念三、数据库约束3.1 约束类型3.1.1 NOT NULL 约束3.1.2 UNIQUE (唯一&#xff09;3.1.3 DEFAULT&#xff08;默认&#xff09;3.1.4 PRIMARY KEY&#xff08;主键&#xff09;3.1.5 FOREIGN KEY&#xff08;外键&#xff09;3.1.6 CHECK 四、总结 一、前言…

[Linux#61][UDP] port | netstat | udp缓冲区 | stm32

目录 0. 预备知识 1. 端口号的划分范围 2. 认识知名端口号 3. netstat 命令 4. pidof 命令 二.UDP 0.协议的学习思路 1. UDP 协议报文格式 报头与端口映射&#xff1a; 2. UDP 的特点 面向数据报&#xff1a; 3. UDP 的缓冲区 4. UDP 使用注意事项 5. 基于 UDP 的…

基于Keras的U-Net模型在图像分割与计数中的应用

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色&a…

11. 异步编程

计算机的核心部分&#xff0c;即执行构成我们程序的各个步骤的部分&#xff0c;称为处理器。我们迄今为止看到的程序都会让处理器忙个不停&#xff0c;直到它们完成工作。像操作数字的循环这样的程序的执行速度几乎完全取决于计算机处理器和内存的速度。但是&#xff0c;许多程…

相机基础概念

景深&#xff1a; 景深的定义 DOF:depth of filed 是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。光圈、镜头、及焦平面到拍摄物的距离是影响景深的重要因素。定义3&#xff1a;在镜头前方&#xff08;焦点的前、后&#xff09;有一…

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下docker学习02(yum源切换及docker安装配置)

2 前期工作 2.1 切换yum源并更新 删除/etc/yum.repos.d/原有repo文件&#xff0c;将Centos-7.repo库文件拷贝到该目录下。 然后清楚原有缓存yum clean all 生成新的缓存yum makecache 更新yum update –y 然后再确认/etc/yum.repos.d/不会有其他库文件&#xff0c;只留下…

气象大模型天气预测对物流的影响

随着科技的进步&#xff0c;气象大模型&#xff08;GFM, Global Forecast Model&#xff09;的广泛应用大大提升了天气预测的精度和时效性。这些模型基于大数据、机器学习、人工智能等技术&#xff0c;能够模拟大气环流&#xff0c;预测未来的天气状况。对于物流行业而言&#…

Pikachu-暴力破解-验证码绕过(on client)

访问页面&#xff0c; 从burpsuite 上看到返回的源代码&#xff1b; 验证码生成时通过 createCode 方法生成&#xff0c;在前端页面生成&#xff1b; 同时也是在前端做的校验&#xff1b; 直接验证&#xff1b;F12 -- 网络&#xff0c;随便输入个账号、密码、验证码&#xff0…

C初阶(八)选择结构(分支结构)--if、else、switch

前言&#xff1a; C语言是用来解决问题的&#xff0c;除了必要的数据输入与输出&#xff08;见前文&#xff09;&#xff0c;还要有逻辑结构。其中基本可以归为三类&#xff1a;顺序结构、选择结构、循环结构。今天&#xff0c;杰哥提笔写的是关于选择结构&#xff08;又叫“分…

CSP-J Day 5 模拟赛补题报告

姓名&#xff1a;王胤皓&#xff0c;校区&#xff1a;和谐校区&#xff0c;考试时间&#xff1a; 2024 2024 2024 年 10 10 10 月 5 5 5 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00&#xff0c;学号&#xff1a; S 07738 S07738 S07738 请关注作者的…

9.30学习记录(补)

手撕线程池: 1.进程:进程就是运行中的程序 2.线程的最大数量取决于CPU的核数 3.创建线程 thread t1; 在使用多线程时&#xff0c;由于线程是由上至下走的&#xff0c;所以主程序要等待线程全部执行完才能结束否则就会发生报错。通过thread.join()来实现 但是如果在一个比…

CentOS 替换 yum源 经验分享

视频教程在bilibili:CentOS 替换 yum源 经验分享_哔哩哔哩_bilibili问题原因 解决方法 1. 进入镜像目录 [rootlocalhost ~]# cd /etc/yum.repos.d/ 2.备份文件 [rootlocalhost yum.repos.d]# rename repo bak * 3.寻找阿里镜像源复制 https://developer.aliyun.com/mirror/ …