HTML学习笔记


HTML学习笔记

HTML

软件结构

  • C/S架构(Client/Server,客户端/服务器模式)

    • QQ,360,idea,浏览器等都是C/S架构
    • 弊端:必须下载安装才能使用,更新需要重新安装
    • 优点:界面效果更好,更方便将数据缓存在本地
  • B/S架构(Browser/Server,浏览器/服务器模式)

    • 京东、淘宝等都是B/S架构
    • 优点: 无需安装,只要有浏览器随时随地可以打开,更新用户可以实时看到
    • 缺点:数据缓存没有cs方便

    现在java开发更多的是B/S架构结构的程序。

Web标准

  • 结构标准:HTML,负责页面的内容结构 – 人体
  • 样式标准:CSS,负责页面的美化 – 给人化妆
  • 行为标准:JavaScript,负责页面的交互 – 给人进行交互

HTML是什么

HTML(Hyper Text Markup Language-EndFragment): 超文本标记语言

文本:只能是字符串内容

超文本: 不仅仅是文本,还可以是音频、视频、图片

标记语言:就是使用标签来表示语义,html中的标签都是内置好的,表达什么语义就使用什么标签

超文本也是文本,所以使用所有的文本软件都可以打开和编辑。那么音频、视频、图片用文本是怎么打开的呢???

注意:音频、视频、图片并不是真的将音频、视频、图片的数据添加进文本,而是使用表示音频、视频、图片的语义标签来引入音频、视频、图片的地址。

所以学习HTML就是学习它的语义标签。

html文件的扩展名是:.html或者.htm

HTML骨架

<!DOCTYPE html>
<!-- !DOCTYPE html HTML5的文档声明 -->
<!-- 
 html 只能有且只有一个根标签html
 -->
<html>
	<!-- 
	   head是html页面的头
	   head是双标签
	 -->
	<head>
		<!--  meta 元数据标签
		   meta单标签
		 -->
		<meta charset="utf-8">
		<!-- 页面的关键字信息: 这是给搜索引擎使用 -->
		<meta name="keywords" content="java,c,php" />
		<meta name="description" content="动力节点专业IT培训机构,一家只教java的培训机构">
		<!-- 页面的标题 -->
		<title>百度一下,以后啥也不知道</title>
	</head>
	<!-- 
	   身体:主体部分
	   页面的内容就编写在该标签中
	 -->
	<body>
		  你干啥呢
	</body>
</html><!DOCTYPE html>
<!-- !DOCTYPE html HTML5的文档声明 -->
<!-- 
 html 只能有且只有一个根标签html
 -->
<html>
	<!-- 
	   head是html页面的头
	   head是双标签
	 -->
	<head>
		<!--  meta 元数据标签
		   meta单标签
		 -->
		<meta charset="utf-8">
		<!-- 页面的关键字信息: 这是给搜索引擎使用 -->
		<meta name="keywords" content="java,c,php" />
		<meta name="description" content="动力节点专业IT培训机构,一家只教java的培训机构">
		<!-- 页面的标题 -->
		<title>百度一下,以后啥也不知道</title>
	</head>
	<!-- 
	   身体:主体部分
	   页面的内容就编写在该标签中
	   
	   bgcolor 背景颜色属性
	 -->
	<body bgcolor="skyblue">
		  你干啥呢
	</body>
</html>

br和hr标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>br和hr标签</title>
	</head>
	<body>
		<!-- 
		   在html表达什么意思需要使用标签
		   br 换行标签
		 -->
		床前明月光,<br/>
		疑是地上霜。<br/>
		举头望明月,<br/>
		低头思故乡。<br/>
		
		<!-- hr标签表示水平线 -->
		<hr >
	</body>
</html>

h1到h6的标题标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>h1到h6的标题标签</title>
	</head>
	<body>
		<!-- 
		    h1到h6的标题标签 是body中内容的标题标签
			文字大小和粗体是样式负责的,属于css的范畴。
			但是h1到h6的标题标签自带默认样式,但是这些自带的样式都可以被css修改
			所以h1到h6的标题标签的主要重要是标签的语义表示的权重不一样
			h1的权重最大;h6的权重最小
			权重是给搜索引擎使用的。
		
			一个页面最多一个h1标签,网站的logo需要使用h1
		 -->
		 <h1>标题1</h1>
		 <h2>标题2</h2>
		 <h3>标题3</h3>
		 <h4>标题4</h4>
		 <h5>标题5</h5>
		 <h6>标题6</h6>
	</body>
