一、HTML表单
表单的作用是用于采集用户再页面上填入的数据,并发送给后端服务器,经常用于用户注册、登录、xx信息添加、xx信息修改
1.1表单
1、input表示文本框
type属性:负责配置不同的输入框类型
text:普通文本框
password:密码框
date:日期选择框
radio:单选框,checked属性定义默认选中
checkbox:复选框,checked属性定义默认选中
file:文件上传,multiple属性定义可多选
submit:提交按钮
reset:重置按钮
button:普通按钮,通常与js结合使用
hidden:隐藏域
name属性:input框的名称,指向后台传入参数的名称
value属性:用户输入的内容,或者按钮展示的文字
placeholder属性:input中提示的文本
2、form标签:嵌套多个input标签,收集用户填写的数据,上传到服务器,配合submit和reset完成提交和重置功能
action属性:配置数据提交的服务器地址
method属性:(提交方式)
get:将参数以字符串的形式拼接到地址后方,缺点:参数大小有限制
post:参数大小无限制,将数据存入请求体中
3、下拉框:使用select和option共同完成
select:声明下拉框
name属性:提交到服务器的参数名
option:下拉框中的每个选项
value属性:选项传递到服务器的真实数据
selected属性:默认选中
4、文本域:textarea,生成一个多行多列的文本输入域
rows:定义行数
cols:定义列数
5、页签:
使用方式一:
使用<label></label>标签,将文字和其他html标签包裹在一起
使用方式二:
1.使用<label></label>标签包裹文字
2.在需要拼接的其他标签上设置一个唯一的id
3.在label通过for和其他标签关联到一起
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表单</title>
</head>
<body>
<form action="#/" method="post">
用户名:<input type="text" name="username" placeholder="请输入用户名"><br>
密 码:<input type="password" name="password" placeholder="请输入密码"><br>
出生日期:<input type="date" name="birthday"><br>
性 别:<label>男<input type="radio" name="sex"></label>
<label for="nv">女</label><input id="nv" type="radio" name="sex"><br>
爱 好: 抽烟<input type="checkbox" name="hobby">
喝酒<input type="checkbox" name="hobby">
烫头<input type="checkbox" name="hobby"> <br>
头 像:<input type="file" name="files" multiple><br>
<input type="submit" value="提交内容">
<input type="reset" value="重置内容">
<input type="button" value="普通按钮"><br>
这里啥也没有:<input type="hidden" value="100"><br>
居住地:<select name="city">
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="sz">深圳</option>
<option value="tj" selected>天津</option>
<option value="hz">杭州</option>
<option value="nc">南昌</option>
</select><br>
专 业:<br>
<select name="zhuanye" multiple>
<option value="0">数学</option>
<option value="1">自动化</option>
<option value="2">计算机</option>
<option value="3">热能</option>
</select><br>
自我介绍:<br>
<textarea name="dec" rows="5"></textarea>
</form>
</html>
二、CSS入门
CSS(层叠样式表)用于HTML页面的美化。
HTML引入CSS的三种方式:
-
行内样式:定义在标签的属性中, 作用于当前标签
-
内部样式:定义在页面的head部分, 作用于当前页面中的所有(部分)标签
优先级: 行内样式 > (内部样式 外部样式 后面覆盖前面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML引入CSS</title>
<!-- 声明一个内部样式 -->
<!-- 当前页面上所有h1标签,颜色紫色 -->
<style>
h1 {
color: blueviolet;
}
</style>
</head>
<body>
<!-- 行内样式 -->
<h1 style="color: aqua;">行内样式</h1>
<h1>内部样式</h1>
</body>
</html>
3. 外部样式:定义在页面外部(同级目录下创建一个my.css文件,在文件中写样式),通过link标签引入到页面中,作用于所有引入此样式文件的页面标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML引入CSS</title>
<!-- 声明一个外部样式 -->
<link rel="stylesheet" href="./my.css">
</head>
<body>
<!-- 行内样式 -->
<h1 style="color: aqua;">行内样式</h1>
<h1>外部样式</h1>
</body>
</html>
三、CSS选择器
选择器的作用是用来找出页面中一组特定的标签,选择器大方向上分为基础选择器和复合选择器以及伪选择器。
3.1 基础选择器
3.1.1 标签选择器
作用:使用标签名选中一类标签,然后设置样式
语法:标签名 { css样式 }
注意:标签选择器无法差异化同名标签的显示效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器</title>
<style>
/*1. 将所有的span文字大小设置为16px, 颜色是红色 */
span {
font-size: 16px;
color: red;
}
/*2. 将所有图片大小设置为50 * 50*/
img {
width: 50px;
height: 50px;
}
/* 3. 将表格中的所有文字设置居中效果*/
td {
text-align: center;
}
</style>
</head>
<body>
<span>古力娜扎</span>
<span>迪丽热巴</span>
<span>黑寡妇</span>
<span>钢铁侠</span>
<span>超人</span>
<span>灭霸</span>
<table border="1px" width="800px" cellpadding="0" cellspacing="0">
<tr>
<th>编号</th>
<th>图像</th>
<th>姓名</th>
<th>地址</th>
<th>操作</th>
</tr>
<tr>
<td>1</td>
<td>
<img src="../img/autor.jpg">
</td>
<td>张三</td>
<td>西安</td>
<td>
<a href="###">修改</a>
<a href="###">删除</a>
</td>
</tr>
</table>
</body>
</html>
3.1.2 类选择器
作用:使用标签的class属性选中一类标签
语法:.class属性值{ css样式 }
步骤:1. 在目标标签上添加class=""属性
2. 使用类选择器选中标签,然后设置样式
注意:一个类选择器可以供多个标签使用,一个标签也可以使用多个类选择器,需要使用空格隔开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>类选择器</title>
<style>
/* 1. 所有女性,文字变红*/
.woman {
color: red;
}
/*2. 所有英雄,字体加粗*/
.hero{
font-weight: bolder;
}
/*3. 标题背景色设置 #DEE3E6 普通行背景色设置 #F5F5F5*/
.bt{
background-color: #dee3e6;
}
.pt{
background-color: #f5f5f5;
}
</style>
</head>
<body>
<span class="woman">古力娜扎</span>
<span class="woman">迪丽热巴</span>
<span class="woman hero">黑寡妇</span>
<span class="hero">钢铁侠</span>
<span class="hero">超人</span>
<span>灭霸</span>
<table border="1px" width="600px" cellpadding="0" cellspacing="0">
<tr class="bt">
<th>编号</th>
<th>姓名</th>
<th>地址</th>
<th>操作</th>
</tr>
<tr class="pt">
<td>1</td>
<td>张三</td>
<td>西安</td>
<td>
<a href="###">修改</a>
<a href="###">删除</a>
</td>
</tr>
<tr class="pt">
<td>2</td>
<td>李四</td>
<td>武汉</td>
<td>
<a href="###">修改</a>
<a href="###">删除</a>
</td>
</tr>
<tr class="pt">
<td>3</td>
<td>王五</td>
<td>北京</td>
<td>
<a href="###">修改</a>
<a href="###">删除</a>
</td>
</tr>
</table>
</body>
</html>
运行结果:
3.1.3 id选择器和通配符选择器
id选择器
作用:使用id属性选中一个标签
语法:#id{css样式}
步骤:1. 在目标标签上添加id=""属性
2. 使用id选择器选中标签,然后设置样式
注意:一个id选择器在一个页面上只能用一次(html不建议页面上的元素有相同的id名称)
通配符选择器
作用:查找页面所有标签,设置相同样式
语法:*{ css样式 }
注意:不需要调用,浏览器自动查找页面所有标签,设置相同的样式;优先级最低
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>id选择器和通配符选择器</title>
<style>
/* id选择器: 1. 将灭霸变成紫色 20px */
#boss{
color:purple;
font-size: 20px;
}
/* 通配符选择器: 2. 将页面上所有文字变成50px */
* {
font-size: 50px;
}
</style>
</head>
<body>
<span>古力娜扎</span>
<span>迪丽热巴</span>
<span>黑寡妇</span>
<span>钢铁侠</span>
<span>超人</span>
<span id="boss">灭霸</span>
</body>
</html>
3.2 复合选择器
由多个基础选择器,通过不同的方式组合形成的选择器,它可以更准确、更高效的选择目标元素(标签)
3.2.1 后代选择器
作用:选中某元素的后代元素
语法:父选择器 子选择器 { css样式 }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>后代选择器</title>
<!-- 将所有div下所有span中的文字设置为红色 -->
<style>
div span{
color: red;
}
</style>
</head>
<body>
<span>span</span>
<div>
<span>
div-span
</span>
<p>
<span>div-span-span</span>
</p>
</div>
</body>
</html>
3.2.2 子代选择器
作用:选中某元素的字代元素(最近的子级)
语法:父选择器 > 子选择器 { css样式 }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>子代选择器</title>
<!-- 将所有div中一级span中的文字颜色变成红色 -->
<style>
div > span{
color: red;
}
</style>
</head>
<body>
<span>span</span>
<div>
<span>
div-span
</span>
<p>
<span>div-span-span</span>
</p>
</div>
</body>
</html>
3.2.3 并集选择器
作用:选中多组标签设置相同的样式
语法:选择器1, 选择器2, …, 选择器N { css样式 }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>并集选择器</title>
<!-- 将div和span中的文字设置为红色 -->
<style>
div,p,span{
color: red;
}
</style>
</head>
<body>
<div> div 标签</div>
<p>p 标签</p>
<span>span 标签</span>
</body>
</html>
3.3 伪选择器
3.3.1 一般伪选择器
作用:伪类表示元素状态,选中元素的某个状态设置样式
语法:选择器:状态{ css样式 } 状态有四种:link-访问前 visited-访问后 hover-鼠标悬停 active-点击时
注意:如果要给超链接设置以上四个状态,需要按 LVHA 的顺序书写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一般伪类选择器</title>
<style>
/*修改a标签,让超链接在访问前后,鼠标悬停和点击样式一样*/
a:link{
color: royalblue;
text-decoration: none;/*无下划线*/
}
a:visited{
color: royalblue;
text-decoration: none;/*无下划线*/
}
a:hover{
color: royalblue;
text-decoration: none;/*无下划线*/
}
a:active{
color: royalblue;
text-decoration: none;/*无下划线*/
}
.box:hover{
color: lightcoral;
}
</style>
</head>
<body>
<a href="#">a 标签</a>
<div class="box">div 标签</div>
</body>
</html>
3.3.2 结构伪选择器
作用:根据元素的结构关系查找元素
语法:选择器 { css样式 }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>结构伪类选择器</title>
<style>
/*奇数行设置为蓝色*/
ul li:nth-child(2N+1){
color: rgb(27, 42, 216);
}
/*偶数行设置为绿色*/
ul li:nth-child(2N){
color: rgb(26, 220, 68);
}
/*给第一个li设置背景色为红色*/
ul li:first-child{
color: red;
}
/*给最后一个li设置背景色为红色*/
ul li:last-child{
color: red;
}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
</body>
</html>
3.3.3 伪元素选择器(一般处理li标签)
作用:创建虚拟元素(伪元素),用来摆放装饰性的内容
注意:必须设置 content: ””属性,用来设置伪元素的内容,如果没有内容,则引号留空即可,伪元素默认是行内显示模式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>伪元素选择器</title>
<style>
div::before{
content: "嘻嘻";
}
div::after{
content: "嘿嘿";
}
</style>
</head>
<body>
<div>哈哈</div>
<div>哈哈</div>
<div>哈哈</div>
</body>
</html>
四、CSS样式
4.1 文字样式
font-size: 20px; /* 设置字号 /
font-family: '楷体'; / 设置字体 /
font-weight: bold; / 设置文字加粗( normal:正常[默认], bold:粗体, 数值 ) /
font-style: italic; / 设置文字倾斜( normal:正常[默认], italic:倾斜 ) /
color:red; / 设置字体颜色 /
line-height: 40px; / 设置行高 /
text-indent: 40px; / 设置段落的首行缩进 /
text-align: center / 设置元素水平位置 /
text-decoration: none; / 设置修饰线(none:无, underline:下划线, overline:上划线, line-through:横穿线 ) */
4.2 背景样式
width: 600px;背景宽度
height: 600px;背景高度
background-color: rgb(168, 244, 218);
background-image: url(../img/cat.jpg);/平铺效果/
background-repeat: no-repeat;/不平铺/
background-repeat: repeat-x;/上面平铺/
background-repeat: repeat-y;/下面平铺/
background-position: 200px 30px;/左边距200px,上边界30px/
4.3 显示模式
块级元素: 独占一行, 可设宽高 div p 标题 列表
行内元素: 一行可以显示多个, 无法设置宽高 span a b u i
行内块元素: 一行可以显示多个,可设宽高 img input
如何转换: 使用css提供的display属性
block 块
inline-block 行内块
inline 行内
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>显示模式</title>
<style>
div{
width: 50px;
height: 50px;
background-color: bisque;
display: inline-block;
}
span{
width: 200px;
height: 300px;
background-color: aquamarine;
display: block;
}
img{
width: 100px;
}
</style>
</head>
<body>
<!--定义块级元素-->
<div>123</div>
<div>123</div>
<!--定义行内元素-->
<span>你好</span>
<span>世界</span><br>
<!--定义行内块元素-->
<img src="../img/cat.jpg">
<img src="../img/cat.jpg">
</body>
</html>