目录
一、CSS起源
二、CSS体验
1.利用html修改样式的弊端
2.CSS的优势
3.CSS格式
三、CSS属性
1.文字属性
2.文字属性缩写
3.文本属性
4.颜色属性
四、CSS选择器
1.标签选择器
2.id选择器
3.类选择器
4.后代选择器
5.子元素选择器
6.交集选择器
7.并集选择器
8.兄弟选择器
9.序选择器
10.属性选择器
11.通配符选择器
五、CSS三大特性
1.继承性
2.层叠性
3.优先级
六、CSS显示模式
1.Div和Span标签
2.显示模式
3.显示模式转换
七、背景相关属性
1.背景颜色
2.背景图片
3.背景平铺
4.背景定位
5.背景属性连写
6.背景关联
7.插入图片和背景图片的区别
8.CSS精灵
八、盒模型
1.边框属性
2.内边距属性
3.外边距属性
4.盒模型
5.box-sizing属性
6.行高
九、浮动
1.网页的布局方式
2.浮动元素的脱标
3.浮动元素排序规则
4.浮动元素贴靠现象
5.浮动元素字围现象
十、清除浮动流
1.盒子高度问题
2.清除浮动方式一
3.清除浮动方式二
4.清除浮动方式三-外墙法
5.清除浮动方式四-内墙法
6.清除浮动方式五
7.清除浮动方式六
8.清除浮动方式七
十一、定位
1.相对定位
2.绝对定位
3.子绝父相
4.固定定位
5.静态定位
6.z-index属性
十二、过渡模块
1.a标签伪类选择器
2.过渡模块
十三、2D转换模块
1. 2D转换模块
2.形变中心点
3.旋转轴
4.透视
5.盒子阴影与文字阴影
十四、动画模块
1.动画模块
2.动画属性
十五、3D转换模块
十六、背景相关
1.背景尺寸
2.背景图片定位区域属性
3.背景绘制区域属性
4.多重背景图片
WEB的衰落
在web早期(1990-1993),html是一个很局限的语言。几乎完全由用于描述段落,超链接,列表和标题的结构化元素组成。随着万维网的出现(用户交互体验的加强),对html的要求越来越大,人们迫切需要html增加新的元素,去完成一个特定的功能
迫于压力,html开始出现, ,
等标签。但是html是一种描述结构的语言,也开始描述外在表现了。几年之后这种随便的做法暴露出严重的问题:1:由于html既写结构又写样式,导致页面缺乏结构性,降低了网页的可访问性。2:页面维护越来越困难
大救星CSS
当html中存斥着的表现标记问题,W3c并没有忽视。在1995年,w3c开始发布一种正在进行的计划(work-in-prrgress) 称之为CSS
与html相比,CSS支持更丰富的文档外观,CSS可以为任何元素的文本和背景设置颜色;允许在任何元素外围设置边框;允许改变文本的大小,装饰(如下划线),间隔,甚至可以确定是否显示文本
。
(1).需要记忆哪些标签有哪些属性,如果该标签没有这个属性,那么设置了也没有效果
(2).当需求变更时我们需要修改大量的代码才能满足现有的需求
(3).HTML只有一个作用就是用来添加语义的
成功法则
迟到毁一生
早退穷三代
按时上下班
必成高富帅
(1).不需要记忆哪些属性属于哪个标签
(2).当需求变更时我们不需要修改大量的代码就可以满足需求
(3).在前端开发中CSS只有一个作用,就是用来修改样式的
成功法则
迟到毁一生
早退穷三代
按时上下班
必成高富帅
注意点
style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系)
style标签中的type属性其实可以不用写, 默认就是 type="text/css"
设置样式时必须按照固定的格式来设置. key: value;
其中:不能省略, 分号大多数情况下也不能省略(当有多个属性时, 最后一个可以省略)
CSS怎么学
CSS的学习一共分为两大部分, 一个是CSS的属性, 另一个是CSS选择器. 也就是说着两部分学完CSS就没有别的东西了
(1). font-style
(2). font-weight
(3). font-size
(4). font-family
如果设置的字体不存在, 那么系统会使用默认的字体来显示,默认一般使用宋体
如果设置的字体不存在, 而我们又不想用默认的字体来显示怎么办?
可以给字体设置备选方案
格式:font-family:"字体1", "备选方案1", ...; (字体1不存在,就使用备选方案1,依此类推...)
如果想给中文和英文分别单独设置字体, 怎么办?
但凡是中文字体, 里面都包含了英文
但凡是英文字体, 里面都没有包含中文
也就是说中文字体可以处理英文, 而英文字体不能处理中文
注意点:如果想给界面中的英文单独设置字体, 那么英文的字体必须写在中文的前面
补充在企业开发中最常见的字体有以下几个
中文:宋体 / 黑体 / 微软雅黑
英文:"Times New Roman"/Arial
还需要知道一点, 就是并不是名称是英文就一定是英文字体,因为中文字体其实都有自己的英文名称, 所以是不是中文字体主要看能不能处理中文
宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
font: style weight size family;
font: italic bold 10px "楷体";
(1).text-decoration
(2).text-align
(3).text-indent
在CSS中如何通过color属性来修改文字颜色
格式: color: 值;
取值
英文单词
一般情况下,常见的颜色都有对应的英文单词, 但是英文单词能够表达的颜色是有限制的, 也就是说不是所有的颜色都能够通过英文单词来表达
rgb
rgb其实就是三原色, 其中 r(red 红色) g(green 绿色) b(blue 蓝色)
格式: rgb(0,0,0)
第一个数字就是用来设置三原色的光源元件红色显示的亮度
第二个数字就是用来设置三原色的光源元件绿色显示的亮度
第三个数字就是用来设置三原色的光源元件蓝色显示的亮度
这其中的每一个数字它的取值是0-255之前, 0代表不发光, 255代表发光, 值越大就越亮
红色: rgb(255,0,0);
绿色: rgb(0,255,0);
蓝色: rgb(0,0,255);
黑色: rgb(0,0,0);
白色: rgb(255,255,255);
灰色: rgb(200,200,200);
只要让红色/绿色/蓝色的值都一样就是灰色
color: rgba(255,0,0,0.2);
通过十六进制来表示颜色其实本质就是RGB
十六进制中是通过每两位表示一个颜色
例如:#FFEE00 FF表示R EE表示G 00表示B
什么是十六进制?
十六进制和十进制一样都是一种计数的方式
在十进制中取值范围0-9, 逢十进一
在十六进制中取值范围0-F, 逢十六进一
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
15 == 1*16 + 5 = 21
12 == 1*16 + 2 = 18
FF == F*16 + F == 15*16 + 15 == 240 + 15 = 255
00 == 0*16 + 0 = 0
#FFEE00 == #FE0
#123456;
#122334
什么是标签选择器?
作用:根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性
格式
标签名称{
属性:值;
}
什么是id选择器?
作用:根据指定的id名称找到对应的标签, 然后设置属性
格式
#id名称{
属性: 值;
}
什么是类选择器?
作用:根据指定的类名称找到对应的标签, 然后设置属性
格式
.类名{
属性: 值;
}
标准格式:
<标签名称 class="类名1 类名2 ...">
错误的写法:
id选择器和类选择器:
id和class的区别?
1.1
id 相当于 人的身份证 不可以重复
class 相当于 人的名称 可以重复
1.2
一个HTML标签只能绑定 一个 id名称
一个HTML标签可以绑定 多个 class名称
id选择器和class选择器区别?
id选择器是以 # 开头
class选择器是以 . 开头
在企业开发中到底用 id选择器 还是用 class选择器?
id一般情况下是给js使用的, 所以除非特殊情况, 否则不要使用id去设置样式
在企业开发中一个开发人员对类的使用可以看出这个开发人员的技术水平
一般情况下在企业开发中要注重冗余代码的抽取, 可以将一些公共的代码抽取到一个类选择器中, 然后让标签和这个类选择器绑定即可
什么是后代选择器?
作用:找到指定标签的所有特定的后代标签, 设置属性
格式
标签名称1 标签名称2{
属性: 值;
}
先找到所有名称叫做"标签名称1"的标签, 然后再在这个标签下面去查找所有名称叫做"标签名称2"的标签, 然后在设置属性
注意点
后代选择器必须用空格隔开
后代不仅仅是儿子, 也包括孙子/重孙子, 只要最终是放到指定标签中的都是后代
后代选择器不仅仅可以使用标签名称, 还可以使用其它选择器
后代选择器可以通过空格一直延续下去
什么是子元素选择器?
作用:找到指定标签中所有特定的直接子元素, 然后设置属性
格式
标签名称1>标签名称2{
属性: 值;
}
先找到所有名称叫做"标签名称1"的标签, 然后在这个标签中查找所有直接子元素名称叫做"标签名称2"的元素
注意点
子元素选择器只会查找儿子, 不会查找其他被嵌套的标签
子元素选择器之间需要用>符号连接, 并且不能有空格
子元素选择器不仅仅可以使用标签名称, 还可以使用其它选择器
子元素选择器可以通过>符号一直延续下去
后代选择器和子元素选择器:
后代选择器和子元素选择器之间的区别?
1.1
后代选择器使用 空格 作为连接符号
子元素选择器使用 > 作为连接符号
1.2
后代选择器会选中指定标签中, 所有的特定后代标签, 也就是会选中儿子/孙子..., 只要是被放到指定标签中的特定标签都会被选中
子元素选择器只会选中指定标签中, 所有的特定的直接标签, 也就是只会选中特定的儿子标签
后代选择器和子元素选择器之间的共同点
2.1
后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器
2.2
后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去
选择器1>选择器2>选择器3>选择器4{}
在企业开发中如何选择
如果想选中指定标签中的所有特定的标签, 那么就使用后代选择器
如果只想选中指定标签中的所有特定儿子标签, 那么就使用子元素选择器
什么是交集选择器?
作用:给所有选择器选中的标签中, 相交的那部分标签设置属性
格式
选择器1选择器2{
属性: 值;
}
什么是并集选择器?
作用:给所有选择器选中的标签设置属性
格式
选择器1,选择器2{
属性:值;
}
相邻兄弟选择器:
什么是相邻兄弟选择器 CSS2
作用:给指定标签后面紧跟的那个标签设置属性
格式
选择器1+选择器2{
属性:值;
}
通用兄弟选择器:
什么是通用兄弟选择器 CSS3
作用:给指定选择器后面的所有选择器选中的所有标签设置属性
格式
选择器1~选择器2{
属性:值;
}
序选择器是CSS3中新增的选择器最具代表性的就是序选择器
什么是序选择器?
作用:选中指定的任意标签然后设置属性
格式
1.同级别的第几个
:first-child 选中同级别中的第一个标签
:last-child 选中同级别中的最后一个标签
:nth-child(n) 选中同级别中的第n个标签
:nth-last-child(n) 选中同级别中的倒数第n个标签
:only-child 选中父元素中唯一的标签
注意点:不区分类型
2.同级同类型的第几个
:first-of-type 选中同级别中同类型的第一个标签
:last-of-type 选中同级别中同类型的最后一个标签
:nth-of-type(n) 选中同级别中同类型的第n个标签
:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签
:only-of-type 选中父元素中唯一类型的某个标签
3.其它用法
:nth-child(odd) 选中同级别中的所有奇数
:nth-child(even) 选中同级别中的所有偶数
:nth-child(xn+y)
x和y是用户自定义的, 而n是一个计数器, 从0开始递增
:nth-of-type(odd) 选中同级别中同类型的所有奇数
:nth-of-type(even) 选中同级别中同类型的所有偶数
:nth-of-type(xn+y)
x和y是用户自定义的, 而n是一个计数器, 从0开始递增
什么是属性选择器?
作用:根据指定的属性名称找到对应的标签, 然后设置属性
格式
[attribute]
作用:根据指定的属性名称找到对应的标签, 然后设置属性
[attribute=value]
作用:找到有指定属性, 并且属性的取值等于value的标签, 然后设置属性
最常见的应用场景, 就是用于区分input属性
input[type=password]{}
属性的取值是以什么开头的
[attribute|=value] CSS2
[attribute^=value] CSS3
两者之间的区别
CSS2中的只能找到value开头,并且value是被-和其它内容隔开的
CSS3中的只要是以value开头的都可以找到, 无论有没有被-隔开
属性的取值是以什么结尾的
[attribute$=value] CSS3
属性的取值是否包含某个特定的值
[attribute~=value] CSS2
[attribute*=value] CSS3
两者之间的区别
CSS2中的只能找到独立的单词, 也就是包含value,并且value是被空格隔开的
CSS3中的只要包含value就可以找到, 无论有没有被隔开
什么是通配符选择器?
作用:给当前界面上所有的标签设置属性( * )
格式
*{
属性:值;
}
什么是继承性?
作用:给父元素设置一些属性, 子元素也可以使用, 这个我们就称之为继承性
示例代码
-
我是段落
我是大标题
body{
font-size: 30px;
font-family: "微软雅黑"
color: #666;
}
CSS全称 Cascading StyleSheet (层叠式样式表), 其中的层叠就是指层叠性
什么是层叠性?
作用:层叠性就是CSS处理冲突的一种能力
示例代码
我是段落
什么是优先级?
作用:当多个选择器选中同一个标签, 并且给同一个标签设置相同的属性时, 如何层叠就由优先级来确定
优先级判断的三种方式
间接选中就是指继承
如果是间接选中, 那么就是谁离目标标签比较近就听谁的
-
我是段落
-
我是段落
-
我是段落
3.1 优先级权重
什么是优先级的权重?
作用:当多个选择器混合在一起使用时, 我们可以通过计算权重来判断谁的优先级最高
权重的计算规则
首先先计算选择器中有多少个id, id多的选择器优先级最高
如果id的个数一样, 那么再看类名的个数, 类名个数多的优先级最高
如果类名的个数一样, 那么再看标签名称的个数, 标签名称个数多的优先级最高
如果id个数一样, 类名个数也一样, 标签名称个数也一样, 那么就不会继续往下计算了, 那么此时谁写在后面听谁的
示例代码
-
我是段落
-
我是段落
-
我是段落
-
我是段落
3.2 !important
什么是 !important
作用:用于提升某个直接选中标签的选择器中的某个属性的优先级的, 可以将被指定的属性的优先级提升为最高
示例代码
-
我是段落
努力到无能为力, 拼搏到感动自己
div 和 span 有什么区别?
1.div会单独的占领一行,而span不会单独占领一行
2.div是一个容器级的标签,而span是一个文本级的标签
容器级的标签和文本级的标签的区别?
容器级的标签中可以嵌套其它所有的标签
常见容器级的标签: div h ul ol dl li dt dd ...
文本级的标签中只能嵌套 文字 / 图片 / 超链接
常见文本级的标签:span p buis strong em ins del ...
注意点
不用刻意去记忆哪些标签是文本级的哪些标签是容器级, 在企业开发中一般情况下要嵌套都是嵌套在div中, 或者按照组标签来嵌套(ul>li, ol>li , dl>dt+dd)
在HTML中HTML将所有的标签分为两类, 分别是容器级和文本级
常见文本级的标签:span p buis stong em ins del ...
在CSS中CSS也将所有的标签分为两类, 分别是块级元素和行内元素(其实还有一类, 行内块级)
什么是块级元素, 什么是行内元素?
块级元素会独占一行
常见块级元素:p div h ul ol dl li dt dd
行内元素不会独占一行
常见行内元素:span a img buis strong em ins del
块级元素和行内元素的区别?
块级元素
独占一行
如果没有设置宽度, 那么默认和父元素一样宽
如果设置了宽高, 那么就按照设置的来显示
行内元素
不会独占一行
如果没有设置宽度, 那么默认和内容一样宽
行内元素是不可以设置宽度和高度的
行内块级元素
为了能够让元素既能够不独占一行, 又可以设置宽度和高度, 那么就出现了行内块级元素
不独占一行, 并且可以设置宽高
如何转换CSS元素的显示模式?
设置元素的display属性
display取值
block 块级
inline 行内
inline-block 行内块级
快捷键
di display: inline;
db display: block;
dib display: inline-block;
如何设置标签的背景颜色?
在CSS中可以通过 background-color 属性设置标签的背景颜色
取值
具体单词
rgb
rgba
十六进制
格式
如何设置背景图片?
在CSS可以通过 background-image: url(); 设置背景图片
格式
注意点
图片的地址必须放在url()中, 图片的地址可以是本地的地址, 也可以是网络的地址
如果图片的大小没有标签的大小大, 那么会自动在水平和垂直方向平铺来填充
如果网页上出现了图片, 那么浏览器会再次发送请求获取图片
快捷键
bi background-image: url();
如何控制背景图片的平铺方式?
在CSS中可以通过background-repeat属性控制背景图片的平铺方式的
取值
repeat 默认, 在水平和垂直都需要平铺
no-repeat 在水平和垂直都不需要平铺
repeat-x 只在水平方向平铺
repeat-y 只在垂直方向平铺
格式
应用场景
可以通过背景图片的平铺来降低图片的大小, 提升网页的访问速度
可以将多张图片拼接成一张图片
注意点
背景颜色和背景图片可以共存, 图片会覆盖颜色
快捷键
bgr background-repeat:
取值
具体的方位名词
水平方向: left center right
垂直方向: top center bottom
应用场景
当图片比较大的时候, 可以通过定位属性保证图片永远居中显示
快捷键:
bp background-position: 0 0;
和font属性一样, background属性也可以连写
格式
background: 背景颜色 背景图片 平铺方式 关联方式 定位方式;
注意点
background属性中, 任何一个属性都可以被省略
快捷键
bg+ background: #fff url() 0 0 no-repeat;
什么是背景关联方式?
默认情况下背景图片会随着滚动条的滚动而滚动, 如果不想让背景图片随着滚动条的滚动而滚动, 那么我们就可以修改背景图片和滚动条的关联方式
如何修改背景关联方式?
在CSS中有一个叫做 background-attachment 的属性, 这个属性就是专门用于修改关联方式的
格式
background-attachment:scroll;
取值
scroll 默认值, 会随着滚动条的滚动而滚动
fixed 不会随着滚动条的滚动而滚动
快捷键
ba background-attachment:;
1.背景图片仅仅是一个装饰, 不会占用位置,插入图片会占用位置
2.背景图片有定位属性, 所以可以很方便的控制图片的位置,插入图片没有定位属性, 所有控制图片的位置不太方便
3.插入图片的语义比背景图片的语义要强, 所以在企业开发中如果你的图片想被搜索引擎收录, 那么推荐使用插入图片
2.CSS精灵图作用
可以减少请求的次数, 以及可以降低服务器处理压力
3.如何使用CSS精灵图
CSS的精灵图需要配合背景图片和背景定位来使用
示例
完整图片
什么是边框?
边框就是环绕在标签宽度和高度周围的线条
边框属性的格式
连写(同时设置四条边)
border: 边框的宽度 边框的样式 边框的颜色;
示例代码
快捷键
bd+ border: 1px solid #000;
注意点
连写格式中颜色属性可以省略, 省略之后默认就是黑色
连写格式中样式不能省略, 省略之后就看不到边框了
连写格式中宽度可以省略, 省略之后还是可以看到边框
按方向连写(分别设置四条边)
border-top: 边框的宽度 边框的样式 边框的颜色;
border-right: 边框的宽度 边框的样式 边框的颜色;
border-bottom: 边框的宽度 边框的样式 边框的颜色;
border-left: 边框的宽度 边框的样式 边框的颜色;
示例代码
快捷键
bt+ border-top: 1px solid #000;
br+ border-right: 1px solid #000;
bb+ border-bottom: 1px solid #000;
bl+ border-left: 1px solid #000;
按要素连写(分别设置四条边)
border-width: 上 右 下 左;
border-style: 上 右 下 左;
border-color: 上 右 下 左;
示例代码
注意点
这三个属性的取值是按照顺时针来赋值, 也就是按照上右下左来赋值, 而不是按照日常生活中的上下左右
这三个属性的取值省略时的规律(上 右 下 左)
上 右 下 #左边的取值和右边的一样
上 右 #左边的取值和右边的一样 下边的取值和上边一样
上 #右下左边取值和上边一样
非连写(方向+要素)
border-top-width: ;
border-top-style:;
border-top-color:;
border-right-width:;
border-right-style:;
border-right-color:;
border-bottom-width:;
border-bottom-style: ;
border-bottom-color:;
border-left-width:;
border-left-style:;
border-left-color:;
示例代码
.box3{
border: 5px solid red;
border-right: 5px dashed red;
}
格式
单独设置四条边
padding-top: ;
padding-right: ;
padding-bottom: ;
padding-left: ;
示例代码
同时设置四条边
padding: 上 右 下 左;
示例代码
宽度和高度会发生变化
内边距也会有背景颜色
什么是外边距?
标签和标签之间的距离就是外边距
格式
单独设置四条边
margin-top: ;
margin-right: ;
margin-bottom: ;
margin-left: ;
示例代码
同时设置四条边
margin: 上 右 下 左;
示例代码
注意点
外边距的那一部分是没有背景颜色的
外边距合并现象
默认布局的垂直方向上外边距是不会叠加的, 会出现合并现象, 谁的外边距比较大就听谁的
示例代码
外边距合并现象
我是span我是span
我是div
我是div
margin-top 问题
如果两个盒子是嵌套关系, 那么设置了里面一个盒子顶部的外边距, 外面一个盒子也会被顶下来
如果外面的盒子不想被一起定下来,那么可以给外面的盒子添加一个边框属性
在企业开发中, 一般情况下如果需要控制嵌套关系盒子之间的距离, 应该首先考虑padding, 其次再考虑margin(margin本质上是用于控制兄弟关系之间的间隙的)
示例代码
text-align:center; 和 margin:0 auto; 区别
text-align: center; 是设置盒子中存储的文字/图片水平居中
margin:0 auto; 是让盒子自己水平居中
示例代码
53-盒子居中和内容居中
我是文字
![](images/girl.jpg)
48-CSS盒子模型
我是span
我是超链接
我是加粗
我是强调
内容的宽度和高度
就是通过 width / height 属性设置的宽度和高度
元素的宽度和高度
宽度 = 左边框 + 左内边距 + width + 右内边距 + 右边框
高度 同理可证
规律
元素空间的宽度和高度
宽度 = 左外边距 + 左边框 + 左内边距 + width + 右内边距 + 右边框 + 右外边距
高度 同理可证
CSS3中新增了一个 box-sizing 属性, 这个属性可以保证我们给盒子新增 padding 和 border 之后, 盒子元素的 宽度 和 高度 不变
box-sizing取值
content-box(默认)
元素的宽高 = 边框 + 内边距 + 内容宽高
border-box
元素的宽高 = width / height 的宽高
增加 padding 和 border 之后要想保证盒子元素的宽高不变, 系统会自动减去一部分内容的宽度和高度
示例代码
什么是网页的布局方式?
标准流(文档流 / 普通流)排版方式
浮动流排版方式
注意点
特点
定位流排版方式
如果父元素的宽度不能显示所有浮动元素, 那么会从最后一个元素开始往前贴靠
div{
float: left;
width: 100px;
height: 100px;
/*background-color: red;*/
border: 1px solid #000;
}
p{
width: 500px;
height: 500px;
background-color: yellow;
}
给 前面的父盒子 添加 高度
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加高度前
注意点
不常用
利用 clear: both; 属性清除前面浮动元素对我的影响
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加 clear: both; 前
注意点
不常用
在两个有浮动子元素的盒子之间 添加 一个额外的 块级元素
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加额外块级元素前
注意点
不常用
在前面一个盒子的内容最后 添加 一个额外的块级元素
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加额外块级元素前
注意点
什么是 overflow: hidden ?
示例代码
.test{
width: 100px;
height: 100px;
border: 1px solid #000;
background-color: red;
overflow: hidden;
}
我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字
添加 overflow: hidden 前
如何利用 overflow: hidden; 清除浮动
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
注意点
*zoom:1; 和 _zoom:1 的区别
给前面的盒子 添加 伪元素 来 清除浮动
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加伪元素前
注意点
给前面的盒子添加 双伪元素 来 清除浮动
示例代码
- 大娃
- 二娃
- 三娃
- 李南江
- 极客江南
- 江哥
添加双伪元素前
什么是相对定位?
格式
position: relative;
top: px; 或 bottom: px;
left: px; 或 right: px;
示例程序
74-绝对定位水平居中
企业开发中一般相对定位和绝对定位都是一起出现, 很少单独使用
3.1 什么是子绝父相?
3.2 为什么要子绝父相?
71-子绝父相
- 服装城
- 美妆馆
- 京东超市
- 全球购![](hot.png)
- 闪购
- 团购
- 拍卖
- 江哥
什么是固定定位?
格式
position: fixed;
top: px; 或 bottom: px;
left: px; 或 right: px;
示例代码
74-固定定位
我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字
^
顶部
固定定位注意点
固定定位应用场景
什么是静态定位?
格式
position: static;
top: px; 或 bottom: px;
left: px; 或 right: px;
静态定位应用场景
什么是 z-index 值?
定位元素的覆盖关系
(1). a标签的四种状态
(2).格式
(3).注意点
/* 默认:从未被访问过 */
ul li a:link{
text-decoration: none;
color: white;
background-color: pink;
}
/* 鼠标悬停状态 */
ul li a:hover{
color: red;
background-color: #ccc;
}
/* 鼠标长按状态 */
ul li a:active{
color: yellow;
/* background-color: #ccc; */
}
(1).过渡三要素
(2).注意点
(3).过渡模块属性
(4).过渡连写
(5).编写过渡的套路
span{
font-size: 28px;
line-height: 50px;
/* 3.给被修改属性添加过渡效果 */
/* transition: 过渡属性 过渡时长 运动速度 延迟时 (后面两个属性可以省略) */
transition: margin 5s;
}
/* 1.指定需要修改的标签 */
div:hover span{
/* 2.指定需要修改标签的属性 */
margin: 0 20px;
}
第一个参数:水平方向,第二个参数:垂直方向
其中deg是单位, 代表多少度
第一个参数:水平方向,第二个参数:垂直方向
如果取值是1, 代表不变
如果取值大于1, 代表需要放大
如果取值小于1, 代表需要缩小
如果水平和垂直缩放都一样, 那么可以简写为一个参数
div{
width: 100px;
height: 50px;
background-color: red;
/*transition-property: margin-left;*/
/*transition-duration: 3s;*/
/*1.告诉系统需要执行哪个动画*/
animation-name: lnj;
/*3.告诉系统动画持续的时长*/
animation-duration: 3s;
}
/*2.告诉系统我们需要自己创建一个名称叫做lnj的动画*/
@keyframes lnj {
from{
margin-left: 0;
}
to{
margin-left: 500px;
}
}
属性 | 描述 | |
---|---|---|
animation-name | 规定动画的名称( @keyframes 动画名称) | |
@keyframes | 规定动画模式(创建动画) 要使动画生效,必须将动画绑定到某个元素。 |
|
animation-duration | 规定动画的持续时间 默认值是 0s |
|
animation-delay | 规定动画的延迟时间 |
|
animation-iteration-count | 规定动画执行次数 使用值 infinite 使动画永远持续下去 |
|
animation-direction | 规定定动画是向前播放、向后播放还是交替播放
|
|
animation-play-state | 规定动画是运行还是暂停(running: 执行动画,paused: 暂停动画) | |
animation-fill-mode | 规定元素在不播放动画时的样式(动画的三种状态:等待、执行、结束)。 animation-fill-mode作用: 指定动画等待状态和结束状态的样式
|
|
animation-timing-function | 规定动画的速度曲线
|
|
animation | 设置所有动画属性的简写属性。
|
div {
width: 100px;
height: 50px;
background-color: red;
/*animation: move 3s linear 2s 1 normal;*/
animation: move 3s;
}
@keyframes move {
from{
margin-left: 0;
}
to{
margin-left: 500px;
}
}
.father{
width: 200px;
height: 200px;
background-color: red;
border: 1px solid #000;
margin: 100px auto;
perspective: 500px;
/* 添加3D效果 */
transform-style: preserve-3d;
transform: rotateY(0deg);
}
.son{
width: 100px;
height: 100px;
background-color: blue;
border: 1px solid #000;
margin: 0 auto;
margin-top: 50px;
transform: rotateY(45deg);
}
/*background: url("images/animal1.png") no-repeat left top,url("images/animal2.png") no-repeat right top,url("images/animal3.png") no-repeat left bottom,url("images/animal4.png") no-repeat right bottom,url("images/animal5.png") no-repeat center center;*/
background-image: url("images/animal1.png"),url("images/animal2.png"),url("images/animal3.png");
background-repeat: no-repeat, no-repeat, no-repeat;
background-position: left top, right top, left bottom;