前端基础之HTML

前端

  • 什么是前端
    • 一句话概括就是:任何与用户直接打交道的操作界面都可以称之为是一个前端。比如:电脑显示界面、手机界面等
  • web服务的本质
    • 浏览器窗口输入一个网址敲回车发生了哪些事
      • 朝着在指定的服务端发送请求
      • 服务端接收相应的请求
      • 服务端返回相应的响应
      • 浏览器接收响应,按照特定的规则渲染页面展示给用户看

HTTP协议

  • 超文本传输协议
  • 规定了浏览器与服务端之间数据传输的格式
  • HTTP四大特性
    1. 基于请求响应 (一次请求对应一次响应)
    2. 基于TCP/IP 作用于应用层之上的协议
    3. 无状态 (不保留客户端的状态)
    4. 无连接
  • 数据格式
    • 请求格式
      • 请求首行(请求方式,协议版本)
      • 请求头(一大堆k,v键值对)
      • 请求体(携带的数据,并不是一直都有,有时候可能是空的,取决于请求方式)
    • 响应格式
      • 响应首行(响应状态码)
      • 响应头(一大堆k,v键值对)
      • 响应体(浏览器展示给用户看的数据)
    • 响应状态码
      • 用数字来表示一大堆提示信息
        • 1XX:服务端已经成功接收到客户端的数据正在处理,可以继续提交
        • 2XX:200请求成功,服务端已经返回了你想要的数据
        • 3XX:重定向(原本想访问A但是内部自动给你转到了B上面)
        • 4XX:404请求资源不存在,403你当前不具备请求该资源的条件
        • 5XX:500服务端内部错误(机房着火了、宕机、爆炸)
  • 请求方式
    • get请求
      • 朝服务端获取资源(类似于浏览器访问百度获取百度首页)
    • post请求
      • 朝服务端提交数据(类似于登录注册功能)

HTML

  • 超文本标记语言
  • 浏览器能够识别的语言非常少:(HTML/XML、CSS、JS)

XML也可以书写前端页面,主要用于odoo框架中,书写企业内部管理软件

HTML注释

<!--单行注释-->
<!--
多行注释1
多行注释2
-->
由于HTML页面结构比较复杂,内容比较多,不便于后期的维护,修改,通常在写页面的时候,习惯用下面的方式来人为的划分代码区域
<!--顶部导航条样式开始-->
······
<!--顶部导航条样式结束-->
<!--左侧菜单栏样式结束-->
······
<!--左侧菜单栏样式结束-->

HTML文档结构

<html>
    <head></head>:head内存放的内容不是给用户看的,是给浏览器去识别做相应的操作
    <body></body>:body内存放的内容就是浏览器展示给用户看到的花里胡哨的页面
</html>

HTML文档打开方式

  1. pycharm自动调用浏览器打开(推荐)
  2. 手动查找路径之后选择浏览器打开

标签的分类

标签的分类1
	1. 双标签
	2. 自闭和标签
标签的分类2
	1.块儿级标签
		独占一行(h1-h6、p、br、hr、div)
		1.块儿级标签内部可以嵌套任意的块儿级标签和行内标签
		2.特例:p虽然是块儿级标签,但是它的内部只能嵌套行内标签,不能嵌套块儿级标				签,如果嵌套了,没问题,但是不符合HTML语法规范
	2.行内标签
		(u、s、i、b、span)
		自身文本多大,就占多大
		行内标签内部不能嵌套块儿级标签和行内标签
书写标签的时候,只需要写标签名字,之后tab键可以自动补全
此功能来源于---> emmet插件

head内常用标签

title:定义网页标题
style:内部支持直接写CSS代码
link:引入外部的CSS文件
script:
	1.内部可以直接编写js代码
	2.可以通过src属性引用外部js代码
meta:
	name属性
		keywords
		description
URL:统一资源定位符

body内常用标签

基本标签
	h1—h6:标题标签
	s:删除线
	b:加粗
	u:下划线
	i:斜体
	p:独占一行
	br:换行
	hr:分割线

特殊符号

