众所周知,前端三件套分别是HTML、CSS和JavaScript,其中HTML搭建了网页的骨架。
在学jsp的过程中涉及到了HTML,所以来速成一下!
网页构成
在HTML中,标签是成对存在的,其中标记网页开始和结尾的是<html>
标签,内部嵌套了两个标签:<head>
和<body>
。
<head>
是网页头部标签,记录了一些网页的格式,关键字等等,是用户看不到的<body>
标签是网页的主体,也就是网页上展示的内容- 这两个标签内部又嵌套了更细节的标签,共同组成了这个网页,具体会在后面的学习中讲到
<!-- DOCTYPE:告诉浏览器我们使用什么规范 -->
<!DOCTYPE html>
<!-- 网页的语言 -->
<html lang="en">
<!-- head标签代表网页头部,用户看不到 -->
<head>
<!-- mate描述性标签,用来描述网页关键信息,一般用来做SEO -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 关键词和解释 -->
<mate name="keywords" content="html学习">
<mate name="description" content="我的学习记录呀">
<!-- title标签代表网页名字 -->
<title>我的网页</title>
</head>
<!-- body标签代表网页主体,在网页上展示 -->
<body>
hello world
</body>
</html>
标签
基本标签
- 标题标签h
- 段落标签p
- 换行标签br
- 水平线标签hr
- 字体样式标签strong、em
- 注释和特殊符号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>基本标签学习</title>
</head>
<body>
<!-- 标题标签,一共有六级 -->
<h1>一级标签</h1>
<h2>二级标签</h2>
<h3>三级标签</h3>
<h4>四级标签</h4>
<h5>五级标签</h5>
<h6>六级标签</h6>
<!-- 段落标签 -->
<p>祝你生日快乐</p>
<p>祝你生日快乐</p>
<p>祝你生日快乐</p>
<p>祝你生日快乐</p>
<!-- 水平线标签,是自闭合标签 -->
<hr />
<!-- 换行标签,是自闭合标签,只用写一个,换行后也只是一段,与段落标签不同 -->
祝你生日快乐<br />
祝你生日快乐<br />
祝你生日快乐<br />
祝你生日快乐<br />
<!-- 粗体,斜体 -->
粗体:<strong>我爱你</strong>
斜体:<em>我爱你</em>
<br />
<!-- 特殊符号 -->
空 格<!-- 空了很多格,但是在网页中只显示一个, -->
空 格
<br />
大于小于号
>
<
<br />
版权符号
©
<!--
多行注释和单行注释一样的符号
-->
</body>
</html>
图像标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- img学习 -->
<!--
scr:图片地址:
分为相对地址和绝对地址
推荐使用相对地址
../ 上一级目录
alt:图像替代文字,当找不到图片时显示的文字
title:悬停文字,鼠标放在图片上显示的文字
width:图片的宽
height:图片的高
-->
<img src="../resources/image/1.png" alt="图像替代文字" title="悬停文字" width="" height="">
</body>
</html>
超链接标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>链接标签学习</title>
</head>
<body>
<a name="top">顶部</a><br />
<!-- 超链接标签(a标签) -->
<!--
name:锚标记的名字
href:必填,表示跳转到哪个页面,可以填本地的也可以填网站域名
targrt:表示窗口在哪里打开
_blank表示在新网页中打开
_self默认在当前网页打开
-->
<a href="html01.html" target="_blank">点击我跳转到页面一</a><br />
<a href="https://www.baidu.com/" target="_self">点击我跳转到百度</a><br />
<!-- 可以嵌套图片,点击图片跳转 -->
<a href="html01.html">
<img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</a><br />
下面是凑字数的
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
</p>
<!-- 锚链接 -->
<!--
作用是定位到网页的具体位置
1.需要一个锚标记
2.跳转到标记#+标记名
可以在要跳转到的页面地址后面+#标记名,直接跳转到新页面的标记位置
-->
<a href="#top">回到顶部</a><br />
<a href="html01.html#down">跳转到页面1底部</a><br />
<!-- 功能性链接 -->
<!--
邮件链接:mailto
QQ链接:把qq推广生成的链接粘到自己的网页上
-->
<a href="mailto:1599720786@qq.com">点击联系我</a>
</body>
</html>
行内元素和块元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>行内元素和块元素</title>
</head>
<body>
<!-- 块元素 -->
<!--
无论内容多少,该元素独占一行
p、h1-h6
-->
<p>段落标签是块元素</p>
<h1>标题标签也是块元素</h1>
<!-- 行内元素 -->
<!--
内容撑开宽度,左右都是行内元素的可以排在一行
a、strong、em
-->
<strong>加粗标签是行内元素</strong>
<em>斜体标签也是行内元素</em>
<a href="">链接标签也是行内元素</a>
</body>
</html>
列表标签
把信息用列表的形式展示出来,分为有序列表ol、无序列表ul、定义列表dl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>列表学习</title>
</head>
<body>
<!-- 有序列表 -->
<ol>
<li>java</li>
<li>python</li>
<li>c++</li>
<li>都学不会</li>
</ol>
<hr/>
<!-- 无序列表 -->
<ul>
<li>java</li>
<li>python</li>
<li>c++</li>
<li>都学不会</li>
</ul>
<hr>
<!-- 自定义列表 -->
<!--
dl:标签
dt:列表名称
dd:列表内容
-->
<dl>
<dt>上学</dt>
<dd>java</dd>
<dd>python</dd>
<dd>c++</dd>
<dd>都学不会</dd>
</dl>
</body>
</html>
表格标签
结构:单元格、行、列、跨行、跨列
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表格标签学习</title>
</head>
<body>
<!-- 表格table -->
<!--
行:tr rows
列:td
边框宽度:border
-->
<table border="1px">
<tr>
<!-- 跨列:colspan -->
<td colspan="4">1-1跨列</td>
</tr>
<tr>
<!-- 跨行:rowspan -->
<td rowspan="2">2-1跨行</td>
<td>2-2</td>
<td>2-3</td>
<td>2-4</td>
</tr>
<tr>
<td>3-2</td>
<td>3-3</td>
<td>3-4</td>
</tr>
</table>
</body>
</html>
音频视频元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 音频和视频 -->
<!--
src:路径
controls:控制,不加的话无法看到进度条
autoplay:自动播放
-->
<video src="../resources/video/4.mp4" controls autoplay></video>
<audio src="../resources/audio/祝你生日快乐.mp3" controls autoplay></audio>
</body>
</html>
iframe内联框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>内联框架</title>
</head>
<body>
<!-- iframe内嵌框架 -->
<!--
scr:引用页面地址
name:框架标识名
frameborder:框架边框宽度
width、height:宽和高
-->
<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=55631961&bvid=BV1x4411V75C&cid=97257967&p=11"
name=hello scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
<!-- 可与a标签联合使用
target:在哪个页面跳转链接 -->
<a href="html01.html" target="hello">点击跳转</a>
</body>
</html>
页面结构
元素名 | 描述 |
---|---|
header | 页眉,用于页面或一块区域,导航条 |
footer | 页脚,用于页面或一块区域,网页底部 |
section | web页面中的一块独立区域 |
article | 独立的文章内容 |
aside | 相关内容或应用,常用于侧边栏 |
nav | 导航类辅助内容 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面结构学习</title>
</head>
<body>
<header>
<h2>网页头部</h2>
</header>
<section>
<h1>网页主体</h1>
</section>
<footer>
<h2>网页脚部</h2>
</footer>
</body>
</html>
表单
就是网站的注册登录
- form标签格式
- action:表单向何处提交
- method:表单提交方式,get和post
- input标签属性:
- type:指定元素的类型
- text:文本框
- password:密码
- radio:单选(必须有初始值)
- checkbox:多选,其中元素是option
- submit:提交
- reset:重置
- button:按钮
- image:图片按钮
- file:文档
- email:邮箱验证
- url:url验证
- number:数字验证,可设置max min type
- range:滑块验证,可设置max min type
- search:搜索框
- name:指定表单元素的名称
- value:元素的初始值
- size:元素的初始宽度,type为text和password时大小以字符为单位
- maxlength:type为text和password时输入的最大字符数
- checked:type为radio和checkbox时默认按钮被选中
- hidden:隐藏域,文本框不显示
- readonly:只读,默认值不能更改
- disable:禁用,比如按钮无法提交
- 下面是表单验证,可以用来保证数据安全性,减轻服务器压力
- placeholder:提示信息
- required:非空判断
- pattern:正则表达式
- type:指定元素的类型
- selete:下拉框,元素是option
- textarea:文本域
- cols:高
- rows:行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登陆注册</title>
</head>
<body>
<h1>注册</h1>
<!-- 表单form -->
<!--
action:表单提交的位置,可以是网站也可以是请求处理地址,提交后会跳转到相应位置
method:提交方式,有post和get
get方式提交:我们可以在url中看到提交的信息,不安全但高效
post方式提交:比较安全,可以提交大文件,在请求正文可以查看
-->
<form action="html01.html" method="get">
<!-- 表单的元素是input标签:<input type="类型"> -->
<!--
value:默认初始值
maxlength:最长能写几个字符
size:文本框长度
value="好累啊" maxlength="8" size="30"
-->
<!-- 文本输入框:text -->
<p>名字:<input type="text" name="username" readonly placeholder="请输入用户名" required></p>
<!-- 密码输入框:password -->
<p>密码:<input type="password" name="pwd" hidden></p>
<!-- 单选框:radio -->
<!--
value:单选框的值
name:表示组,选项的name相同才是单选
checked:默认选中
-->
<p>性别:
<input type="radio" name="sex" value="boy" checked>男
<input type="radio" name="sex" value="girl">女
</p>
<!-- 多选框:checkbox -->
<p>爱好
<input type="checkbox" value="sing" name="hobbys" checked>唱
<input type="checkbox" value="dance" name="hobbys">跳
<input type="checkbox" value="rap" name="hobbys">rap
<input type="checkbox" value="basketball" name="hobbys">篮球
</p>
<!-- 按钮:button 图片按钮:image -->
<p>
<input type="button" name="btn1" value="点击开始打篮球">
<input type="image" src="../resources/image/6.jpg">
</p>
<!-- 增强鼠标可用性:label,点击文字后会锁定输入框 -->
<p>
<label for="mark">你点我试试</label>
<input type="text" id="mark">
</p>
<!-- pattern:正则表达式,自定义判断 -->
<P>自定义邮箱:
<input type="text" name="diymail" pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$">
</P>
<!-- 提交:submit 重置:reset -->
<p>
<input type="submit" disabled>
<input type="reset" value="清空表单">
</p>
<!-- 下拉框、列表框:selete -->
<p>时代少年团
<select name="列表名称">
<option value="mjq">马嘉祺</option>
<option value="dcx">丁程鑫</option>
<option value="lyw">刘耀文</option>
<option value="hjl">贺俊霖</option>
</select>
</p>
<!-- 文本域:textarea -->
<p>请简述喜欢马嘉祺的十个原因
<textarea name="textarea" cols="50" rows="10"></textarea>
</p>
<!-- 文件域:file -->
<p>
<input type="file" name="files">
<input type="button" name="upload" value="上传">
</p>
<!-- 邮件验证 -->
<p>邮箱:
<input type="email" name="email">
</p>
<!-- URL -->
<p>URL:
<input type="url" name="url">
</p>
<!-- 数字 -->
<p>商品数量:
<input type="number" name="num" max="100" min="0" step="10">
</p>
<!-- 滑块 -->
<p>音量:
<input type="range" name="listen" max="100" min="0" step="10">
</p>
<!-- 搜索框 -->
<p>搜索:
<input type="search" name="search">
</p>
</form>
</body>
</html>