前端之HTML

前端

前端与后端的概念

image

前端

任何与用户直接打交到的操作界面都可以称之为前端>>>:接待员

后端

不直接与用户打交道,主要负责内部真正的业务逻辑的执行>>>:幕后操作者

image

前端三剑客

HTML

像骨头一样,撑起了整个页面的大致框架,比如左边需要一个输入框,右边需要一个按钮之类的,都可以用HTML来实现。

CSS

而HTML实现出来的样式比较单调,CSS就是为它进行“化妆”的,也就是做到美化的效果。

JavaScript

与用户进行交互,将用户的行为提交到后台服务器等。

img

一.前端前戏

1.编写服务器

2.浏览器充当客户端访问服务端

3.浏览器无法正常展示服务端内容(因为服务端的数据没有遵循标准)

4.HTTP协议>>>:最主要的内容就是规定了浏览器与服务端之间数据交互的格式

二.HTTP协议

1.四大特性

1.基于请求响应
客户端发送请求,服务端回应响应
2.基于TCP、IP作用于应用层之上的协议
该协议属于应用层
3.无状态
服务端不会保存客户端的状态(记不住人)
4.无\短连接
客户端与服务端不会长久保持连接

2.数据格式

1).请求格式

请求首行(请求方式(有很多种) 协议版本)
请求头(一大堆K:V键值对)
换行
请求体(存放敏感信息 并不是所有的请求方式都有请求体)

2).响应格式

响应首行(状态码 协议版本)
响应头(一大堆K:V键值对)
换行
响应体(存放给浏览器展示的数据)

3).响应状态码

(1).状态码大类

状态码分类 说明
1xx 响应中--临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它
2xx 成功--重定向到其它地方;它让客户端再发起一个请求以完成整个处理
3xx 重定向--重定向到其它地方;它让客户端发起一个请求以完成整个处理
4xx 客户端错误--处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等
5xx 服务端错误--处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等

(2).常见的响应状态码

状态码 英文描述 解释
200 OK 客户端请求成功,即处理成功,这是我们最想看到的状态码
302 Found 指示所请求的资源已移动到由Location响应头给定的URL,浏览器会自动重新访问到这个页面
304 Not Modified 告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404 Not Found 请求资源不存在,一般是URL输入有误,或者网站资源被删除了
428 Precondition Required 服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429 Too Many Requests 太多请求,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用
431 Request Header Fields Too Larger 请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
405 Method Not Allowed 请求方式有误,比如应该用GET请求方式的资源,用了POST
500 Internal Server Error 服务器发生不可预期的错误,服务器出异常了,赶紧看日志去吧
503 Service Unavailable 服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好
511 Nerwork Authentication Required 客户端需要进行身份验证才能获得网络访问权限

三.HTML

1.HTML简介

1.直接发送手写的数据

2.转为发送文件里面的数据

3.编写HTML出现特殊的现象

ps:超文本标记语言:所见即所得(没有任何逻辑,是什么就是什么)

2.HTML概览

1.HTML注释语法
	<!--注释内容-->

2.HTML
	<html>		固定格式 html包裹
    	<head>主要放跟浏览器交互的配置</head>
        <body>主要放给用户查看的花里胡哨的内容</body>
	</html>
    
3.HTML标签分类
	单标签(自闭和标签)
    	<img/>
	双标签
    	<h1></h1>

3.预备知识

1.网页信息数据一般也会存放于文件中
	.html
2.pycharm支持前端所有类型的文件编写
	内置有自动补全的功能,我们只需要专注于标签名的编写即可
3.html文件的打开
	内置有自动调用浏览器的功能

4.head内常见标签

1).title标签

title标签的作用就是定义网页的标题

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>这是一个网页标题</title>
	</head>
	<body>
		<p>内容</p>
	</body>
</html>

2).meta标签

meta标签一般用于定义页面的特殊信息,如页面关键字、页面描述等。这些信息并不是给用户的,而是给搜索引擎看的。

meta标签有两个重要的属性:namehttp-equiv

name属性的几个常用取值

属性值 说明
keywords 网页的关键字(可以多个)
description 网页的描述
author 网页的作者
copyright 版权信息
<!DOCTYPE html>
<html>
    <head>
        <title>这是一个网页标题</title>
        <meta name="keywords" content="CSDN,前端学习笔记,Kll"/>
        <meta name="description" content="这是CSDN的前端学习笔记"/>
        <meta name="author" content="Kll"/>
        <meta name="copyright" content="本站所有笔记均为书籍所学习摘抄,
        如有侵权,立即删除。"/>
    </head>
    <body>
        <p>内容</p>
    </body>
</html>

meta 标签的http-equiv属性只有两个重要作用:定义网页所使用的编码,定义网页自动刷新跳转。

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

这段代码告诉浏览器,该页面所使用的编码是utf-8,不过在HTML5标准中,代码简写为

<meta charset="utf-8"/>

如果你发现页面打开是乱码,很可能是没有加上这一句代码。在实际的开发中,我们必须在每一个页面中加上这句代码。

http-equiv的另一个作用是定义网页自动刷新跳转

<meta http-equiv="refresh" content="6;url=http://www.bilibili.com"/>

这段代码表示当前页面在6秒后会自动跳转到B站。

测试代码:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="refresh" content="6;url=http://www.bilibili.com"/>
 
    </head>
    <body>
        <p>等待6秒后自动跳转至B站</p>
    </body>
</html>

3).style标签

