CSS 复习

1、css
层叠样式表  级联样式表  简称样式表
2、作用
1)实现了内容与表现的分离
2)提高了代码的可重用性和可维护性
3、文件后缀
.css
4、HTML中引入css的方式
1)行内样式  内联样式——只对当前元素生效
利用HTML的style属性
<div style="color: red;"></div>
2)内部样式——只对当前页面生效
利用HTML的style标签
<head>
    <style>
        选择器{
            属性:属性值;
            属性:属性值;
        }
    </style>
</head>
3)外部样式——实现了内容与表现的分离,提高了代码的重用性和可维护性
<head>
    <link rel="stylesheet" href="1.css">
</head>
4)导入式
<head>
    <style>
        @import "";
    </style>
</head>
@import和link的区别:
①@import先加载HTML文件,再加载css文件;link是同时加载HTML的css文件
②@import有兼容性,link没有兼容性
③@import只能引入css文件,link还可以引入其他内容
④@import会增加页面的http请求
⑤JavaScript操作DOM时,只能操作link引入的css
5、选择器
1)基础选择器
全局选择器 通用选择器
*{}
选中页面所有元素

元素选择器
div{}
a{}
input{}
选中页面所有指定的元素

类选择器
.className{]
类名可以重复 一个class可以起多个名字 用空格隔开

ID选择器
#IDName{}
id名字具有唯一性

合并选择器
选择器1,选择器2,...{}

交集选择器
元素.className{}

选择器的优先级:
全局选择器 < 元素选择器 < 类选择器 < ID选择器 < 行内样式
权重:         1            10       100       1000

2)关系选择器
后代选择器  空格
选择器1 选择器2{}
选中所有的后代

子代选择器  >
选择器1>选择器2{}
所有直接子代

相邻兄弟选择器  +
选择器1+选择器2{}
平级 挨着 后面的一个兄弟

通用兄弟选择器  ~
平级 后面的所有兄弟

3)伪类选择器
:link    点击之前(只适用于a)
:visited   点击之后(只适用于a)
:hover    鼠标悬停(适用于所有元素)
:active    鼠标按下(适用于所有元素)

C3新增:
:first-child  第一个子元素是...
:last-child  最后一个子元素是...
:nth-child(number|odd|even|倍数)  第几个子元素是...

:only-child  唯一一个子元素是...
:first-of-type  第一个子元素
:last-of-type   最后一个子元素
:nth-of-type()  第几个子元素
:empty   空的子元素
:not()   否定

:focus  获取焦点
:checked  默认被选中

4)伪对象选择器
在元素之间或者之后插入内容
::before{
    content:"";
}
::after{
    content:"";
}

5)属性选择器
[属性]
[属性=属性值]
元素[属性=属性值]
元素[属性^=值]  开头
元素[属性$=值]  结尾
元素[属性*=值]  包含

6、背景属性
1)背景颜色
background-color:transparent;
颜色的取值:
①关键词
②十六进制
③rgb(0,0,0)
④rgba(0,0,0,.5)

2)背景图片
background-image: url("");
当背景图片和背景颜色同时存在,背景图片优先级到

3)背景图片是否平铺
background-repeat: ;
repeat 默认值  水平垂直平铺
no-repeat  不平铺
repeat-x  水平方向平铺
repeat-y  垂直方向平铺

4)背景图片大小
background-size: x y;
当只有一个值是,等比例缩放
取值 % px cover contain
cover  覆盖,背景图片覆盖整个背景区域,但是背景图片可能显示不完全
contain 内容,背景图片拉伸至最大,但是背景区域可能覆盖不完全

5)背景图片定位
background-position:x y ;
默认在左上角 0 0
当只取一个值,第二个值默认居中
取值 px  %  left right top bottom center

6)背景图片固定
background-attachment: ;
scroll 默认值
fixed  固定

7)简写
background:颜色 图片 平铺 大小 定位 固定;
当简写属性和单个属性同时存在,推荐简写属性写在单个属性的前面