</html>

p段落标签和pre标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>p段落标签和pre标签</title>
	</head>
	<body>
		<!-- 
		   p标签是段落标签,段落是英文格式的
		 -->
		<p>
			党的十八大以来,以习近平同志为核心的党中央,先后部署开展了党的群众路线教育实践活动、“三严三实”专题教育、“两学一做”学习教育、“不忘初心、牢记使命”主题教育、党史学习教育等5次党内集中学习教育,频度之密、力度之大、成效之显著,放眼百年党史都不多见。
		</p>
		<p>
			习近平总书记指出:“党的十八大以来,我们先后开展一系列集中学习教育,一个重要目的就是教育引导全党牢记中国共产党是什么、要干什么这个根本问题,始终保持党同人民的血肉联系。”
		</p>
		
		<hr >
		<!-- 
		   pre 是预格式标签,保留内容中的空格、换行等符号
		 -->
		<pre>
			public static void main(String[] args){
			   System.out.println(1234);			 
			}
		</pre>
		 
	</body>
</html>

格式标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>格式标签</title>
	</head>
	<body>
		<!-- 
		  b标签是文字粗体标签,但是文字粗体根据web标准是属于css的范畴
		  所以文字粗体应该由css来控制。
		  所以在开发中b标签用来作为css的钩子使用
		 -->
		<b>我爱你,中国</b>
		<br>
		<!-- 
		  i标签是文字斜体标签,但是文字斜体根据web标准是属于css的范畴
		  所以文字斜体应该由css来控制。
		  所以在开发中i标签用来作为css的钩子使用
		 -->
		<i>我爱你,中国</i>
		<br>
		<!-- 
		  u标签是文字下划线标签,但是文字下划线根据web标准是属于css的范畴
		  所以文字下划线应该由css来控制。
		  所以在开发中u标签用来作为css的钩子使用
		 -->
		<u>我爱你,中国</u>
		<br>
		<!-- 
		 strong也是粗体标签,但是比b的权重更大,语义的主要作用是表示强调
		 -->
		<strong>我爱你,中国</strong>
		<br>
		<!-- 
		 em也是斜体标签,但是比i的权重更大,语义的主要作用是表示强调
		 -->
		<em>我爱你,中国</em>
		<br>
		<!-- 
		   del表示删除线,同样css可以控制
		 -->
		<del>我爱你,中国</del>
		<br>
		<!-- 
		   sup 标签:定义上标文本。
		 -->
		<!-- (a-b)²=a²-2ab+b² -->
		(a-b)<sup>2</sup>=a<sup>2</sup>-2ab+b<sup>2</sup>
		<br>
		<!-- 
		   sub 标签:定义下标文本。
		 -->
		log<sub>2</sub>8
	</body>
</html>

img图像标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>img图像标签</title>
	</head>
	<body>
		<!-- 
		   img 图片标签
		   src属性表示图片的地址
		   
		   html中的资源的路径分为:
		   绝对路径:就是路径本身就能定位到资源【一般开发中都用的绝对路径】
		     常见的绝对路径是: 
				1、文件系统的根路径开头;
					 <img src="D:\mm.gif" >
				2、网络协议开头的地址
					<img src="https://XXXXX">
		   相对路径:就是路径本身无法定位资源,必须借助参照路径
			以点开头的路径:./【当前路径】 ../【上一级路径】
		   参照路径:当前页面的路径
		   
		   绝对路径 = 参照路径 + 相对路径
		   参照路径: D:/course/03_Web/HTML/code/HtmlDemo/html/
		   相对路径: mv.webp
		   绝对路径: D:/course/03_Web/HTML/code/HtmlDemo/image/mm01.webp
		   
		   注意: 相对路径要求在同一个项目中的资源才能使用
		   
		   开发中需要使用相对路径
		   -->
		   <!-- 
		     width="300px"  表示图片宽度为300像素
			 宽度和高度设置一个即可,另一个会按照比例缩放
			 width="50%" 表示图片宽度是页面宽度的50%
			 
			 title属性是鼠标停留在图片上显示的文字信息
			 alt属性是图片加载失败后显示的信息
			 
			-->
		<img src="../mvxx.webp"  width="300px" title="这是哪个美女" alt="美女图片">
		<br>
		<img src="../image/mm01.webp" width="50%">
	</body>
