HTML基础
# form表单概念
表单可以理解为需要用户注册或者登陆的表单,也是有许多个标签以及属性值来展现出来,form标签用来表示整个表单结构的双标签,称之为表单域,
标签书写为:<form action="" method=""></form>
# action属性
控制数据的提交地址
方式1:写全路径
action="http://www.aa7a.cn/user.php"
方式2:写后缀(自动补全IP和PORT)
action="user.php"
方式3:不写(朝网页所在的地址提交)
action=""
'''URL:统一资源定位符(网址)'''
# method属性
method属性值表示以什么样式来提交当前表单的数据,最常见的是get和post,get是指将数据在url中进行提交,这种方式因为是明文,所以相对不安全,而post方式是指数据写在html请求的请求体中
常见的表单元素
# 文本输入框
<input type="test"/>
# 密码输入框
<input type="password"/>
# 提交按钮
<input type="submit"/>
# 单选框
<input type="radio"/>
因为是单选所以在radio" 后面还要再加个name="单选的类别的英文的单词或者拼音即可例如,xingbie" />单选的内容,例如:男,如果不加name就会成为多选,<input type="radio" name=xingbie/>男孩纸; <input type="radio" name=xingbie/>女孩纸
# 多选框
<input type="checkbox"/>
'如果刷新网页,需要网页中选项默认被选中,就在checkbox后面加checked="checked" 因为属性值一样,所以简写成checked 也可以,单选同等'
# 文本域 textarea
<textarea rows="行数" cols="列数"></textarea>
# 下拉框 select
也是一个属性值等于属性名的属性,添加下拉选项后面也能实现选项被默认显示被选中下拉框
<select name="province" id="">
<option value="BJ">北京</option>
<option value="SH">上海</option>
<option value="SZ">深圳</option>
</select>
'''一个个的下拉选项是一个个option标签
默认是单选 也可以添加multiple变成多选'''
# 重置按钮
<input type"rsset"/>
# 普通按钮
<input type"button" value"按钮的名字"/>
按钮的名字可以举例:登录,注册,展开
表单元素细节
# name属性
是用来区分哪个数据属于什么样的表单项
# value
可以用在具有文本框的属性值后面,写上value之后刷新网页 框内会默认显示加了value的表单项
# textarea标签
获取大段文本内容
<textarea name="desc"></textarea>
"""
input标签中有两个非常重要的属性
1.name属性
类似于字典的key(前端程序员写)
2.value属性
类似于字典的value(用户自己传)
如果标签是选择类型的 那么还需要前端程序员自己填写value
用于区分具体数据含义
ps:我们在编写input标签的时候应该添加name属性
"""
网络请求方式
在HTTP/1.1协议中,定义了8种发送http请求的方法
GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
根据HTTP协议的设计初衷,不同的方法对资源有不同的操作方式
"""最常见的网络请求方式有两种"""
1.get请求
朝服务端索要数据
2.post请求
朝服务端提交数据
# 两种请求都可以携带数据
get请求是在url后面通过?组织数据
url?name=jason&pwd=123&email=123@qq.com
post请求是在请求体中组织数据
HTTP协议请求数据格式
理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
'''
get请求虽然可以携带数据 但是一般只用于不重要的数据携带
并且get请求携带数据的大小有限制 最多只能携带2KB左右
'''
form表单中有一个method属性 用于控制提交的方式
有两个选项 默认是get请求
# GET和POST的选择
选择GET和POST的建议
(1)如果要传递大量数据,比如文件上传,只能用POST请求
(2)GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
(3)如果仅仅是索取数据(数据查询),建议使用GET
(4)如果是增加、修改、删除数据,建议使用POST

CSS
CSS简介
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力
CSS语法结构
# 由两个主要的部分构成:选择器,以及一条或多条声明:
选择器通常是您需要改变样式的 HTML 元素
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开
# 多种引入css的方式
1.head内style标签内部直接编写css代码
2.head内link标签引入外部css文件
工作中一般使用的都是link形式 符合标准
3.标签内部通过style属性直接编写
第三种也称之为"行内式"是最不推荐使用的一种方式
因为它会将HTML和CSS柔和到一起 增加了耦合度

行内元素、块元素和空元素
# 行内元素特点
1、和其他元素都在一行上
2、元素的高度、宽度、行高及顶部和底部边距不可设置
3、元素的宽度就是它包含的文字或图片的宽度,不可改变
# 块级元素特点
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
2、元素的高度、宽度、行高以及顶和底边距都可设置。
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度
# 空元素
知名的空元素: <br> <hr> <img> <input> <link> <meta>
鲜为人知的是: <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>
'''通过CSS,我们可以定位元素、控制元素的可见性和尺寸、设置元素的形状、将一个元素置于另一个之后,以及向某些选择器添加特殊的效果,比如链接。可以渲染HTML,使页面更加美观'''
CSS查找标签之基本选择器
# 1.标签选择器(范围查找)
直接通过标签名查找标签
li {
color: deeppink;
}