7、字体的属性——继承性
1)颜色
color:;
2)字体大小
font-size:16px;
支持最小字体为12px
3)字体是否加粗
font-weight:;
normal  默认值  不加粗
bold  加粗
100-900  400 = normal 700 = bold
4)字体样式
font-style:;
normal  默认值 不倾斜
italic  倾斜
5)字体
font-family:字体1,字体2,...;

8、文本属性——继承性
1)元素内容水平对齐方式
text-align:left|center|right;

2)文本装饰
text-decoration:underline|none;

3)英文字母大小写转换
text-transform:uppercase|lowercase|capitalize;

4)首行缩进
text-indent:;
单位
px  绝对单位
em  相对单位  相对于当前字体大小  默认1em = 16px

9、列表属性——继承性
1)设置项目符号
list-style-type:none;
2)设置项目符号为图片
list-style-image:url("");
3)设置项目符号的位置
list-style-position:outside|inside;
4)简写
list-style:;

10、表格属性
1)边框
border:style width color;
2)背景颜色
background-color:;
3)背景图片
background-images:url();
4)元素的大小
width:;
height:;
5)内容距边框的距离
padding:;
6)内容水平对齐方式
text-align:left|center|right;
7)内容垂直对齐方式
vertical-align:middle|top|bottm;
8)边框折叠
border-collapse:collapse;

11、内容溢出
overflow:;
属性值:
visible  默认值  内容默认溢出
hidden   溢出部分隐藏
auto     自动,有溢出显示滚动条,没有溢出,不显示滚动条
scroll   无论是否溢出,都显示滚动条

12、文字溢出省略号显示
//文字在同一行显示
white-space:nowrap;
//溢出部分隐藏
overflow:hidden;
//文字溢出省略号显示
text-overflow:ellipse;

13、雪碧图  css精灵  css sprite
1)定义
雪碧图是一项图片整合技术
把许多小图合并到一张大图上面
2)原理
background-image:url("");
background-position:;
3)优点
①减少页面http请求
②减少图片字节数
③减少图片的命名困扰
4)缺点
①背景图片定位玛法

14、行高——继承性
当行高等于高,一行垂直垂直居中
line-height:px|number;

15、字符之间的距离
letter-spacing:;

16、元素的透明度
opacity:;
取值0-1
0:完全透明
1:不透明

17、盒模型
1)标准盒模型  w3c盒模型
①组成部分
content+padding+border+margin

②实际大小
宽度:width+padding+border+margin
高度:height+padding+border+margin

③content 内容区域
width:;
height:;
min-width:;
max-width:;
min-height:;
max-height:;

块级元素默认宽度100%,行内元素默认宽度由内容撑开
块级元素和行内元素的高度默认都由内容撑开
块级元素可以设置宽高
行内元素设置宽高不生效

④border  边框
border-style:solid|dotted|dashed|double|none;  边框的样式  必须属性  默认3px  黑色
border-width:;  边框的宽度
border-color:;  边框的颜色

简写:border:style width color;  四周的边框

border-top:width style color;  上边框
border-bottom:width style color;  下边框
border-left:width style color;  左边框
border-right:width style color;  右边框

⑤padding  内边距
不可以取负值和auto
设置内容距边框的距离

语法:
padding:value;  四周
padding:value value;  上下 左右
padding:value value value;  上 左右 下
padding:value value value value;  上 右 下 左

padding-top:;
padding-bottom:;
padding-left:;
padding-right:;

注意:padding会撑大容器(padding有背景颜色)

⑥margin  外边距
可以取正负和auto
设置元素之间的距离(没有背景颜色)

语法:
margin:value;  四周
margin:value value;  上下 左右
margin:value value value;  上 左右 下
margin:value value value value;  上 右 下 左

margin-top:;
margin-bottom:;
margin-left:;
margin-right:;

注意:
①垂直方向上外边距合并问题
当垂直方向上外边距相撞时,取较大值
浮动元素不合并