</html>

a超链接标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>a超链接标签</title>
	</head>
	<body>
		<!-- 
		   a标签表示超链接
		   href属性就是超链接需要链接的地址
		   
		   target 表示超链接打开的方式
		   target="_self" 表示在当前标签页打开
		   target="_blank" 表示在一个新的空白标签页中打开
		 -->
		<a href="http://www.baidu.com" target="_blank">百度</a>
		<a href="http://www.126.com"  target="_blank">126</a>
		<!-- 这里的#仅仅是占位的,超链接点击后还是在当前页面 -->
		<a href="#">超链接</a>
		
	</body>
</html>

使用a标签完成锚点功能

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>使用a标签完成锚点功能</title>
	</head>
	<body>
		<p id="p1">段落1</p>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<p id="p2">段落2</p>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<p>段落3</p>
		<br><br><br><br><br>
		<!-- 
		   给标签设置id,然后在a标签中使用#id就可以跳转到指定id的位置
		   这就是锚点功能
		 -->
		<a href="#p1">跳转到段落1</a>
		<a href="#p2">跳转到段落2</a>
	</body>
</html>

span标签和div标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>span标签和div标签</title>
		<style type="text/css">
			div{
				width: 100px;
				height: 100px;
				background-color: red;
			}
		</style>
	</head>
	<body>
		我爱你,祖国
		<br>
		<!-- 
		  文本内容使用span标签后,视觉效果没有任何的变化
		  span在这里仅仅是一个文本标签,主要是用来充当css的钩子
		 -->
		<span>我爱你,祖国</span>
		<br>
		<!-- 
		   div标签的作用是将整个页面分区
		   分区的作用是为了给不同的区域做不同的美化效果
		 -->
		<div>
			div
		</div>
	</body>
</html>

列表标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>列表标签</title>
	</head>
	<body>
		<!-- 
		   html中的列表分为有序列表、无序列表、定义列表
		   有序列表:ordered list 简写为 ol标签
		   无序列表:unordered list 简写为 ul标签
		   列表项: list item 简写为 li标签
		 -->
		 <!-- 
		  type="1" 表示列表编号类型是数字类型
		  -->
		 <ol type="1">
		 	<li>列表01</li>
			<li>列表02</li>
			<li>列表03</li>
		 </ol>
		 
		 <hr >
		 <!-- 
		  type="square" 表示列表项的符号是方块
		  -->
		 <ul type="square">
		 	<li>列表01</li>
		 	<li>列表02</li>
		 	<li>列表03</li>
		 </ul>
		 
		 <hr >
		 <!-- 
		    定义列表: definition list 简写为dl标签
			定义列表由dl dt dd 组成
			dt  definition title
			dd  definition data
			 一个dl可以有多个dt
			 一个dt可以有多个dd
		  -->
		  <dl>
		  	<dt>四川省</dt>
		  	<dd>成都市</dd>
			<dd>绵阳市</dd>
			<dd>自贡市</dd>
              
			<dt>云南省</dt>
			<dd>昆明市</dd>
			<dd>玉溪市</dd>
			<dd>昭通市</dd>
		  </dl>
	</body>
</html>

