第一步:安装好要用的编辑器

我这里用的是Sublime Text

我自己看的学习视频 HTML学习视频

第二步:新建HTML文件

在用Sublime Text编写html文件时会自动补全.

我的第一个HTML

<!--
1、这是HTML的注释
2、支持多行注释
3、不区分大小写,语法松散不严格
4、但最好还是按结构写
-->
<!doctype html> <!--加上这句话就是H5,去掉则是H4.0-->
<!--根-->
<html>
<!--头部--> <!--注意缩进-->
<head>
<title>网页的标题</title> <!--显示在标签页一栏-->
</head>
<body> <!--主体-->
网页的主体内容,和老杜学习HTML

</body>
</html> <!--大小写无所谓-->

1.png

基本标签

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--<mata>标签永远位于head元素内部,这里加上
charset属性是为了规定 HTML 文档的字符编码。-->
<!--name属性中的viewport表示页面视图的属性下面设置是为了让网页的宽度自动适应,initial-scale:控制页面最初加载时的在在idealviewport下缩放等级,通常设为1,可以是小数-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML基本标签</title>
</head>
<body>
<!--段落标记-->
<p>《三国演义》是罗贯中在有关三国故事的宋元话本、戏曲和轶事传闻的基础上,依据晋代陈寿所著的《三国志》以及南朝宋人裴松之为《三国志》所作的注,所进行的加工再创作。</p><p>该作品成书后有嘉靖壬午本等多个版本传于世,到了明末清初,毛宗岗对《三国演义》整顿回目、修正文辞、改换诗文,该版本也成为诸多版本中水平最高、流传最广的版本。</p>

<!--标题字,是HTML的预留字,和word中的标题字一样-->
<h1>标题字</h1>
<h2>标题字</h2>
<h3>标题字</h3>
<h4>标题字</h4>
<h5>标题字</h5>
<h6>标题字</h6>
<!--最多六个-->

<!--换行--><!--<br>是独目标记-->
hello
world!
hello<br> world1

<!--横线(独目)-->
<hr>
<!--color和width都是hr标签的属性-->
<hr color="red" width="50%"><!--单双引号没有要求但一定要写-->

<!--预留格式(否则都在一条直线上)-->
<pre>
for(int i = 0; i < 10; i++){
printf("NB");
}
</pre>

<del>删除字</del><br>
<ins>插入字</ins><br>
<b>粗体字</b><br>
<i>斜体字</i><br>

<!--10的平方-->
10<sup>2</sup>
<!--角标-->
10<sub>m</sub><br>

<!--字体标签-->
<font color="red" size="59">字体标签</font>
</body>
</html>

2.png

实体符号

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>实体符号</title>
</head>
<body>
<!--大于号和小于号可能和标签有冲突-->
<!--b<a>c,而<a>s是链接-->
b&lt;a&gt;c<br>
<!--实体符号特点是:以&开始,以;结束。&lt;小于号,&gt;大于号-->

<!--加空格-->
avc def<br>
avc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def


</body>
</html>

3.png

表格

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>表格</title>
</head>
<body>
<!--
borde="lpx"设置表格的边框为1像素宽度。
-->
<br><br><!--让表格往下走-->
<center><h1>列表</h1></center>
<hr>
<!--表格先行(tr)后列(td)-->
<table align="center" border="1px" width="50%" height="150px"><!--百分比设置可缩放-->

