一、form表单
1. form表单有什么用
- 能够获取用户输入的信息(输入,选择, 上传的文件),并且将这些数据全部发送给后端
2. form表单的用法
(1)有两个重要参数:
- action : 控制数据提交的地址
- 三种书写方式:
- 不写 , 默认就是朝当前这个页面所在的地址提交数据
- 写全路径,如
http://www.baidu.com
- 只写路径后缀(/index/)
- 三种书写方式:
- method : 控制数据提交的方式
- get form表单默认是get请求
- post
<body> <form action="http://127.0.0.1:8000/index/" method="post" enctype="multipart/form-data"> </form> </body>
(2)input 结合 label 一起使用
<body> <form action="http://127.0.0.1:8000/index/" method="post" enctype="multipart/form-data"> 1. 绑定id值方法一 <label for="d1">用户名:<input type="text" id="d1"></label> 绑定id值 之后在浏览器中点击label标签内文字任何的位置都可以自动选中input框 2. 绑定id值方法二 <label for="d2">用户名:</label> <input type="text" id="d2"> </form> <body>
(3)input的type参数
- 根据input的type属性的参数的不同,展示不同的功能,以下都是type的参数
- text 普通文本
- password 输入的内容,会变成密文
- data 日期
- radio 单选圆圈
- checkbox 多选 打钩
- hidden 隐藏
- file 传文件
- button 普通按钮,没有任何意义。然而却是最多的,你可以给它绑定js事件
- reset 重置按钮
- submit 提交按钮,能够自动触发form表单提交数据的动作
- input标签的其他属性
- disable 属性 ,禁用该input框
- value属性 , 设置默认值
- 选择的标签,如何默认选中
- radio
- 添加checked = 'checked' 。当属性名和属性值相同的时候 可以只写属性名(
******
)
- 添加checked = 'checked' 。当属性名和属性值相同的时候 可以只写属性名(
- checkbox
- 添加checked = 'checked' 。当属性名和属性值相同的时候 可以只写属性名(
******
)
- 添加checked = 'checked' 。当属性名和属性值相同的时候 可以只写属性名(
- radio
- select标签 :下拉框
- 一个个的option标签就是一个个的选项
- 默认是单选
- 你可以给select标签加一个multiple参数,就可以变成多选
textarea 标签 获取大段文本
- 能够触发form表单提交数据的动作的两个标签
- input标签的type = submit
- button标签(input标签的type参数也有button,两者作用不一样)
- 所有获取用户输入的标签,都应该有name属性(
*******
)- name属性就类似于字典的key
- input框获取到的用户输入都会自动放到input框的value属性中,无需自己在添加value属性
针对所有选择框来说,传到后端的数据,由value属性决定,所以要手动添加value属性。
- form表单如果要提交文件数据,必须修改以下参数
enctype="multipart/form-data"
二、CSS
1. 什么是css
css就是层叠样式表
css就是用来控制html标签样式的,让其在浏览器上渲染的样式更合适,好看。
2. 注释
单行注释:
/*单行注释*/
多行注释:
/* 多行注释`1 多行注释2 */
- 注释的作用
- 通常我们在写css的时候,都会单独写一个css文件,里面只有css代码
- 这时,就用注释来标注和区分一个个功能
3. css的语法结构
- 选择器 {属性1:属性值1}
4. css的三种引入方式
通过head标签内部的link标签引入外部的css文件(最正规的用法)
<link rel="stylesheet" href="css文件路径(只能放相对路径)">
直接在html页面上的head内通过style标签直接书写css代码
<style> h1 { color: green; } </style>
行内式(直接在标签内部通过style属性直接书写),不推荐使用
<h1 style="color: orange">我是Oscar</h1>
5. css 查找标签方法
(1)基本选择器
元素选择器(即标签选择器)
让页面上的所有该标签都变成红色 标签名 { color: red; }
id选择器
让id为该id值的标签变成绿色 (# + id值) #id值 { color: green; }
类选择器
让类中有c1的标签都变成粉红色 (. +类值) .c1 { color: pink; }
通用选择器
让页面的所有标签都变成橘黄色 * { color: orange; }
(2)组合选择器
后代选择器
只要在标签内部都算作该标签的后代,用1个空格连接 如div 内部的所有span标签: div span { color: red; }
儿子选择器
表示一个标签内部的第一层标签。用 > 连接 如 div内的第一个span是儿子标签,第二个是div的孙子标签 <div> <span>adff</span> # div 的儿子标签 <p>dsfsadf # div 的儿子标签 <span>iuiuio</span> # div 的孙子标签 </p> </div> 儿子选择器语法: div>span { color: green; }
弟弟选择器
属于同一级别标签的标签1的之下的标签都是标签1的弟弟标签, 用 ~ 连接 <div>div <span>div里面的span</span> <p>div里面的p <span>div里面的p里面的span</span> </p> <span>div里面最下面的span</span> </div> <p>ppp</p> # div 的毗邻标签 也是 # div 的弟弟标签 。当毗邻选择器和弟弟选择器同时出现的时候,以毗邻选择器优先。 <span>span</span> # div 的弟弟标签 <p>ppp</p> # div 的弟弟标签 <span>span</span> # div 的弟弟标签 弟弟选择器语法: div~span { color : yellow }
毗邻选择器
毗邻选择器 标签1的下方的第一个同级别标签 ,用 + 连接 <div>div <span>div里面的span</span> <p>div里面的p <span>div里面的p里面的span</span> </p> <span>div里面最下面的span</span> </div> <p>ppp</p> # div 的毗邻标签 也是 # div 的弟弟标签 。当毗邻选择器和弟弟选择器同时出现的时候,以毗邻选择器优先。 <span>span</span> # div 的弟弟标签 <p>ppp</p> # div 的弟弟标签 <span>span</span> # div 的弟弟标签 div+span { color: aqua; }
(3)标签的补充
- 任何的标签都有自己的默认的属性 id class
- 标签还支持你自定义任何数量的属性(也就意味着可以让标签帮你携带一些额外的数据)(
******
)
(4)伪类选择器
a标签有四种状态
1.没有被点击过
2.鼠标悬浮上面
3.点击之后不松手
4.点击之后 再回去依次对应上面a标签的4种状态 <style> a:link { color: red; } a:hover { /*hover表示的就是悬浮的意思*/ color: black; } a:active { color: orange; } a:visited { color: pink; } input输入框的聚焦状态: input:focus { background-color: orange; } 普通文本的鼠标悬浮状态: span:hover { background-color: pink; } </style>
input输入框的两种状态
我们将input框鼠标点进去之后的那个状态叫做 input获取焦点 聚焦 focus;
鼠标移出去之后的状态 叫做input框失去焦点
(5)伪元素选择器
(清除浮动带来的负面影响),可以通过css添加文本内容
p标签的文本信息首个字符变大且变成红色: p:first-letter { font-size: 48px; color: red; } p标签的文本信息首个字符前面加绿色的 * p:before { content: '*'; color: green; } p标签的文本信息末尾加上蓝色的 ? p:after { content: '?'; color: blue; }
6.选择器的优先级
1.选择器相同的情况下 引入方式不同
遵循就近原则 谁离标签更近 就听谁的 , 行内选择器优先级最高
2.选择器不同的情况下
行内选择器 > id选择器(其次) > 类选择器(使用最频繁) > 元素选择器
7.分组与嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> ***************分组写法,就是一个一个写********************* #d1 { color: red; } .c1 { color: red; } p { color: red; } div, span, p { color: blue; } ****************嵌套,放在一起写,用逗号隔开*********************** #d1,.c1,p { color: orange; } </style> </head> <body> <div id="d1">div</div> <span class="c1">span</span> <p class="c2"> p </p> </body> </html>