table表格标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>table表格标签</title>
	</head>
	<body>
		<!-- 
		   table标签表示表格
		   表格的行 table row 简写成 tr标签
		   表头  table head 简写成 th标签
		   表格的数据   table data 简写成 td标签
		 -->
		 <!-- 
		  border="1px" 表示表格和单元格边框线为1px
		  width 表格的宽度
		  cellspacing="0px" 设置单元格的外边距为0px
		  cellpadding="0px" 设置单元格的内边距为0px
		  align="center" 设置对齐方式为水平居中对齐
		  -->
        
        <!--
			它们都应用到表格,用于整体规划表格的行列属性。应用这两个标签的优点是,我们只要对thead、tbody标签的属性进行修改,就能对表格的整行单元格的属性进行修改,从而剩去了逐一修改单元格属性的麻烦。
  thead标签的属性有:align bgcolor class dir id lang style title valign等。
		-->
		 <table border="1px" width="300px" height="200px"
		 cellspacing="0px" cellpadding="0px" align="center">
			<thead>
             <tr>
			 	<th>学号</th>
			 	<th>姓名</th>
			 	<th>年龄</th>
			 	<th>性别</th>
			 </tr>
             </thead>
             <tbody>
			 <tr align="center">
			 	<td>1001</td>
			 	<td>zhangsan</td>
			 	<td>22</td>
			 	<td>male</td>
			 </tr>
			 <tr align="center">
			 	<td>1002</td>
			 	<td>lisi</td>
			 	<td>22</td>
			 	<td>male</td>
			 </tr>
			  <tr align="center">
				<td>1003</td>
				<td>wangwu</td>
				<td>22</td>
				<td>male</td>
			</tr>
           </tbody>
		 </table>
	</body>
</html>

表格合并行和列

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>合并行和列</title>
	</head>
	<body>
		<!-- 
		   html页面默认是从上到下,从左到右显示的
		 -->
		<table border="1px" cellspacing="0px" cellpadding="20px">
		   <tr>
		   	<td>1</td>
		   	<td>2</td>
		   	<td>3</td>
			<!-- 
			 rowspan="2" 表示合并两行,也就是该单元格占据两行的位置
			 -->
		   	<td rowspan="2">4</td>
		   </tr>
		   <tr>
		   	<td>11</td>
		   	<td>12</td>
		   	<td>12</td>
		   </tr>
		   <tr>
		   	<td>21</td>
		   	<td>22</td>
		   	<td>23</td>
		   	<td>24</td>
		   </tr>
		   <tr>
		   	<td>31</td>
		   	<td>32</td>
			<!-- 
			  colspan="2" 表示合并2列,也就是该单元格占据两列的空间
			 -->
		   	<td colspan="2">33</td>
		   </tr>
		</table>
	</body>
</html>

表单标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单标签</title>
	</head>
	<body>
		<!-- 
		   form表示表示表单标签
		   表单的作用就是用来收集用户信息,然后将信息提交到指定路径
		   action="" 该属性就是提交信息的路径地址
		   method="get" 表示数据提交的方式是 get/post
		 -->
		<form action="#" method="post">
			<!-- 
			   for="标签的id号",此时点击该标签就会关联到id对应的元素上
			 -->
			<label for="uid">账号:</label>
			<!-- 
			    type="text" 表示类型是明文的文本
				placeholder="请输入账号" 占位符,也就是没有输入内容的时候显示的信息
			   name属性是提交数据到指定路径时的参数名称【重要】
			   比如之前我们学习的jdbc的url
			    jdbc:mysql:///db01?username=root&password=123456
				这里的username和password就是参数名称,也就是这里name属性的值
			 -->
			<input type="text" id="uid" name="username" placeholder="请输入账号"/>
			<br>
			<br>
			<label for="pwdId">密码:</label>
			<input type="password" name="pwd" id="pwdId"/>
			<br>
			<br>
			电话:
			<input type="text" name="tel"/>
			<br>
			<br>
			生日:
			<input type="date" name="birth"/>
			<br>
			<br>
			性别:
			<!-- 
			 type="radio" 表示单选按钮,单选按钮必须互斥
			  checked="checked" 表示被选中了,如果属性名和属性值一样,可以只写属性名
				file 文件上传,文件上传的时候需要,表单中有个文件上传的控件(出现只有文件上传的时候,才会出现)
				reset 重置表单内容。
				h5 提供的内容:
					email 邮箱
					date  日期
					number 数字
			
			 -->
			<input type="radio" name="sex" checked  value="male"/><input type="radio" name="sex" value="female" /><br>
			<br>
			头像:
			<input type="file" name="userimg" />
			<br>
			<br>
			爱好:
			<!-- 
			   type="checkbox" 表示是复选框,多选按钮(让多选按钮为一组,name值必须相同)
			 -->
			<input type="checkbox" name="hobbies" value="0"/>抽烟
			<input type="checkbox" name="hobbies" value="1"/>喝酒
			<input type="checkbox" name="hobbies" value="2"/>烫头
			<br>
			<br>
            <!--
			select 下拉选,name属性必须要提供,表示提交给后台的数据。
			option是子标签。
			value属性是提交给后台的数据值,如果不给则提交的是option标签体的内容。
			multiple属性,表示支持多选
			size 可见的长度大小