<!--第一行-->
<!--align对齐方式-->
<tr align="center">
<!--三列-->
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<!--第二行-->
<tr>
<td>d</td>
<td align="center">e</td>
<td>f</td>
</tr>
<!--第三行-->
<tr>
<td>x</td>
<td>y</td>
<td>z</td>
</tr>
</table>
<br><br><br>
<!--单元格合并,以及th标签-->
<!--注意事项
1、row合并的时候,删除下面的单元格
2、col合并的时候,对删除哪一个没有要求
-->
<table border="1px" width="50%">
<tr>
<!--也是单元格标签,比<td>多的是居中加粗-->
<th>员工编号 </th>
<th>员工薪资</th>
<th>部门名称</th>
</tr>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>d</td>
<td>e</td>
<td rowspan="2">f</td>
</tr>
<tr>
<td colspan="2">g</td>
<!--
<td>h</td>
-->
<!--
<td>i</td>
-->
</tr>
</table>
<br><br><br><br><br><br><br><br>
<!--thead、tbody、tfoot 在table中不是必须的,但便于后期的js代码编写-->
<table align="center" border="1px" width="50%">
<thead> <!--头-->
<tr>
<th>员工编号 </th>
<th>员工薪资</th>
<th>部门名称</th>
<th>ex1</th>
</tr>
<tr>
<th>ex1</th>
</tr>
</thead>
<tbody><!--体-->
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
<td>ex2</td>
</tr>
</tbody><!--底-->
<tfoot>
<tr>
<td>d</td>
<td>e</td>
<td>f</td>
<td>ex3</td>
</tr>
<tr>
<td>ex3</td>
</tr>
</tfoot>
</table>
</body>
</html>

4.png

背景色背景图和图片

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--告诉浏览器以什么字符集打开当前页面
并不是设置当前页面的字符编码方式-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>背景颜色和背景图片</title>
</head>
<body bgcolor="red" background="E:\壁纸\测试.png">
<!--背景色位于背景图片下层-->
<img src="E:\壁纸\b.png" width="100px" title="帕瓦" alt="图片找不到了!" /><!--写成<img src=".." ></img>也可以>
只设置宽度是高度会随着变(等比例),只设置高度可能不管用
img标签就是图片标签
src属性是图片的路劲
title设置的时鼠标悬停时显示的信息
alt是用来设置图片加载失败时显示的信息
-->
</body>
</html>

1.png

超链接

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>超链接,热链接</title>
</head>
<body>
<a href="https://youzipii.github.io">博客</a><!--文字超链接-->
<br><br>
<!--
href:hot references 热引用
href后面一定是一个资源的地址
也可以是本地的一个路径
-->
<a href="file:///C:/Users/yxz/Desktop/%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2%E8%83%8C%E6%99%AF%E5%9B%BE%E7%89%87.html">超链接 </a>
<!--超链接的特点
下划线
鼠标停留时会显示小手
点击超链接后能跳转页面
中间不一定要是文字,图片也可以
-->
<a href="https://youzipii.github.io/"><img src="E:\壁纸\b.png" width="100px"> </a><!--图片超链接-->
<br>
<a href="https://youzipii.github.io" target="_blank">博客</a>
<!--_blank是在新标签页中打开如果是self则是在本标签中打开
_self当前窗口
_top顶级窗口
_parents父窗口
-->
</body>
</html>
<!--超链接的作用
通过超链接可以从浏览器向服务器发送请求
浏览器向服务器发送数据(请求:request)
服务器向浏览器发送数据(响应:reponse)

B/S 结构的系统:每一个请求都会对应一个响应
B——请求——》S
S——响应——》B
用户点击超链接和直接书入URL有什么区别?
本质上没有,但超链接更方便

-->

列表

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>列表</title>
</head>
<body>
<!--有序列表-->
<ol type="a"> <!-- 1 数字 A 大写字母 a 小写字母 i 希腊字母-->
<li>水果
<ol>
<li>apple1</li>
<li>apple2</li>
<li>apple3</li>
</ol>
</li>
<li>蔬菜</li>
<li>甜点</li>
</ol>
<!--无序列表-->
<ul type="circle"><!--circle 圈圈 disc 方块 square点点-->
<li>apple
<ul>
<li>apple 3</li>
<li>apple 2</li>
<li>apple 1</li>
</ul>
</li>
<li>banana</li>
<li>grape</li>
</ul>
</body>
</html>

