1.概念
- CSS就是对html标签元素进行装修的!
- 同一个html标签可以使用多个css样式,同时生效
- css功能强大
- 将内容展示和样式控制分离,解耦,让分工协作更容易,提高开发效率
# 课程目标:
> 1. 学会使用CSS选择器
> 2. 熟记CSS样式和外观属性
> 3. 熟练掌握CSS各种选择器
> 4. 熟练掌握CSS各种选择器
> 5. 熟练掌握CSS三种显示模式
> 6. 熟练掌握CSS背景属性
> 7. 熟练掌握CSS三大特性
> 8. 熟练掌握CSS盒子模型
> 9. 熟练掌握CSS浮动
> 10.熟练掌握CSS定位
> 11.熟练掌握CSS高级技巧强化CSS
typora-copy-images-to: media
参考:
https://blog.csdn.net/luo609630199/article/details/80066491
2.css语法规则
选择器{
Key1:value1;
Key2: value2;
...
}
选择器: 浏览器根据选择器决定css影响的css标签
属性: 要改变的样式
3.三种结合方式方式
(1) 内联样式
- 直接在标签内部通过style属性来指定css样式,多个css kv之间用分号隔开;
- 注意:kv之间用冒号,不是=了
<body>
<!-- 修改div样式 边框1px, -->
<div style="border-style:solid;border-width:5px;border-color:rgb(255,233,221) "> demo01</div>
</body>
(2)页面内引入
- 在head标签内部写
<style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css02</title>
<!-- 标签名选择器,直接用标签名当选择器,页面内所有该标签都引入此样式 -->
<!--html注释不能写在style标签内部 -->
<style type="text/css">
/*这是css的注释写法*/
div{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
}
</style>
</head>
<body>
<!-- 结合方式2:修改div样式 -->
<div> demo02</div>
<div> demo03</div>
<div> demo04</div>
</body>
</html>
(3)页面外引入
- 定义一个css文件
- 通过link标签引入css文件
<head>
<meta charset="UTF-8">
<title>css02</title>
<!--link标签准们用来引入css代码 -->
<link rel="stylesheet" type="text/css" href="cssDemo03.css">
</head>
<body>
<!-- 结合方式2:修改div样式 -->
<div> demo02</div>
<div> demo03</div>
<div> demo04</div>
</body>
</html>
cssDemo03.css:
div{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
}
4.四种选择器
1.标签名选择器
- 会将当前html页面所有此标签的元素都进行装饰
<style type="text/css">
/*这是css的注释写法*/
div{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
}
</style>
2.id选择器
#id值{
Key1:value1;
...
}
- 通过标签的id属性值的匹配 来绑定标签。
- id不能以数字开头,否则无效。
- 由于html页面中标签的id属性值必须是唯一的,因此意味着id选择器只能对一个标签引入css
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>id选择器</title>
<style type="text/css">
#id001{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
font-style:oblique;
}
</style>
</head>
<body>
<!-- 结合方式2:修改div样式 -->
<div id="id001"> demo02</div>
<div id="id002"> demo03</div>
<div id="id003"> demo04</div>
</body>
3.class选择器
- 通过标签的class属性值的匹配 来绑定标签;
- 可绑定一组标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>class选择器</title>
<style type="text/css">
.class001{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
font-style:oblique;
}
</style>
</head>
<body>
<!-- 结合方式2:修改div样式 -->
<div id="id001" class="class001"> demo02</div>
<div id="id002" class="class001"> demo03</div>
<div id="id003" class="class002"> demo04</div>
</body>
</html>
4.组合选择器
- 多个选择器用逗号分开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>class选择器</title>
<style type="text/css">
.class001,#id001,span{
border-style: solid;
border-width:5px;
border-color:rgb(255,233,221);
font-style:oblique;
}
</style>
<!-- 由于html页面中标签的id属性值必须是唯一的,
因此,id选择器只能对一个标签引入css-->
</head>
<body>
<!-- 结合方式2:修改div样式 -->
<div id="id001" class="class001"> demo02</div>
<div id="id002" class="class001"> demo03</div>
<div id="id003" class="class002"> demo04</div>
<span> span标签</span>
</body>
</html>
5.扩展选择器
1.选择所有元素选择器
*{}
2.子选择器
- 选择器之间用空格隔开;
- 筛选出选择器1下的选择器2的元素
格式:选择器1 选择器2{}
3.父选择器
- 筛选出选择器2的父元素选择器1
选择器1 > 选择器2{}
4.属性选择器
- 根据元素名称、属性和属性值来筛选标签
元素名[属性名=“属性值”]{}
5.伪类选择器
- 选择一些处于某种状态的元素
- 语法: 元素:状态{}
比如标签 <a> 具有的状态:
1.link 初始化状态
2.visited 被访问的状态
3.active 正在访问的状态
4.hover 鼠标悬浮状态
举例:
a:link{
color:pink;
}
超链接的初始状态为粉红色
5.CSS 属性
css属性有复合属性,指的是该属性可以有多个值分别控制不同类型的样式
1.字体 文本
font-size:字号大小
font-family:字体
font-weight:字体粗细
font-style:字体风格
2.背景
background:复合属性
3.边框
边框有四条边;
border 是个复合属性,一次控制四条边
4.尺寸
- 宽度 width
- 高度 height
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体属性</title>
<style>
p{
color:#FF0000;
font-size:30px;
text-align:center;
line-height:100px;
/*border*/
border:1px solid red;
}
div{
/*高度和宽度*/
border:1px solid red;
height:200px;
width:200px;
}
</style>
</head>
<body>
<p>阿斯顿</p>
<div></div>
</body>
</html>
CSS 盒子模型
盒子模型的意思是 html页面将每一个元素看作一个盒子,在浏览器页面中占有大小和边框范围
- margin:外边距 和外部盒子边框之间的距离
- padding:内边距
- float 浮动 可以让div标签不占一行;
left:左浮动 跑到页面左边
right 右浮动
多个div 左浮动的话,就从左往右挨个挤在一起;
盒子有四条边,因此每个边的边距都可以单独设置;
设置外边距演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>盒子模型</title>
<style>
div{
border : 1px red solid;
}
.div1{
width:100px;
height:100px;
margin:50px;
}
.div2{
width:200px;
height:200px;
}
</style>
</head>
<body>
<div class="div2">
<div class="div1"></div>
</div>
</body>
</html>
设置内边距演示:
默认情况下,设置内边距会影响该盒子的大小;
因此需要额外设置一个属性box-sizing: border-box;
,才能使得盒子大小不变
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>盒子模型</title>
<style>
div{
border : 1px red solid;
}
.div1{
width:100px;
height:100px;
}
.div2{
width:200px;
height:200px;
padding:50px;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="div2">
<div class="div1"></div>
</div>
</body>
</html>
CSS 注册页面案例
(1)html部分
表单效果预览:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="#" method="post">
<table border="1" align="center" width="500">
<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" id="username" name="username" placeholder="请输入账号"></td>
</tr>
<tr>
<td><label for="password">密码</label></td>
<td><input type="password" id="password" name="password" placeholder="请输入密码"></td>
</tr>
<tr>
<td><label for="email">用户名</label></td>
<td><input type="text" id="email" name="email" placeholder="请输入Email"></td>
</tr>
<tr>
<td><label for="name">姓名</label></td>
<td><input type="text" id="name" name="name" placeholder="请输入真实姓名"></td>
</tr>
<tr>
<td><label for="phone">手机号</label></td>
<td><input type="text" id="phone" name="phone" placeholder="请输入手机号"></td>
</tr>
<tr>
<td>性别</td>
<td><input type="radio" name="gender" value="male" checked="checked">男
<input type="radio" name="gender" value="female" >女
</td>
</tr>
<tr>
<td><label for="birthday">出生日期</label></td>
<td><input type="date" id="birthday" name="birthday"></td>
</tr>
<tr>
<td><label for="code">验证码</label></td>
<td><input type="text" id="code" name="code">
<img src="../img/verify_code.jpg">
</td>
</tr>
<tr>
<!-- 合并单元格
单元格内容居中显示-->
<td colspan="2" align="center">
<input type="submit" value="注册">
</td>
</tr>
</table>
</form>
</body>
</html>
(2)css修饰
效果预览
分析:
新手用户注册 div float left
表单:div float left
已有帐号: div float right