&nbsp;				空格
<p>a大于b     	a &gt; b</p>
<p>a小于b			a &lt; b</p>
<p>a和b			a &amp; b</p>
<p>人民币   		&yen;10000</p>
<p>版权标识   		&copy;</p>
<p>注册商标   		&reg;</p>

常用标签

div		块儿级标签
span	行内标签
本身没有任何特殊意义,但是这两个使用最多,这两个标签是用来做前期的页面布局的

img	图片标签
	src
		1.可以写一个网站图片地址
		2.还可以写本地的图片地址
		3.url(自动朝该url发送get请求获取数据)
	alt
		当图片加载不出来的时候,默认展示的提示信息
	title
		当鼠标悬浮在图片上的时候,展示的提示信息
	width,height
		修改图片的宽高篇幅
		修改一个,另外一个会自动等比例缩放
		如果两个都修改,图片就会丢帧
a 链接标签
	href
		放一个url
			点击就会跳转到该url所对应的资源
	target
		控制是否在当前页跳转
			默认是在当前页跳转 _self
			新建页面跳转	_blank
	锚点功能
		href不单单可以写url,也可以写另外一个a标签的id值
		点击就会跳转到该id值所对应的a标签所在的位置
    <a href="" id="d1">页首</a>
    <div style="height: 1000px;background-color: red"></div>
    <a href="" id="d2">中间</a>
    <div style="height: 1000px;background-color: green"></div>
    <a href="#d1">回到顶部</a>
    <a href="#d2">回到中间</a>

标签应该具备的属性

  1. id属性:类似于身份证号,用来唯一标识当前HTML页面中的某一个标签(同一个HTML页面中,id值不能重复)
  2. class属性:类似于面向对象的继承,直接引用别的类的样式

列表标签

无序列表(较多)
	ul
		li
		只要页面上出现了比较有规则排列的文本,基本上都可以用无序列来实现
            <p>无序列表</p>
            <ul>
                <li>111</li>
                <li>111</li>
                <li>111</li>
            </ul>
有序列表
	ol
            <p>有序列表</p>
            <ol type="1">
                <li>哈哈哈</li>
                <li>嘿嘿嘿</li>
                <li>呵呵呵</li>
            </ol>
标题列表
	dl
		dt标题
		dd内容
            <p>标题列表</p>
            <dl>
                <dt>标题</dt>
                <dd>内容</dd>
            </dl>

表格标签

展示网站数据的时候,一般情况下可以使用表格标签
<table>		border="1" 加表格线
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td></td>
        </tr>
    </tbody>
</table>
写表格标签,先写结构,然后写数据
一个tr就是一行
th和td之分:一个加粗,一个不加粗
通常情况下表头用th,表单内容用td
	rowspan="2" /colspan="2" 合并单元格

表单标签

form标签
获取用户输入(输入,选择,上传文件...)并且将数据打包发送给后端
action参数
	用来控制数据提交的路径(到底朝哪个后端服务器提交数据)
	三种写法:
		1.不写,默认就是朝当前页面所在的地址提交数据
		2.全路径(https://www.baidu.com)
		3.只写路径后缀(/index/)

获取用户输入input标签 该标签是一个行内标签
input类似于前端的变形金刚
	<input type="radio" name="gender" checked>
	type属性
		text		普通文本
		password	密文
		date		日期
		radio		多选一
		checkbox	多选多
			默认选中	checked="checked"
			当标签与属性名和属性值相同的时候,可以只写属性名
		reset		重置
		button		普通按钮
		submit		触发form表单提交动作
		file		获取文件

select标签	下拉框
	一个个选项就是一个个option标签
	默认是单选的
	可以加一个multiple改成多选
	<select name="" id="" multiple>
    加selected 可以让option标签默认选中
</select>

textarea标签	获取大段文本

label通常是配置input一起使用的
	for用来填写对应的input标签的id值
	点击label标签内的内容,会自动让对应的input标签聚焦

能够触发form表单提交数据的按钮
	<input type="submit">
	可以通过value属性来指定按钮文本内容
	<input type="submit" value="注册">
<button>登录</button>

input获取到的用户输入就类似于是字典的value
input中name属性就类似于是字典的key
原文地址:https://www.cnblogs.com/YGZICO/p/12198625.html