②margin-top问题
第一个子元素设置margin-top,父元素会跟着一起下来
解决办法:
a、父元素加overflow:hidden;(开启了BFC格式)
b、父元素或者子元素浮动(开启了BFC格式)
c、父元素加border:1px solid transparent;
d、父元素加padding-top:1px;

应用:
①块级元素水平居中
margin:0 auto;

2)怪异盒模型  IE盒模型
①组成部分
content+padding+border+margin

②实际大小
宽度:width+margin
高度:height+margin
width和height包含了padding和border

③标准盒模型和怪异盒模型相互转换
box-sizing:content-box;  默认值  标准盒模型
box-sizing:border-box;   怪异盒模型

3)弹性盒模型  伸缩盒模型  flex Box
多用于移动端布局
在弹性盒模型中float、clear、vertical-align不生效
①父元素上的属性
a、开启弹性盒模型
display:flex;
子元素默认水平排列
父元素开启弹性盒模型,子元素默认宽度由内容撑开

b、设置弹性盒的方向
flex-direction:;
row:默认值  子元素从左往右水平排列
column:子元素从上往下垂直排列
row-reverse:子元素从右往左水平排列
column-reverse:子元素从下往上垂直排列

c、设置子元素在主轴的对齐方式
默认主轴为x轴,侧轴为y轴
当子元素垂直排列时,主轴为y轴,侧轴为x轴

justify-content:;
flex-start:弹性盒的开始 默认值
flex-end:弹性盒的结束
center:居中
space-between:在子元素之间平均分配父元素剩余的空间
space-around:在子元素四周分配父元素剩余的距离,两端的距离是中间的一半

d、设置子元素在侧轴的对齐方式
align-items:;
flex-start:弹性盒的开始 默认值
flex-end:弹性盒的结束
center:居中

②子元素上的属性
设置子元素怎么分配父元素剩余的空间
flex-grow:number;

18、BFC
块级格式上下文
开启了BFC格式,就是独立的一块,不受子元素影响
以下属性可以开启BFC格式:
1)float:left|right;
2)overflow:hidden|auto|scroll;
3)position:absolute|fixed;
4)display:inline-block|table-cell|flex;

19、设置属性后,元素的宽度默认由内容撑开
1)float:left|right;
2)position:absolute|fixed;
3)display:flex;

20、浮动
1)原理
浮动后排除到普通文档流之外
浮动后在页面总不占据位置
浮动是碰到父元素的边框或者浮动元素的边框就会停止
浮动不会重叠
浮动只有左右浮动
浮动后所有元素转换为块级元素

2)语法
float:left|right|none;

3)清除浮动的影响
元素浮动后不占据位置,父元素没有设置高度的情况下,父元素的高度坍塌,对后面的元素产生影响
方法:
①浮动元素的父元素加高(高度已知)
②浮动元素的父元素加overflow:hidden;(自动找高)
③受影响的元素加clear:both;(父元素的高度没有找到)
④空div法(父元素的高度找到,页面新增很多空div元素)
浮动元素后面加空div
空div{clear:both;}
⑤伪对象法
父元素::after{
    content:"";
    display:block;
    clear:both;
}

21、元素定位
1)属性
position:;
2)属性值
①static 默认值  没有定位
②relative  相对定位
相对于自己原位置移动
定位后原位置保留
配合left、right、top、bottom移动

应用场景:
a、配合绝对定位使用
b、自己小范围移动

③absolute  绝对定位
相对于已经定位(relative、absolute、fixed)的父元素定位,如果父元素没有定位,逐级往上找,最后相对于body定位
定位后原位置不保留
配合left、right、top、bottom移动

应用场景:
a、形成独立的一层

④fixed  固定定位
相对于浏览器窗口定位
定位后原位置不保留
配合left、right、top、bottom移动

应用场景:
a、固定在页面某个位置

3)堆叠顺序
z-index:number;
取值越大,层级越往上
默认值auto  和父元素同一层级
可以取负值,不推荐
必须配合定位(relative、absolute、fixed)使用

同时定位,后面的元素在前面元素的上面

