网页是基于浏览器的应用程序,是数据展示的载体.
典型程序的结构:
1、C/S :
C:Client 客户端 S:Server 服务器
2、B/S :
B:Browser 浏览器 S:Server 服务器
- HTML 网页的骨架,只是负责显示一些内容,但是内容不好看,没样式
- CSS 对网页内容进行优化,使得页面更加的美化,漂亮。
- JavaScript HTML和css是不能动的静态的,而 js可以让网页动起来,变得更加的美观。
关于前端学习的框架:bootstrap,jQuery,vue,react,angular.js
- 编写服务器
- 浏览器可以作为我们的客户端
- 浏览器无法正常显示是因为没有按照浏览器的规则(协议)去编写
- http协议最主要的内容就是规定了浏览器与服务器之间的数据交互的方式
需要遵守http协议,否则浏览器无法识别
请求响应:客户端发送请求,服务端响应请求,服务端不会主动给客户端发消息,除非使用其他网络协议。
基于TC,ip作用于应用层之上的协议,该协议属于应用层。
无状态:服务端不会保存客户端的状态( cookie、session、token、jwt等保存的,他们才是真正的保存用户数据的)
无(短)连接:客户端与服务端不会长久保持连接(两者请求响应之后立刻断绝关系)
请求数据:
请求首行(请求方式,协议,版本号)
请求头(一堆k:v键值对)
响应数据
响应首行(响应状态码)
1xx: 代表的是请求数据成功,但是这个时候还可以继续往服务端提交数据
2xx: 200 OK 代表的是请求成功
3xx:301 302 代表的是重定向
4xx: 404 Not Found 代表的是资源找不到
5xx:500 502 服务器内部错误(出现网页打不开的情况)
响应头(一大堆的k:v的键值对)
换行符/r/n
请求方式:
get:当朝服务端索要数据的时候,一般使用get请求方式
post:
当朝服务端提交数据的时候,一般采用post请求
超文本标记语言浏览器能够识别和解析的语言,通过元素的形式构建页面结构和填充内容
元素也称为标记或标签,用于在网页中标记内容
语法:标签使用< >为标志,标签名不区分大小写,推荐小写表示
分类:
<html>html>
<br>
<br/>
标签属性:
<img src="imgs/img01.jpg"
width="200px"
height="200px">
创建网页文件,使用.html或.htm作为文件后缀。
添加网页的基本结构:
doctype html>
<html>
<head>
<meta charset="utf-8">
<title>网页标题title>
head>
<body>
网页主体内容
body>
html>
标签嵌套
在双标签中书写其他的标签,称为标签的嵌套。
HTML语法规范
关键代码需要注释(在上面设置)
doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name='viewport' content='width=device-width, inital-scale=1.0 maximum-scale=1.0 user-scalable=no'>
<meta http-equiv='X-UA-Compatiable' content="ie-edge">
<title>网页标题title>
head>
<body>
网页主体内容
body>
html>
<h1>一级标题h1>
<h2>二级标题h2>
<h3>三级标题h3>
<h4>四级标题h4>
<h5>五级标题h5>
<h6>六级标题h6>
<p>段落文本p>
属性:align='left/center/right'
<b>加粗标签b>
<strong>强调标签,效果同b标签strong>
<i>斜体标签i>
<u>下划线标签u>
<s>删除线标签s>
<sup>上标sup>
<sub>下标sub>
<span>行分区标签,设置同一行文本的不用样式span>
<label>普通文本标签,常与表单控件结合实现文本与控件的绑定label>
<br>
<hr>
使用 < 在页面中呈现 "<"
使用 > 在页面中呈现 ">"
使用 在页面中呈现一个空格
使用 © 在页面中呈现版权符号"©"
使用 ¥ 在页面中呈现人民币符号"¥"
元素分组
<fieldset>
<legend>定义标题legend>
fieldset>
常用于页面结构划分,结合CSS实现 div+css 网页布局
div 标签
<div id="top">页面顶部区域div>
<div id="main">页面主体区域div>
<div id="bottom">页面底部区域div>
属性:align='left/center/right'
img 标签
<img src="" width="" height="" title="" alt="">
src:表示图片的地址(URL或本地路径)。
width/height:用于设置图片长宽尺寸,取像素值(px),默认按照图片的原始尺寸显示。
title:用于设置图片标题,鼠标悬停在图片上时显示
alt:用于设置图片加载失败后的提示文本
a 标签
<a href='' target=''>
href:用于设置目标文件的URL
target:用于设置目标文件的打开方式,默认在当前窗口打开。可以设置新建窗口打开目标文本(取"_blank")
<a href="http://www.taobao.com" target="_self">淘宝a>
<a href="http://www.baidu.com" target="_blank">百度a>
<a href="http://www.baidu.com" target="_blank">
<img src='img/tags.jpg'>
a>
<a href="#锚点位置" target="_blank">
<img src='img/tags.jpg'>
a>
内联元素与块元素
、、
、、、- 、
- 、
- 。
- 内联元素(行内元素)
列表标签
- 无序列表
默认用实心圆点标识列表项
<ul>
<li>list item 列表项li>
<li>list item 列表项li>
<li>list item 列表项li>
ul>
<ul type='disc'>
- 有序列表
默认使使用阿拉伯数字标识每条数据,可以使用start属性设置起始的值,默认为1
<ol>
<li>list item 列表项li>
<li>list item 列表项li>
<li>list item 列表项li>
ol>
<ol start='B' type='A' reversed>
- 列表嵌套
在已有列表中嵌套添加另一个列表,常见于下拉菜单
<ol>
<li>
西游记
<ul>
<li>孙悟空li>
<li>孙悟空li>
<li>孙悟空li>
ul>
li>
ol>
表格标签
- 表格由行和单元格组成,常用于直接的数据展示或辅助排版,基本结构如下:
<table>
<tr>
<td>姓名td>
<td>年龄td>
<td>班级td>
tr>
<tr>
<td>张三td>
<td>20td>
<td>一(1)班td>
tr>
table>
-
表格(table)属性
-
属性
含义
border
指定表格的边框宽度,以px为单位(px可省略)
width
指定表格的宽度,以px为单位(px可省略)
height
指定表格的高度,以px为单位(px可省略)
align
指定表格在父元素中的水平对齐方式,取值:left、right、center
cellpadding
表格内边距,表示内容与单元格边框之间的距离
cellspacing
单元格外边距,表示单元格与单元格之间的距离
-
行(tr)属性
-
属性
含义
align
控制当前行的内容的水平方式,取值:left、right、center
valign
控制当前行的内容的垂直对齐方式,取值:top、middle、bottom
bgcolor
控制当前行内容的背景颜色
-
列(td)属性
-
属性
含义
width
指定单元格的宽度,以px为单位(px可省略)
height
指定单元格的高度,以px为单位(px可省略)
align
指定单元格的水平对齐方式,取值:left、right、center
valign
控制当前单元格(列)的内容的垂直对齐方式,取值:top、middle、bottom
bgcolor
控制当前单元格(列)内容的背景颜色
colspan
跨列 / 合并列【纵向向下合并(包含自己)】
rowspan
跨行 / 合并行【横向向右合并(包含自己)】
-
行分组
-
将若干行划分为一组,方便统一管理。
标签
含义
表头行分组
表主体行分组
表尾行分组
表单标签
表单用于采集用户的信息并提交给服务器,由表单标签和表单控件组成。表单标签form负责提交数据给服务器,表单控件负责收集数据。
-
<form method='' action=''>form>
method:设置数据的提交方式,默认为get方式,可以设置为post
get:提交至地址栏,安全性较低,数据大小限制在2KB
post:隐式提交,安全性高,无数据大小限制
action:设置数据的提交地址
enctype:指定表单数据进行编码的方式,即允许将什么样的数据提交给服务器
application/x-www-form-urlencoded:默认值,允许将所有的文本数据提交给服务器
multipart/form-data:允许将文件提交给服务器
text/plain:只允许将普通文本字符提交给服务器,特殊字符则不可以
-
表单控件
-
文本框 & 密码框
-
文本框:<input type=’text’>
密码框:<input type=’password’>
name:定义控件的名称,若不声明则无法提交
value:值,控件上显示的值
maxlength:限制输入的最大字符数
readonly:只读,该属性允许不设置值
placeholder:提示占位符
-
<form action="#" form="infos">
<p>
<label for="name" form="infos">Nameslabel>
<input type="text" placeholder='请输入姓名' class="names" maxlength="10">
p>
form>
-
单选项按钮 & 复选框
-
单选按钮:<input type=’radio’> 选中无法取消
复选框:<input type=’checkbox’> 选中可取消
name:为控件定义名称。除了定义名称之外,属性也起到了分组的作用,一组单选按钮和复选框,名称必须一致
value:定义控件的值。提前定义,当用户选中控件时,则将控件的值提交给服务器
checked:设置预选中,该属性无值
-
<p>
性别:/
<input type="radio" name='gender' value='0' checked>帅锅
<input type="radio" name='gender' value='1'>美女
p>
<p>
爱好:
<input type="checkbox" name='hobby' value='0'>吃
<input type="checkbox" name='hobby' value='1'>喝
p>
-
隐藏域 & 文件选择框
-
隐藏域
作用:想提交给服务器但不想给用户看的数据要放在隐藏域中
语法:<input type=’’hidden”>
属性:name:控件的名称
value:控件的值
-
文件选择框
语法:<input type=’file’>
属性:name:控件名称
注意:1、表单的method属性必须为post
2、表单的enctype属性必须为multipart/form-data
-
<form action="#" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="imgs" id="imgs">
<input type="submit" value="提交">
p>
form>
对于文件数据的提交需要满足以下两个条件:
- 请求方式必须是post
- 数据编码方式:
1. application/x-www-form-urlencoded
2. multipart/form-data
3. json
- 编码方式必须是multipart/form-data才能提交问价
- urlencoded只能够提交不是文件的数据,form-data是可以提交普通数据和文件数据
- urlencoded形式的数据长什么样子:
username=&password=&date=&hidden=123&myfile=&city=
- form-data编码格式的数据:
username=&password=&date=&hidden=123&myfile=&city=
boundary=----WebKitFormBoundaryhwrBD6WMC3rBJXOy
文件数据
“”“对于form-data提交的数据,后端还是在form里面去普通数据,而在files里面去文件数据”“”
- form表单不能够提交json数据
- 如果想提交json格式的数据:Ajax技术、第三方的api工具postman
-
多行文本域
-
标记:<textarea><textarea>
属性:
1、name:定义控件名称
2、cols:指定义文本域的列数(一行中最多能显示多少个英文字符,中文减半)
3、rows:定义文本显示的行数(超出行数则会出现滚动条)
-
<span>自我介绍:span><br>
<textarea name="intro" cols="30" rows="10">textarea>
-
下拉选项框
-
语法:
<select name=’’>
<option value=’值1’>显示内容1option>
<option value=’值2’>显示内容2option>
select>
// multiple: 表示可同时选择多个选项
~~~
-
<p>
所在地址:
<select name="addr">
<option value="1" selected>北京市option>
<option value="2">天津市option>
<option value="3">重庆市option>
<option value="4">上海市option>
select>
p>
-
按钮
-
1、提交按钮:<input type='submit'>
作用:将表单提交给服务器
实例:<input type="submit" value='提交数据'>
2、重置按钮:<input type='reset'>
作用:将表单恢复到初始化的状态
实例:<input type="reset" value='重填'>
3、普通按钮:<input type='button'>
作用:允许通过js自定义功能
说明:<button>按钮上的名称button>
type:sumit / reset / button
属性:value:控制按钮上的文字
-
label 标签
-
作用:为input元素定义标注(标记)
格式:<label for="" form="">label>
属性:
for: 关联控件的id
form: 所属表单的id
实例:<label for="name" form="infos">用户名label>
6. 标签分类
-
块标签
独占一行,不与标签共行;可以手动设置宽高,默认宽度与与父标签保持一致
例 : body div h1~h6 p ul ol li form table(默认尺寸由内容决定)
-
行内标签
可以与其他标签共行显示;不能手动设置宽高,尺寸由内容决定
例 : span label b strong i s u sub sup a
-
行内块标签
可以与其他标签共行显示,又能手动调整宽高
例 : img input button (表单控件)
type属性值
表现形式
对应代码
text
单行输入文本
password
密码输入框
date
日期输入框
checkbox
复选框
radio
单选框
submit
提交按钮
reset
重置按钮
button
普通按钮
hidden
隐藏输入框
file
文本选择框