前端初识

前端

  • 什么是前端

    任何于用户直接打交道的页面都可以称之为前端,比如电脑界面,手机界面,网页

  • 什么是后端

    幕后操作者,不直接与用户打交道

学习历程

  • html:内容,网页的骨架
  • CSS:外观,添加样式
  • JavaScript:动作,网页的动态效果
  • bootstrap
  • jQuery
  • vue

浏览器窗口输入网站回车发生了几件事

1. 浏览器朝服务端发送请求
2. 服务端接收请求
3. 服务端返回响应的响应,返回网站
4. 浏览器接收响应,根据特定的规则渲染页面展示给用户看

浏览器可以充当很多服务端的客户端,浏览器有一个,服务端有很多个,想要一个客户端与多个服务端交互:
1. 浏览器能够自动识别服务端做不同处理
2. 制定一个同一标准,所有服务端都要遵循一些规则:http协议

  

http协议

超文本传输协议,用来规定服务端与浏览器之间的数据交互格式,这样浏览器就能正常渲染服务端发送的内容

不用http协议也可以,只是就不能用浏览器,需要写一个app

以下的内容要求滚瓜烂熟

http协议四大特性

  1. 基于请求响应

  2. 基于TCP / IP作用于应用层之上的协议:协议上面的协议

  3. 无状态,不保存用户的信息,由于http这个特性,后来出现了一些专门用来技术用户状态的技术:cookie,session,token

  4. 无链接 / 短链接,请求来一次响应一次,之后没有任何联系

    长链接:双方建立链接之后默认不断开:websocket

服务端与浏览器之间的数据交互格式

  1. 请求数据格式
  2. 响应数据格式

请求方式

  • get请求:朝服务端数据

    例:输入网址获取对应的内容

  • post请求:朝服务端提交数据

    例:用户登陆,输入用户名和密码之后,提交到服务端做身份校验

请求数据格式

请求首行,请求头,/r/n,请求体

1. 请求首行:标识http版本,档期啊请求方式(get/post)
2. 请求头:一堆k:v键值对
3. 回车:/r/n
4. 请求体:get没有请求体,post请求体里面放敏感数据

  

响应数据格式

响应首行,响应头,/r/n,响应体

1. 响应首行(标识http协议版本,响应状态码)
2. 响应头
3. /r/n
4. 响应体

响应状态码:用一串数字标识一些复杂的状态或描述性信息,如200,500,404

主要有几类:
	1xx:服务端已经顺利接收了你的数据,正在处理,可以继续提交额外数据
	2xx:服务端成功响应了你的数据,200 request ok
	3xx:重定向:当你在访问一个需要登陆之后才能看的页面,页面会重定向到登陆页面
	4xx:请求错误:404:请求资源不存在,403:当前请求不合法或不符合访问资源的条件
	5xx:服务器内部错误,500:internal server error

  

url:统一资源定位符,标识资源的位置,也就是网址

让我们在python上写的服务端返回的数据能被浏览器识别:

conn.send(b'HTTP/11 200 OK 

')
conn.send(b'hello')
# 此时,在conn里可以发送html代码或文件,可以被浏览器识别

  

html

简介

超文本标记语言,不是编程语言。能够让浏览器渲染页面,我们现在看到的所有网站都是html代码

书写html

注释

<!--单行注释-->
<!--
多行注释
多行注释
-->
由于html比较杂乱,所以我们习惯性地用注释来划定区域方便后续的查找

<!--左侧菜单栏开始-->
...
<!--左侧菜单栏结束-->

<!--顶端导航栏开始-->
<!--顶端导航栏结束-->

  

html文档结构

<html>
    <head></head> head标签里的代码页面上显示不出来,是定义一些配置给浏览器看的
    <body>
        hello:用户能够看到的内容,给浏览器渲染
    </body>
</html>

  

文件的后缀名其实是给用户看的,只不过对应不同的文件后缀名有不同的软件来处理并添加功能

新建html文件,会自动帮你生成一些标签;html没有任何格式,可以全部写在一行里面,只不过我们习惯了缩进来显示代码

两种打开html文件的方式

  1. 使用浏览器打开
  2. 在pycharm内部集成了自动调用浏览器的功能,前提是电脑上安装了对应的浏览器

标签

标签的分类

1. 双标签:<h1></h1>
2. 单标签,自闭合标签:<image>

  

head里的标签

在书写html代码的时候,只需要写标签名,table键能自动补全

title,style,script,meta,link等等

<head>
    <title>标签名字</title>
    <style>
        h1{
            color:yellow,
        }
        写css代码
    </style>
    <script src='myjs.js'>
        写js代码或引入js文件
    </script>
    <link>
    	用来引入外部css文件
    </link>
	<meta>
		告诉浏览器干什么活
		meta name,meta keyword。。。
	</meta>
</head>

  

body里的标签

基本标签

  • h1~h6 一级标签到六级标签
  • b:加粗标签
  • i:斜体
  • u:下划线
  • s:删除线
  • p:段落标签,一个p标签就是一行
  • br:换行:单标签
  • hr:水平分割线:单标签
<body>
    <h1>
        一级标签
    </h1>
    <h2>
        二级标签
    </h2>
    <b>加粗</b>
    <i>斜体</i>
    <u>下划线</u>
    <s>删除线</s>
    <p>
        文本标签,单独占一行
    </p>
    <br> 换行
    <hr> 水平分割线
</body>

  

标签的分类2

  • 块级标签:独占一行    h1~h6   p   div
    1. 块级标签可以修改长宽度
    2. 可以嵌套任意的块级标签和行内标签
    3. 特例:p标签是块级标签,但是只能嵌套行内标签,不能嵌套块级标签,如果嵌套了,自动会分隔开
  • 行内标签:自身文本多大,就占多大     i   u   s   b  span
    1. 不能修改宽高度,宽高度取决于文本大小
    2. 可以嵌套行内标签,不能嵌套块级标签,但是一般行内标签不会用来嵌套

前端基本不会报错,只是显示的效果会有错误

特殊符号

  • 空格:标签内空格只能有一个,要用多个空格要用    &nbsp;
  • 1 > 2:大于号,防止与标签混淆,> 写作 &gt; 小于号 < 写作 &lt;
  • and 符号 &:&amp;
  • ¥ 羊角符号:&yen;
  • 版权 圆圈c:&copy; 
  • 商标,圆圈r:&reg;  ®

标签的两个重要书写

1.id值
	类似于标签的身份证号 在同一个html页面上id值不能重复
2.class值
	该值有点类似于面向对象里面的继承 一个标签可以继承多个class值
    
# 标签既可以有默认的书写也可以有自定义的书写
<p id="d1" class="c1" username="jason" password="123"></p>

常用标签

div  块儿级标签
span  行内标签
上述的两个标签是在构造页面初期最常使用的 页面的布局一般先用div和span占位之后再去调整样式 尤其是div使用非常的频繁
div你可以把它看成是一块区域 也就意味着用div来提前规定所有的区域
之后往该区域内部填写内容即可
而普通的文本先用span标签 

img标签

# 图片标签
<img src="" alt="">
src="url" 1.图片的路径可以是本地的也可以是网上的 2、url 自动朝该url发送get请求获取数据
alt="当图片加载不出来的时候 给图片的描述性信息"
title="当鼠标悬浮到图片上之后 自动展示的提示信息"
# 若只指定一个宽或者高则等比缩放,若两个都指定且不考虑比例,图片则失真
height="300px" 
width=""

 a标签

# 文本链接(超链接)
<a href=""></a>
'''
默认字体颜色为蓝色,当用户点击后字体颜色就会变成紫色(浏览器会记忆用户的操作)
'''

href="url" 用户就会跳到对应的url页面
href="#other_id" 放其他标签的id值就会跳到对应标签位置(锚点链接)

target 默认在当前页面完成跳转 _self
	   在新窗口打开页面  _blank
    
# a标签的锚点功能
<a href="" id="d1">顶部</a>
<h1 id="d111">hello world</h1>
<div style="height: 1000px;background-color: red"></div>
<a href="" id="d2">中间</a>
<div style="height: 1000px;background-color: greenyellow"></div>
<a href="#d1">底部</a>
<a href="#d2">回到中间</a>
<a href="#d111">回到中间</a>

列表标签

# 无序列表(常用)
<ul type="none">
	<li>第一项<li>
    <li>第二项<li>
</ul>
type="none"去除列表前的点
适用于多行数据的排版

# 有序列表(了解)
<ol type="1" start="5">
    <li>第一项</li>
    <li>第二项</li>
</ol>
start="5" 表示列表的序号从5开始

# 标题列表(了解)
<dl>
    <dt>标题1</dt>
    <dd>内容1</dd>
    <dt>标题2</dt>
    <dd>内容2</dd>
</dl>

标签的分类

# 1 块级标签:独占一行
'''
		h1~h6 p div
  	1) 块级标签可以修改长宽 行内标签不可以 修改了也不会变化
    2) 块级标签内部可以嵌套任意的块儿级标签和行内标签
    	但是p标签虽然是块级标签 但是它只能嵌套行内标签 不能嵌套块级标签
    	如果强行嵌套,也不会报错,浏览器会自动帮你解开,一般情况下浏览器不会轻易报错
    	即使报错,用户一般也感觉不出来
'''
    总结:
      	块级标签可以嵌套任意的块级标签跟行内标签
        p标签只能嵌套行内标签(HTML书写规范)
# 2 行内标签:自身文本多大就占多大
		i u s b span
  	行内标签不能嵌套块级标签 可以嵌套行内标签

  

  

  

  

  

原文地址:https://www.cnblogs.com/Tornadoes-Destroy-Parking-Lots/p/12870604.html