22、display属性
属性值:
block  块级元素
inline  行内元素
inline-block  行内块,即在同一行显示,又可以设置宽高和margin、padding的四周
常见的行内块:img、input、button等
注意:行内块会识别代码之间的空白
none  隐藏,隐藏后不占据位置
flex  弹性盒模型
table  表格
table-cell  单元格

23、设置属性后在页面中不占据位置
1)display:none;
2)position:fixed;
3)position:absolute;
4)float:left|right;


24、display:none;和visibility:hidden;和opacity:0;和overflow:hidden;的区别
display:none;  隐藏自己,隐藏后原位置不保留
visibility:hidden;  隐藏自己,隐藏后原位置保留
opacity:0;  透明度为0,隐藏自己,隐藏后原位置保留
overflow:hidden;  溢出部分隐藏

25、居中问题
1)元素内容水平居中
text-align:center;

2)块级元素水平居中
margin:0 auto;

3)一行文字垂直居中
line-height:;
行高等于高

4)多行内容垂直居中
padding:20px 0;  写在父元素上
margin:20px 0;  写在子元素上

5)子元素在父元素中水平垂直居中
<div class="box">
    <div class="box1"></div>
</div>
①子元素宽高已知
a、margin
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        overflow: hidden;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        margin: 100px;
    }
</style>

b、绝对定位
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        position: relative;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        position: absolute;
        top: 100px;
        left: 100px;
    }
</style>

c、相对定位
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        position: relative;
        top: 100px;
        left: 100px;
    }
</style>

d、padding
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        padding: 100px;
        box-sizing: border-box;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
    }
</style>

e、弹性盒法
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
    }
</style>

f、绝对定位法
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        position: relative;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -100px;
        margin-left: -100px;
    }
</style>

g、表格法
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        display: table-cell;
        text-align: center;
        vertical-align: middle;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        display: inline-block;
    }
</style>

h、位移
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
    }
    .box1{
        width: 200px;
        height: 200px;
        background-color: green;
        transform: translate(100px,100px);
    }
</style>


②子元素宽高未知
a、弹性盒法
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .box1{
        background-color: green;
    }
</style>

b、绝对定位配合位移
<style>
    .box{
        width: 400px;
        height: 400px;
        background-color: red;
        position: relative;
    }
    .box1{
        background-color: green;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }
</style>


26、三栏布局
左右两侧固定,中间跟着页面的缩放而缩放
1)弹性盒法
<div class="box">
    <div class="left"></div>
    <div class="center"></div>
    <div class="right"></div>
</div>
<style>
    .box{
        display: flex;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: palegoldenrod;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: palegreen;
    }
    .center{
        height: 200px;
        background-color: plum;
        flex-grow: 1;
    }
</style>

2)绝对定位法
<div class="box">
    <div class="left"></div>
    <div class="center"></div>
    <div class="right"></div>
</div>
<style>
    .box{
        position: relative;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: palegoldenrod;
        position: absolute;
        top: 0;
        left: 0;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: palegreen;
        position: absolute;
        top: 0;
        right: 0;
    }
    .center{
        height: 200px;
        background-color: plum;
        margin-left: 200px;
        margin-right: 200px;
    }
</style>

3)浮动法
<div class="box">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
</div>
<style>
    .left{
        width: 200px;
        height: 200px;
        background-color: palegoldenrod;
        float: left;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: palegreen;
        float: right;
    }
    .center{
        height: 200px;
        background-color: plum;
    }
</style>

4)圣杯法和双飞翼法
先加载center

27、C3新特性
1)选择器
属性选择器 伪类选择器 伪对象选择器
2)弹性盒模型
3)圆角
border-radius:;
border-radius:50%;  画圆
4)盒阴影
box-shadow:水平方向偏移的位置 垂直方向偏移的位置 模糊度 阴影的尺寸 颜色 位置;
                 必需            必需           可选    可选    可选  可选
                 正负            正负           正值    正负          outset|inset
5)字阴影
text-shadow:水平方向偏移的位置 垂直方向偏移的位置 模糊度 颜色;