表单

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>表单form</title>
</head>
<body>
<!--
1、表单有什么用?
收集用户信息
表单展现之后,用户填写表单,点击提交后提交数据给服务器
2、怎么画一个表单呢?
使用form标签
3、一个网页当中可以有多个表单
4、表单最终需要提交数据给服务器。
form标签有一个action属性,这个属性用来指定服务器地址
action属性和超链接的href属性一样,都可以向服务器发送请求(request)


-->
<form action="http://192.199.177:8080/oa/save">
<input type="submit" value="注册" />
<input type="button" value="设置按钮上得文本" />
<!--对于按钮来说value用于指定按钮的文本信息-->
</form>
<!--传给这个机器上8080端口的软件-->
<!--画一个提交(suibmit)按钮可以使用input输入域,type = "input",此时按钮具有提交表单的能力,空着的是普通按钮,没有提交能力。-->
<!-- 笔记
在用sublime的自动补全时,input标签补全的是type和name 而没有
value
搜索资料name指的是控件的名称,即文本框的名称,而在type 为submit时更改name并不能改变按钮上的字,得改变value得值,
value是指文字域得默认取值,用于定于文本框(中)得默认值
说明submit得默认值是提交.

还有在自动补全时并没有补充/ 但浏览器也能识别不会报错,但写上更规范

超链接和表单都能向服务器发送请求,但表单可以携带数据

按钮要放到表单标签内部才能有作用

没有name时不会提交的
-->

<form action="http://www.baidu.com">
<input type="text" name="" />
<input type="submit" name="" value="百度" />
</form>

<br>
<form action="http:\\localhost:8080/jd/login">
用户名<input type="text" name="" /><br>
密码<input type="password" name="" /><br>
<input type="submit" name="" />

</form>
<br><br><br><br><br><br>
<!--
表单时以什么格式提交给服务器的?
http://localhost:8080/jd/login?username=abc&pwd=111
格式:action?name=value&name=value&name=value
HTTP协议规定的,必须以这种格式提交给服务器

重点,表单写了name属性的,一律会提交给服务器。
name为空好像也不提交,不知道是交了没有
在测试时并不会多了&
value没有写的时候,value的默认值是空字符串,java代码得到的是 string = "";
-->
<form action="http:\\localhost:8080/jd/login">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username" /></td>
<!--text类型value由用户写-->
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="pwd" /></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" name="" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" name="" value="清空">
</td>
</tr>
</table>
</form>
</body>
</html>

用户注册表单

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>用户注册表单</title>
</head>
<body>
<!--
用户注册:
用户名
密码
确认密码
性别
兴趣爱好
学历
简介
-->
<form accept="http://localhost:8080/jd/register" method="post">
<!--
form表单method属性
gets:用户提交的信息会显示在地址栏上
post:用户名提交的信息不会显示在浏览器地址栏上
当用户提交的信息含有敏感信息时建议用post方式提交
默认时gets方式,只有methon指定时post时才是post请求
两种方式提交的数据格式还是一样的
-->
用户名
<input type="text" name="username" />
<br>
密码
<input type="password" name="userpwd" />
<br>
确认密码 <!--确认密码不用发到服务器,JavaScript就可以解决-->
<input type="password" />
<br>
性别<!--name相同时只能选一个,name不同是可以都选-->
<!--checked 默认选中-->
<input type="radio" name="gender" value="1" checked />
<input type="radio" name="gender" value="0" />
<!--单选按钮的value必须手动指定-->
<br>
兴趣爱好
<input type="checkbox" name="interest" value="basketball" />打篮球
<input type="checkbox" name="interest" value="football" checked />打足球
<input type="checkbox" name="interest" value="volleyball" />打排球
<br>
学历
<select name="grade">
<option value="gz">高中</option>
<option value="dz">大专</option>
<option value="bk" selected>本科</option><!--默认选中-->
<option value="ss">硕士</option>