内部支持编写CSS代码

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
            /*这里写CSS样式*/
        </style>
    </head>
    <body>
    </body>
</html>

4).link标签

link标签用于引入外部样式文件(CSS文件)

<!DOCTYPE html>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="css/index.css">
    </head>
    <body>
    </body>
</html>

5).script标签

script标签用于定义页面的JavaScript代码,也可以引入外部JavaScript文件

<!DOCTYPE html>
<html>
    <head>
        <script>
            /*这里写JavaScript代码*/
        </script>
    </head>
    <body>
    </body>
</html>

6).base标签

base标签的作用是当超链接标签<a>没有指定href和target的属性时会默认使用<base>标签的内容

我们只需了解有这么一个标签即可

5.body内基本标签

1.标题系列标签
	h1~h6
2.段落标签
	p
3.其他标签
	u	下划线
    i	斜体
    s	删除线
    b	加粗
    '''相同效果可能是有不同的标签实现的,不是独一无二的'''
4.换行与分割线
	br	换行
    hr	分割线
    
"""
标签的分类二
	行内标签	u i s b
		内部文本多大就占多大
	块儿级标签	h系列 p
		独占一行
"""

6.常见符号

&nbsp;	空格
&gt;	大于
&lt;	小于
&amp;	&符
&yen	¥
&copy;	©
&reg;	®

7.body内局部标签

div
	块儿级标签
span
	行内标签
    
"""
标签之间可以相互嵌套,并且理论上可以无限套娃
	块儿级标签内部可以嵌套块儿级标签和行内标签
	p标签虽然是块儿级标签,但是它的内部不能嵌套块儿级标签
	行内标签内部只能嵌套行内标签
"""

8.body内常用标签

标签括号内填写的 什么=什么 称之为标签的属性
1.默认属性
标签自带的,编写的时候有自动提示
2.自定义属性
用户自定义,编写不会有提示甚至会飘颜色

a标签 链接标签

href
    1.填写网址	具备跳转功能
		href='url'
    2.填写其他标签的id值	具备锚点功能
		href='#id'

img标签 图片标签

src
	1.填写图片地址
    2.还有更多特性 目前没法讲
title
	鼠标悬浮在图片上自动展示的文本
alt	
	图片加载失败提示得到信息
width/height
	图片的尺寸,两者调整一个即可,等比例缩放

9.列表标签

无序列表

<ul>
    <li>数码</li>
    <li>装饰</li>
    <li>衣物</li>
</ul>

注意:页面上所有有规则排列的横向或者竖向的数据,一般使用的都是无序列表

有序列表

<ol type="I">
    <li>111</li>
    <li>222</li>
    <li>333</li>
</ol> 

还可以通过type竖向切换数字

标题列表

<d1>
	<dt>大标题</dt>
    	<dd>小标题1</dd>
    	<dd>小标题2</dd>
    <dt>大标题</dt>
    	<dd>小标题1</dd>
    	<dd>小标题2</dd>
    	<dd>小标题3</dd>
</d1>

10.表格标签

1.先写基本骨架
	<table>
        <thead></thead>
        <tbody></tbody>
    </table>
2.再写表头及表单数据
	 <tr>  一个tr标签就表示一行
        <th>编号</th>  th主要用于表头字段中 用来加粗显示
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    
    <tr>
        <td>1</td>  td主要用于表达数据中 
        <td>jason</td>
        <td>18</td>
    </tr>

实操

<table>
	<thead>
 		<tr>
			<th>编号</th>
			<th>姓名</th>
			<th>年龄</th>
            </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>jason</td>
            <td>18</td>
         </tr>
     </tbody>
</table>

10.表单标签

可以获取到用户的数据并发送给服务端

form标签

action 控制数据的提交地址

method 控制数据的提交方法

input标签

类似于前端的变形金刚

input标签应该有name属性

​ name属性相当于字典的键,input标签获取到的用户数据相当于字典的值

​ 点击发送就会组织成字典的形式发送给服务端,这样才具有明确意义

type属性:

属性 介绍
text 普通文本
password 密文展示
date 日期选项
email 邮箱格式
radio 单选
checkbox 多选
file 文件
submit 触发提交动作
reset 重置表单内容
button 暂无任何功能

select标签

下拉框

​ option标签 一个个选项

textarea标签

获取大段文本

11.表单标签的补充说明

基于form表单发送数据

1.用于获取用户数据的标签至少应该含有name属性

name属性相当于字典的键

用户输入的数据会被保存到标签的value属性中

value属性相当于字典的值

2.如果不需要用户填写数据,只需要选择,那么我们需要 自己填写value

<input type="radio" name="gender" value="male">

ps:没有name属性的标签,form表单会直接忽略,不会发送

3.针对input标签理论上应该配一个label标签绑定,但是也可以不写

<label for="d1">username:
    <input type="text" id="d1">
</label>
<label for="d1">username:</label>
<input type="text" id="d1">

4.标签的属性如果和属性值相等,那么可以简写

<input type="file" multiple="multiple">
<input type="file" multiple>

5.针对选择类型的标签可以提前设置默认选项

<input type="radio" name="gender" checked="checked">
<input type="radio" name="gender" checked="checked">
<input type="checkbox" checked="checked">
<input type="checkbox" name="gender" checked>
<option value="" selected="selected">222</option>
<option value="" selected>222</option>

6.下拉框与文件上传可以复选

<input type="file" multiple>
<select name="" id="" multiple>
</select>
posted @ 2022-11-30 20:15  dear丹  阅读(60)  评论(0编辑  收藏  举报