6)背景渐变
①线性渐变
background: linear-gradient(方向,颜色1,颜色2,...);
②径向渐变
background:-webkit-radial-gradient(中心点,渐变的形状,颜色1,颜色2,...);

7)转换
①作用
使元素在位置或者形状上发生一定的改变
②属性
transform:translate() rotate() scale() skew();
③位移  单位px、%
transform:translate(x,y);
当只有一个参数表示水平方向移动的距离
当有两个参数表示水平和垂直方向

transform:translateX();
transform:translateY();

④旋转  单位deg
transform:rotate(30deg);
当取正值,顺时针旋转
当取负值,逆时针旋转

当位移和旋转同时存在,推荐位移写在旋转的前面
旋转会旋转整个坐标轴

默认元素的中心点为宽高的一半
transform-origin:;  修改元素的中心点

⑤缩放 取值为number  <1:缩小;>1:放大;默认为1
transform:scale(x,y);
当只取一个值,表示等比例缩放
当取两个值,表示水平和垂直方向

transform:scaleX();
transform:scaleY();

⑥倾斜  单位deg
transform:skew(xdeg,ydeg);
当只有一个值,表示水平方向倾斜的弧度
当有两个值,表示水平方向和垂直方向倾斜的弧度

transform:skewX();
transform:skewY();

8)过渡
①作用
使元素从一个样式逐渐变为另外一个样式
②过渡必须有触发事件
例如: 鼠标悬停 鼠标点击
③属性
transition:过渡的属性 过渡的持续时间 速度的变化类型 延迟时间;
             必须        必须         可选         可选
④过渡的属性——必须属性
transition-property: ;
可以过渡的属性:
a、取值为颜色
b、取值为数值
c、阴影
d、转换
e、背景渐变

简写为all

⑤过渡的持续时间——必须属性
transition-duration: ;
默认0s|0ms

⑥过渡的速度变化类型——可选
transition-timing-function: ;
ease  默认值 先加速后减速
ease-in  加速
ease-out  减速
ease-in-out  先加速后减速
linear 运算

⑦过渡的延迟时间——可选
transition-delay: ;
默认值0s|0ms
可以取负值:把这段时间的效果跳过

9)动画
①定义动画
@keyframes name{
    0%|from{}
    百分比{}
    100%|to{}
}

②调用动画
animation:name 持续时间 速度变化类型 延迟时间 播放次数(number|infinite) 播放的方向(alternate) 动画停在最后一帧(forwards);
          必须  必须

animation-play-state:running|paused;  设置动画的播放状态

animation-name: ;
animation-duration: ;
animation-timing-function: ;
animation-delay: ;
animation-iteration-count: ;
animation-duration: ;
animation-fill-mode: ;

10)媒体查询  media query
①作用
实现响应式布局
②语法
a、内部
移动端
@media screen and (max-width:768px){}
ipad端
@media screen and (max-width:992px) and (min-width:768px){}
pc端
@media screen and (min-width:992px){}
b、外部
移动端
<link href="" rel="stylesheet" media="screen and (max-width:768px)"/>
ipad端
<link href="" rel="stylesheet" media="screen and (max-width:992px) and (min-width:768px)"/>
pc端
<link href="" rel="stylesheet" media="screen and (min-width:993px)"/>

11)字体图标
12)厂商前缀
①作用
解决浏览器对C3新特性的支持

浏览器   厂商前置   内核
谷歌     -webkit-  blink
苹果     -webkit-  webkit
火狐     -moz-     gecko
欧朋     -o-       blink
IE      -ms-       trident

13)css hack
①作用
解决IE低版本浏览器兼容性问题

②语法
a、条件hack
<!--[if 条件]>
<![end if]-->

b、属性前缀和后缀
前缀 + - _ # *
后缀 \0  \9  \9\0  !important(优先级最高)


14)多列
①作用
把元素内的文本分成多列
②属性
column-count: ;  设置列的数量
column-gap: ;  设置列之间的距离
column-rule:style width color ;  设置列之间的边框

发表评论