静态网页称为普通网页 所谓的静态网页文件里面没有程序代码,只有HTML html htm shtml xml
静态网页 就是内容制作完成无法修改
静态网页的优点: 容易被搜索引擎检测到 、访问速度快 节省服务器资源 、页面浏览速度快 不需要编译
静态网页的缺点: 内容固定不变 交互性差
静态网页的工作原理
<html>
<head>
<meta charset="utf-8" />
<title>文档标题title>
head>
<body>
文档的正文内容
body>
html>
DOCTYPE 文档声明 告知浏览器HTML版本 必须放在最顶部 否则导致浏览器的怪异模式
怪异模式:浏览器使用自己的怪异模式解析渲染页面
标准模式:浏览器使用W3C的标准解析渲染页面
html 表示的是html文档 可以把它理解为一张纸 或者一种文件的格式
head 文档头,加入:网页标题、作者信息、版本信息、JavaScript、CSS 文档头不会出现在浏览器内容区 理解为一本书开头的信息 不会出现在正文中
title就是当前网页的题目
body 正文区 放置网页中所显示信息的标志和属性
开始标签和结束标签为HTML的一个元素
空元素 并不是每一个元素都拥有开始标签、内容、结束标签。一些元素只有一个标签 br/ 标签
文件编译为二进制 进入计算机执行 二进制也是通过解析显示数据 当解析和编译的字符集编码不同的时候 就会出现乱码
元数据标签 meta
布局标签 div
<html>
<head>
<meta charset="utf-8">
<meta name="keywords" content="HTML入门" />
<meta name="description" content="章鱼教育-Java全栈工程师" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="robots" content="all" />
<meta name="renderer" content="webkit" />
<meta http-equiv="refresh" content="20000;URL=http://www.baidu.com"/>
<title>我的第一个页面title>
head>
<body>
<div style="background-color: blue">
<p> 区域Ap>
div>
<div style="background-color: yellow">
<p>区域Bp>
div>
<div style="background-color: red">
<p> 区域Cp>
div>
body>
html>
文本标签 p 、h1 - h6 、b、strong、em 、i、u、del、s、br、hr、span、cite
标签 | 效果 |
---|---|
p | 段落 结束后换行以及空一行 |
h1-h6 | 标题h1到h6字体加粗大小逐渐减小 |
b | 加粗文本 实体标签 |
strong | 加粗文本 强调语气更加语义化 逻辑标签 |
i | 斜体文本 |
em | 斜体文本 强调语气更加语义化 逻辑标签 |
mark | 文本显示高亮 默认为黄色 |
br | 换行标签 是一个空标签 |
s | 删除线 |
del | 删除线 强调语气 更加语义化 逻辑标签 |
u | 文本的下划线 |
hr | 分割线 空标签 |
span | 让span内的文字变为单独的个体 加以修饰 |
cite | 引用标签 引用文献等 显示为斜体 |
blockquote | 长文本引用,引用后效果文字自动的缩进 cite属性是引用链接 对引用链接的网页权重增加 |
code | code标签显示的是单行代码 |
pre | pre标签显示的是多行代码 保留空格和tap键 |
<div>
<h1>主题1h1>
<h2>主题2h2>
<h3>主题3h3>
<h4>主题4h4>
<h5>主题5h5>
<h6>主题6h6>
div>
<div>
<p>第一段p>
<p>第二段p>
div>
<div>
<b>加粗文本b>
<br />
<strong>加粗文本strong>
div>
<div>
<em>斜体em>
<br />
<i>斜体i>
<br />
<mark>高亮显示mark>
<u>下划线u>
div>
<div>
<s>删除线s>
<hr />
<del>删除线del>
div>
a | 用于定义超链接,从一个页面链接到另一个页面 锚点跳转 |
---|---|
href | href属性就是点击超链接跳转的地址 没有定义就默认跳转当前网址 相当于刷新 |
target | target 属性规定在何处打开链接文档 |
_blank | 在新窗口中打开被链接文档 |
_self | 默认 在相同框架下打开被链接的文档 |
_parent | 在父框架集中打开被链接的文档 |
_top | 在整个窗口中打开被链接的文档 |
framename | 在指定的框架中打开被链接文档 |
<body>
<div>
<span>_blankspan>
<a href="http://www.baidu.com" target="_blank">baidua>
<br />
<span>_parentspan>
<a href="http://www.baidu.com" target="_parent">baidua>
<br />
<span>_selfspan>
<a href="http://www.baidu.com" target="_self">baidua>
<br />
<span>_topspan>
<a href="http://www.baidu.com" target="_top">baidua>
div>
<div>
<a href="#p1">锚点跳转a>
<p id="p1">第一段p>
div>
<div>
<a href="file:///D:\前端学习\com.baidu\day\Demo.html" target="_blank">file文件协议 a>
<br />
<a href="mailto:[email protected]">mailto协议a>
<br />
<a href="tel:123456789">call mea>
<br />
div>
body>
file协议用于访问本地计算机中的文件,它是针对本地的,它只是简单的请求了本地文件,将其作为一个服务器未解析的静态文件打开,不可进行跨域操作。
http访问本地html文件,相当于将本机作为一个http服务器,然后通过localhost(客户端 浏览器)访问本地服务器,然后通过本地http服务器去访问本机(服务器)文本资源。本地搭建http端口后,别人也可以通过http访问自身主机的文件
file协议相当于自己访问自己的东西 无需解析 http相当于别人访问自己的资源 需要先解析请求 才能响应 通过安全考虑别人访问服务器的资源一律通过http协议 负责不予访问
图像标签
img | 图片的链接 |
---|---|
width | 宽度:默认为auto |
height | 高度:默认为auto |
alt | 当图片不能正常显示的信息 |
title | 就是鼠标放在图片上显示的信息 |
src | 指定图片的地址 网络地址 本机地址 |
<div>
<img src="https://www.baidu.com/img/540x258_2179d1243e6c5320a8dcbecd834a025d.png"
width="200px" height="200px"
alt="素材.png" title="素材.png"
/>
<img src="file:///C:\Users\yangj\Pictures\联想锁屏壁纸\素材.jpg"
width="200px" height="200px"
alt="素材.jpg"
/>
<img src="../照片/素材.jpg"
width="200px" height="200px"
alt="素材.png" title="你好.png"
/>
<a href="/">点击a>
div>
Unix/Linux:/ 作为路径分割符
Windows: \ 作为路径分割符 \ 和 / 大多数情况下是可以互换的
DOS命令: / 作为路径分割符
浏览器地址栏:网址一般用 /
Windows的文件浏览器使用 \
在html中,如果路径是网络路径,必须用 / 表示 。普通文件的路径,如果是windows文件路径 则 / 和 \ 效果一样
序列号标签 ul、ol、li 可以用来作为站点导航
ol | 有序列表 |
---|---|
ul | 无序列表 |
li | 列表项 |
dl | 自定义列表 |
dt | 自定义列表项 |
dd | 对自定义列表项的描述 |
<div>
<ol>
<li>JAVAli>
<li>Pythonli>
<li>C#li>
ol>
<ul>
<li>JAVAli>
<li>Pythonli>
<li>C#li>
ul>
<dl>
<dt>JAVAdt>
<dd>Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。dd>
<dt>Pythondt>
<dd>Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。dd>
<dt>C++dt>
<dd>C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计dd>
dl>
div>
table | 用来创建表格 |
---|---|
border | 边框的宽度 |
cellspacing | 表格单元格直接的间隙 |
cellpadding | 表格单元格的内边距 就是文字与边框直接的距离 |
tr | 表示表格的一行 |
th | 表示表头 |
td | 表格的内容 |
colspan | 合并列单元格 |
rowspan | 合并行单元格 |
thead | 分割作用 下载可以先下载表头 表头会出现到页面上 |
tbody | 分割作用 一段一段下载 防止页面出现长时间空白 |
tfoot | 分割作用 页脚 |
<div>
<table border="10" cellspacing="0px" cellpadding="10px">
<thead>
<tr><th>学号th><th>姓名th><th colspan="2">电话号码th>tr>
thead>
<tbody>
<tr><td>18060212120td><td>肖一凡td><td>123456td><td>123456td>tr>
<tr><td>18060212121td><td>杨靖td><td colspan="2">13109237846td>tr>
tbody>
<tfoot>
<tr>tr>
tfoot>
table>
div>
form | 创建表单 |
---|---|
action | 提交数据的服务器地址或网址 |
method | 表单提交方式(get/post) |
target | 在何处打开actionURL |
input | 用于搜集用户信息 |
type | 就是用户输入信息的方式 |
placeholder | 水印 |
label | 会根据for属性的id找到对应标签 |
checked | 默认选项 单选框 |
value | 服务器接收到value的值 也可以给按钮赋予名字 |
textarea | 文本域 |
select | 显示一个下拉列表 |
option | 定义下拉列表中的一个选项 |
selected | 下拉列表的默认选项 |
<div>
<form action="http://www.baidu.com" method="get" id="myform">
用户名: <input type="text" name="username" placeholder="用户名"/>
<br />
密码:<input type="password" name="password" placeholder="密码" />
<br />
性别:<input type="radio" name="sex" value="0" id="r1" checked="checked"/> <label for="r1">男label>
<input type="radio" name="sex" value="1" id="r2"/> <label for="r2">女label>
<br />
擅长的语言:<input type="checkbox" name="like" id="java" value="0" /><label for="java">JAVAlabel>
<input type="checkbox" name="like" id="c++" value="1"/><label for="c++">C++label>
<input type="checkbox" name="like" id="python" value="2"/><label for="python">Pythonlabel>
<br />
自我介绍:
<textarea rows="10" cols="8">
textarea>
<br />
省份:
<select name="province">
<option value="0">陕西option>
<option value="1" selected="selected">北京option>
<option value="2">上海option>
<option value="3">广州option>
select>
<br />
头像:<input type="file" name="file" />
<br />
按钮:<input type="button" value="提交" onclick="document.getElementById('myform').submit()" />
<input type="submit" value="提交2" />
<input type="reset" value="重置" />
<input type="image" src="../照片/素材.jpg" width="80px" height="80px" />
<br />
<input type="hidden" name="token" value="123456" />
form>
div>
渲染引擎-
内核就是解析源代码
Trident :IE内核 IE浏览器 360浏览器 傲游 世纪之窗 UC 搜狗 海豚
Gecko :Firefox内核 开源内核
webkit :Safari内核 Chrome内核原型 开源
Blink :Google + Opera webkit的一个分支 Chrome Opera 360浏览器 Edge
Presto (废弃) :Opera之前的内核
HTML框架用于在浏览器窗口显示多个页面
<frameset cols="50%,50%">
<frame src="Demo.html" />
<frame src="Demo4.html" />
frameset>
frameset | 框架标记:用来宣告HTML为框架模式;cols和rows分配每个frame的比例 不能在body标签中 |
---|---|
frame | 只是设定某个框架内的参数属性,用来指定一个html页面 |
src | 框架文档的URL |
name | 框架的名称 |
noresize | 是否可以调整大小 |
scrolling | 是否显示滚动条 |
内联框架用于在网页内显示网页
<body>
<p>
<a href="http://www.baidu.com" target="myframe">baidua>
<a href="http://www.bing.com" target="myframe">Bing a>
p>
<iframe src="http://www.163.com " width="80%" height="600px" name="myframe" >iframe>
<div style="left:60%;top:75%;position: fixed;">
<iframe src="http://www.baidu.com " width="80%" height="600px" >iframe>
div>
body>
iframe | 内联框架 可以和body标签同时使用 |
---|---|
frameborder | 指定框架边框 |
name | 指定框架名称 |
src | 指定框架集合的URL |
width | 指定框架的宽度 |
height | 指定框架的高度 |
<div>
<p> hellop>
<p> hello p>
<a> 这是一个链接标签 <br />
<a> 这是一个链接标签<br />
a≤b © ®
div>
HTML、XHTML、以及HTML DOM的新标准
主要的目标是将互联网语义化
新增语法特性:
优点:
缺点:
HTML语义化
为什么要语义化?
HTML常见语义标签
<div>
<img src="../照片/素材.jpg" width="500px" height="500px"/>
<p>
<cite>杨靖cite>
<blockquote cite="http://">
不在沉默中爆发,就在沉默中灭亡
blockquote>
<code>
System.out.println("Hello World");
code>
<pre>
for(int i=0;i<5;i++){
System.out.println(i);
}
pre>
按下<kbd>Ctrl+Ckbd>复制文本
<br />
<time datetime="2021-5-6">五月六日time><br />
等待记载中:<progress max="100">progress><br />
文件下载中:<progress max="100" value="30" id="myprogress">progress><br />
磁盘使用量:<meter low="60" high="80" max="100" min="0" optimum="40" value="40">你的浏览器不支持该标签progress>
p>
div>
HTML5新增主题结构标签
<div>
<header>
<hgroup>
<h1>页眉主标题h1>
<h2>页眉副标题h2>
hgroup>
header>
<nav>
<ul>
<li><a href="http://www.baidu.com">百度a>li>
ul>
nav>
<article>
<header>
<hgroup>
<h1>这是一篇介绍HTML5结构标签的文章h1>
<h2>HTML5的革新h2>
hgroup>
<time datetime="2021-6-9">2021.06.09time>
header>
<p>文章内容详情p>
article>
<aside>
<section>
<h4>随笔分类h4>
<ul>
<li><a href="#">Java笔记a>li>
<li><a href="#">Python笔记a>li>
<li><a href="#">C++笔记a>li>
ul>
section>
aside>
<footer>
版权信息:© yangjing
footer>
div>
header | 定义文档或者文档部分区域的页眉,应作为介绍内容或者导航连接栏的容器 |
---|---|
hgroup | 对标题标签进行组合 |
nav | 描述一个含有多个超链接区域.该区域包含跳转到其他页面或页面内部其他部分的链接列表 网站导航 |
main | 定义文档的主要内容,该内容在文档中独一无二 |
article | 该元素表示文档、页面、应用或网站中的独立结构,是可独立分配的、可重用的结构 主要是内容独立 |
aside | 该元素表示一个和其余页面内容几乎无关的部分 不会影响页面中的其他内容 |
footer | 定义最近一个章节内容或者根节点元素页脚 |
section | 表示文档中的一个区域(或章节) |
article比section更加具有独立性和完整性
article 可以当做一篇文章的一个报道、一个帖子、一段评论其他任何独立的内容 一般具有自己的标题、中心思想
article看做是一个特殊的section,比secion更加具有明确的语义
<form action="Demo.html" method="post" id="myform">
Email:<input type="email" name="email" id="email" required="required" />
<br />
URL:
<br />
数字:<input type="number" name="number" id="number" min="0" max="100" step="2" required="required" />
<br />
范围:<input type="range" name="range" min="0" max="100" />
<br />
日期:<input type="datetime-local" name="date" />
<br />
文本框:<input type="search" name="search" />
<br />
颜色:<input type="color" name="color" />
<br />
<input type="submit" value="提交" />
form>
type | 作用 |
---|---|
邮箱 可以智能验证邮箱格式是否正确 | |
url | 网址 也可以智能验证格式 |
number | 数字 可以设置最大值和最小值 |
range | 范围 |
datetime-local | 时间选项框 |
search | 智能文本框 |
color | 颜色选择框 |
<form action="" method="post" autocomplete="on" id="myform">
Age:<input type="text" name="age" id="age" pattern="^[0-9]{1,2}$" />
<br />
<input type="submit" value="提交" />
form>
表单属性 | 定义 |
---|---|
autocomplete | 属性规定输入字段是否应该启用自动完成功能。浏览器基于输入过的值出现在选项中 |
novalidate | 提交的时候不会进行数据验证 |
autofocus | 打开页面时焦点自动对应到设置这个属性的输入框 |
multiple | 在文件选择框中设置该属性可以选择多个文件 |
pattern | 可以输入正则表达式 根据你输入的值进行验证 |
新加元素 | 定义 |
---|---|
datalist | 定义一个表单 |
output | 用于输出 |
<audio src="" autoplay="autoplay" controls="controls" loop="loop" preload="auto">
当前浏览器不支持audio
audio>
<video width="800" controls="controls">
<source src="" type="video/3gpp">source>
当前浏览器不支持video
video>
标签 | 定义 |
---|---|
audio | 音频播放 只支持ogg、mp3m、wav格式 |
autoplay | 自动播放 |
controls | 控制按钮 |
loop | 循环播放 |
preload | 页面加载后播放 也就是缓冲一段后自动播放 |
标签 | 定义 |
---|---|
video | 视频播放标签 |
source | 播放的子标签 按子标签的顺序播放 |
以提供用户选择,用户还可以自己输入
<audio src="" autoplay="autoplay" controls="controls" loop="loop" preload="auto">
当前浏览器不支持audio
audio>
<video width="800" controls="controls">
<source src="" type="video/3gpp">source>
当前浏览器不支持video
video>
标签 | 定义 |
---|---|
audio | 音频播放 只支持ogg、mp3m、wav格式 |
autoplay | 自动播放 |
controls | 控制按钮 |
loop | 循环播放 |
preload | 页面加载后播放 也就是缓冲一段后自动播放 |
标签 | 定义 |
---|---|
video | 视频播放标签 |
source | 播放的子标签 按子标签的顺序播放 |