-->
			地址:
			<select name="province">
				<option>四川省</option>
				<option>云南省</option>
				<option>贵州省</option>
			</select>
			<select name="city">
				<option>成都市</option>
				<option>宜宾市</option>
				<option>昆明市</option>
			</select>
			<select name="area">
				<option>锦江区</option>
				<option>武侯区</option>
				<option>青羊区</option>
			</select>
			<br>
			<br>
			备注:
			<!-- 
			  textarea 文本域,特点是内容可以换行
			 -->
			<textarea rows="10" cols="30">
			</textarea>
			<br>
			<br>
			<!-- 
			    submit和reset类型的按钮,自带监听【自带点击事件】,也就说不需要使用js就可以点击交互
				submit点击后默认行为就是提交数据
				reset点击后默认行为就是清空数据
				
				
				button类型的按钮必须配合js才能交互
				value的值默认是on,需要我们重置value,因为不重置,后台无法区分提交来的数据是男还是女,必须要给value属性重新赋值(一般都是用0和1来表示)
				hidden 隐藏域,把需要提交给后台且不需要显示出来的属性,使用隐藏域,隐藏起来。
		 -->
			<input type="submit" value="注册"/>
			<input type="reset"/>
			<input type="button" value="注册1"/>
			<!-- 
			   <button>注册2</button> 没有写type,默认的类型是submit
			 -->
			<button type="button">注册2</button>
		</form>
	</body>
</html>

框架和实体字符

frameset框架集

frameset标签可定义一个框架集,在同一个浏览器窗口中被用来组织多个窗口(框架),每个窗口(框架)存有独立的HTML文档在使用frameset时,不可以同时存在body标签,它和body标签是同级的。

在HTML5当中,为了推进新的web前端开发模式,frameset布局将不再被推荐,但是使用它做为企业后台界面开发的还是非常多。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>框架集</title>
	</head>
	<!-- 
	   frameset不能和body同时存在
	   noresize="noresize" 不允许改变大小
	 -->
	 <frameset rows="10%,*" noresize="noresize">
	 	<frame src="top.html" >
		<frameset cols="20%,*">
			<frame src="left.html" >
			<frame name="content" >
		</frameset>
	 </frameset>
</html>

top.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<h2>动力学生管理系统</h2>
	</body>
</html>

left.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 
		 target="frame的name"  表示页面在指定的frame中打开
		 -->
		<a href="studentManagment.html" target="content">学员管理</a>
		<br>
		<br>
		<a href="10-列表标签.html" target="content">成绩管理</a>
		<br>
		<br>
		<a href="13-表单标签.html" target="content">班级管理</a>
		<br>
		<br>
	</body>
</html>

内联框架-iframe

iframe元素会创建包含另外一个文档的内联框架(即行内框架),用于一个网页中局域显示另外网页。
iframe是属于内联框架,它是body的子级,和body是父子关系。
iframe作为一个普通元素放在body里,而frameset是代替了body元素。
scrolling=”yes/no” 规定是否在框架中显示滚动条。

iframe标签属性:

  1. width 可设置内联框架的宽

  2. height 可设置内联框架的高

  3. name 设置框架名称

  4. src 设置页面的路径

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内联框架-iframe</title>
	</head>
	<body>
		<iframe src="10-列表标签.html" width="40%" height="800px"></iframe>
		<iframe src="10-列表标签.html" width="40%" height="800px"></iframe>
	</body>
</html>

实体字符

HTML 中的预留字符必须被替换为字符实体,在 HTML 中,某些字符是预留的。

在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。

如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实体字符</title>
	</head>
	<body>
		我们今天学习了&lt;p&gt;标签
		<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</body>
</html>

文章作者: 小白不白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小白不白 !
  目录