# 2.类选择器(范围查找)
通过标签的class属性查找标签(关键性符号是句点符)
.c1 {
color: greenyellow; /*将所有class属性中含有c1的标签内部字体颜色改为亮绿色*/
}

# 3.id选择器(精确查找)
通过标签的id属性查找标签
#d1 {
color: orange;
}
'''ID选择器有以下几点需要注意:
一. ID,就像你的QQ号一样,是唯一的,每个ID选择器的名不能重复,但是class类名可以重复。
二. id选择器不能像类选择器一样多个合并使用,一个元素只能命名一个id名。
三. 可以在不同文档中使用同一个ID名,但前提是每个文档中不能有重复的ID名。'''

# 4.通用选择器(了解 几乎不用)
查找所有的标签
* {
color: blue;
}
'''用“ * ”来表示,用来选中所有元素,但在企业开发中一般不会使用通配符选择器,而有些表单、新闻详情这类简单、干净、一致的页面会有全局设置,目的就是看起来简洁、整齐。'''

CSS查找标签之组合选择器
后代选择器
'''关键符号是空格'''
# /*后代选择器:空格表示后代,下面示例表示c1下面的所有后代*/
.c1 {
color: red;
}
# /*后代选择器,空格表示后代,c1后代中包含c3的*/
.c1 .c3{
color: blue;
}
# /*后代选择器,表示c1的后代包含c2,c2的后代包含c3*/
.c1 .c2 .c3{
color: brown;
}
# /*子代选择器,用“>”表示子代,表示作用于c1的儿子*/
.c1 > .c4{
color: aqua;
}
</style>
毗邻选择器
# 毗邻选择器:第一个兄弟(同级称之为兄弟),只能向下找兄弟
# 关键符号是加号
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.c3 + .c4{
color: blue;
}
</style>
</head>
<body>
<div class="c1">
<div class="c2">
<div class="c3">item1</div>
</div>
<div class="c3">item2</div>
<div class="c4">item3</div>
</div>
</body>
'''示例中c2、c3、c4都是兄弟,但是该样式之作用于c4'''
弟弟选择器
# 关键符号是小波浪号
<style>
'查找id是i1标签同级别下面所有div标签'
#i1 ~ div{
color: red;
}
'查找id是i1标签同级别下面div标签 class是c4的'
#i1 ~ div.c4{
color: blue;
}
</style>
<body>
<p id="i1">item0</p>
<div class="c1">item1</div>
<div class="c2">item2</div>
<div class="c3">item3</div>
<div class="c4">item4</div>
</body>
儿子选择器
儿子选择器(关键符号是大于号)
#d1 > span { 查找id是d1标签内部所有的儿子span
color: red;
}
与或选择器
<style>
'与选择器:标签为p的,并且class为c1,需要两个条件同时满足'
p.c1{
color: red;
}
'或选择器:用逗号表示或;标签为p并且class为c1,或id为i1'
p.c1,#i1{
color: blue;
}
</style>
<body>
<div class="c1">item1</div>
<p class="c1">item2</p>
<div>item3</div>
<p id="i1">item4</p>
</body>
属性选择器
# 根据标签内部的属性名和属性值查找标签(关键符号是中括号)
1.方式1:直接通过属性名查找
[type] {
background-color: red;
}
2.方式2:属性名是type并且值是text的标签
[type='text'] {
background-color: red;
}
3.方式3:属性名是type并且值是text的div标签
div[type='text'] {
background-color: red;
}

分组和嵌套
# 1.分组
div, p, span { 查找div或者p或者span
color: red;
}
'为了尽量减少代码,你可以使用分组选择器'
# 2.嵌套
#d1, .c1, span { 查找id是d1或者class包含c1或者span
color: red;
}
'''
div#d1 查找id是d1的div标签
div.c1 查找class包含c1的div标签
div #d1 查找div内部id是d1的后代标签
#d1>.c1 查找id是d1的内部class包含c1的儿子标签
'''
伪类选择器
# 1.鼠标悬浮
p:hover { 鼠标移动到p标签上方 字体颜色动态修改为橙色
color: orange;
}
# 2.获取聚点
input:focus { 输入框被鼠标左键选中(聚焦)
background-color: black;
}