</select>
<br>
简介<!--文本域,没有value属性,填的就是value-->
<textarea rows="10" cols="60" name="introduce"></textarea>
<br>
<input type="submit" value="注册" />
<input type="reset" value="清空" />
<br>
<!--username=jackon&userpwd=111&gender=1&interest=football&grade=bk&introduce=111-->
</form>
<!--超链接也可以提交数据给服务器,但提交的数据时固定的。-->
<!--超链接时gets请求,不是post请求-->
<a href="http://localhost:8080/jd/register?username=ctl&password=111">提交</a>
<!--http://localhost:8080/jd/register?username=ctl&password=111
-->
</body>
</html>

用户注册表单.png

一些控件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>一些控件</title>
</head>
<body>
<!--下拉列表支持多选-->
<!--multiple支持多选,但要按住CTRL-->
<!--size控制显示的条数-->
<select multiple="multiple" size="2">
<option>福建省</option>
<option>江西省</option>
<option>山东省</option>
<option>海南省</option>
<option>陕西省</option>
</select>
<!--文件上传专用-->
<input type="file" name="" />
<br>
<!--隐藏域hidden 控件-->
<form action="http://localhost:8080/jd/save" method="post">
<!--网页上看不到,但表单提交的时候数据会自动提交给服务器。-->
<!--userid=111&usercode=-->
<input type="hidden" name="userid" value="111" />
<br>
<input type="text" name="userid" value="111" />
<br>
用户代码<input type="text" name="usercode" />
<input type="submit" name="" value="提交" />
</form>
<!--readonly和disabled-->
<!--相同点:都是只读不能修改
不同点:readonly可以提交给服务器,disabled数据包不会提交(即使由name属性)
-->
<form action="http://localhost:8080/jd/save">
用户代码<input type="text" name="usercode" value="111"readonly />
<br>
用户姓名<input type="text" name="username" value="123" disabled />
<br>
<input type="submit" value="提交数据" />
<br>
<!--usercode=111-->
<!--input控件的maxlength的属性-->
<!--设置文本框中可输入字符的数量-->
<input type="text" name="" maxlength="3" />
<br>
</form>
<!--提一提-->
<!--HTML中元素的id属性-->
<!--
1、在HTML文档中,任何元素(节点)都有id属性
2、id属性时该节点的唯一标识,所以在同一个HTML文档中id值不能重复
3、id有什么用?
a.id是为了让我们更方便的获取这个元素
b.JavaScript可以对HTML文档中任意节点进行增删改操作,那么增删改之前需要先拿到这个节点,通常我们通过id来拿节点对象
4、THML文档是一棵树,树上有很多节点,每一个节点有唯一的id
(DOM树)

-->
<center><a href="https://smms.app/image/KYOs57H8RPvpTUaS" target="_blank"><img src="https://s2.loli.net/2023/03/05/KYO57H8RPvpTUaS.png" ></a></center>
<br>
<center><font color="red" size="50">DOM树</font></center>
<form id="myform">
<input type="text" id="username" name="username" />
<input type="password" id="userpwd" name="userpwd" />
<!--id就是节点的身份证号,不能重复.-->
<!--表单提交数据的时候只和name有关和id无关-->
</form>
</body>
</html>

122.png

div和span

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML中的div和span</title>
</head>
<body>
<!--
1、div和span有什么用??
div和span都可以称为“图层”
div和span时可以定位的,只要顶下dic的左上角的x轴和y轴坐标即可
2、图层有什么用?
保证页面可以灵活的布局
3、最早的网页使用table布局,但是table不灵活,太死板
现代网页开发div布局使用最多,几乎很少使用table进行布局
4、div和span的区别?
默认情况下div会占用一行,span不会占用一行
-->
<div id="div1">我是一个div</div>
<div id="div2">我是一个div</div>

<span id="span1">我是一个span标签</span>
<span id="span2">我是一个span标签</span>

<div id="div3">
<div>
<div>test</div>
</div>
</div>
</body>
</html>

11.png

暂停于此