CSS复习总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boonyaxnn/article/details/88919857
1.css介绍
层叠样式表   、级联样式表   、简称 样式表
文件后缀  .css

2.作用:
1)实现了内容与表现的分离
2)提高了代码的可重用性和可维护性

3.css语法
属性:属性值;

4.css特点
1)继承性
具有继承性的属性:
color、font-*、text-*、line-height、list-style-*等

不具有继承性的属性:
background-*、margin、padding等

2)层叠性
3)优先级
优先级高的样式生效,优先级相同,后写的样式生效

5.引入方式
1)行内样式、内联样式   只对当前元素生效
<div style="属性:属性值;"></div>
2)内部样式    只对当前页面生效
<head>
    <style>
        选择器{
            属性:属性值;
            属性:属性值;
        }
    </style>
</head>
3)外部样式  实现了内容与表现的分离,提高了代码的可重用性和可维护性
<head>
    <link rel="stylesheet" href="1.css"/>
</head>
4)导入式
<head>
    <style>
        @import "1.css";
    </style>
</head>

@import和link的区别:
1)@import先加载HTML文件,再加载css文件;link同时加载HTML和css文件
2)@import只能引入css,link还可以引入其他内容
3)@import有兼容性(IE5以上支持),link没有兼容性
4)但js操作DOM时,只能操作link引入的css文件
5)@import会增加页面的http请求

6.选择器
1)基本选择器
1、全局选择器、通用选择器
*{}
选中页面所有元素

2、元素选择器
div、a、b、i、span、img、input、button.....
选中页面所有指定的元素

3、类选择器
.className{}
选中所有class属性为className的元素
类型可以重复,一个元素可以有多个类名,用空格隔开

4、ID选择器
#idName{}
一个网页中的ID名字唯一

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

5、合并选择器
选择器1,选择器2,...{

}

2)关系选择器
1、后代选择器
选择器1 选择器2{}
选中所有后代

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

3、相邻兄弟选择器
选择器1+选择器2{}
下一个兄弟

4、通用兄弟选择器
选择器1~选择器2{}
后面所有兄弟


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

css3新增
写在子元素上
:first-child  第一个子元素是...
:last-child   最后一个子元素是...
:only-child   唯一一个子元素
:nth-child(number|odd|even|倍数)   第几个子元素是....

:empty  空的子元素
:not(选择器)  否定

:focus    获取焦点
:checked  被选中


4)伪对象选择器
1、:before|::before{
    content:"";
}
2、:after|::after{
    content:"";
}

①插入文字
1、:before|::before{
    content:"text";
}
2、:after|::after{
    content:"text";
}

②插入图片
1、:before|::before{
    content:url("");
}
2、:after|::after{
    content:url("");
}

③自定义插入内容
1、:before|::before{
    content:"";
    display:block;
}
2、:after|::after{
    content:"";
    display:block;
}

5)属性选择器
元素[HTML的属性="属性值"]
元素[HTML的属性^="值"]   以什么开头
元素[HTML的属性$="值"]   以什么结尾
元素[HTML的属性*="值"]   包含

7.背景属性
1)背景颜色
background-color:transparent;

颜色的取值:
1、关键字  red、blue
2、十六进制   #000
3、rgb(0,0,0)
4、rgba(0,0,0,.5)

2)背景图片
background-image:url("");
默认水平垂直平铺

3)背景图片是否平铺
background-repeat:repeat|no-repeat|repeat-x|repeat-y;

4)背景图片大小
background-size:x y;

5)背景图片定位
background-position:x y;
默认 0 0
只取一个值时,第二个值默认居中

6)背景固定
background-attachment:scroll|fixed:

7)简写
background:颜色 图片 平铺 大写 定位 固定;


8.雪碧图、css精灵、css sprite
一种图片整合技术、把多张小图放在一张图片里

优点:
1)减少页面的http请求
2)减少图片字节数
3)减少图片命名困扰

9、字体属性
1)字体颜色
color:;
2)字体大小
font-size:16px;
3)字体是否加粗
font-weight:normal|bold|100-900;
normal=400
bold=700
4)字体是否倾斜
font-style:normal|italic;
5)字体
font-family:;

10、文本属性
1)内容水平对齐
text-align:left|right|center;
2)文本装饰
text-decoration:none|underline;
3)英文大小写转换
text-transform:;
4)首行缩进
text-indent:;

11、列表属性
1)项目符号样式
list-style-type:none;

2)项目符号为图片
list-style-image:url();

3)项目符号位置
list-style-position:;

4)简写
list-style:none;

12、溢出
overflow:hidden|auto|scroll;

13、文字溢出省略号显示
在同一行显示
white-space:nowrap;
溢出部门隐藏
overflow:hidden;
文字溢出省略号显示
text-overflow:ellipsis;

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

2、实际宽度
width+padding+border+margin

3、content  内容区域
width  取值px、%(相对于父元素)
块级元素默认宽度为100%,行内元素宽度由内容撑开

height  取值px、%(相对于父元素)
块级元素和行内元素高度由内容撑开

min-width:;
max-width:;
min-height:;
max-height:;

4、border  边框
border-style:solid|dotted|dashed|double|none;
border-color:;
border-width:;

简写:border:1px solid red;

单边属性:
border-top:1px solid red;
    border-top-style:;
    border-top-color:;
    border-top-width:;
border-bottom:1px solid red;
    border-bottom-style:;
    border-bottom-color:;
    border-bottom-width:;
border-left:1px solid red;
    border-left-style:;
    border-left-color:;
    border-left-width:;
border-right:1px solid red;
    border-right-style:;
    border-right-color:;
    border-right-width:;


5、margin  外边距
设置盒子与盒子之间的距离
取值正负  auto
外边距时透明的

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

单边:
margin-top:;  上外边距
margin-bottom:;  下外边距
margin-left:;  左外边距
margin-bottom:;  右外边距

注意:
1)垂直方向上外边距合并问题
垂直方向上,当外边距相撞时,取较大值
浮动元素不合并
2)第一个子元素设置margin-top问题
①父元素加overflow:hidden;
②父元素或者子元素浮动
③父元素加border:1px solid transparent;
④父元素加padding-top:1px;

6、padding  内边距
设置内容距边框的距离
内边距会撑大容器
不可以取负值和auto

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

单边:
padding-top:;  上内边距
padding-bottom:;  下内边距
padding-left:;  左内边距
padding-bottom:;  右内边距


2)怪异盒模型、IE盒模型
1、组成部门
content+padding+border+margin

2、实际宽度
width+margin
    宽度包含了border和padding

box-sizing:content-box;  默认值、标准盒模型
box-sizing:border-box;   怪异盒模型

3)弹性盒模型
弹性盒中float和clear不生效

1、父元素上的属性
display: flex;  开启弹性盒,子元素默认水平排列
flex-direction: column;    设置子元素垂直排列
justify-content: flex-start|flex-end|center|space-around|space-between;  设置子元素在主轴的对齐方式
align-items: flex-start|flex-end|center;   设置子元素在侧轴的对齐方式
                居上      居下

2、子元素上的属性
flex-grow: number;
设置子元素之间宽度的比例


15、定位
1)普通流定位
2)浮动定位
3)元素定位

4)浮动
①原理
浮动后在页面中不占据位置
浮动是碰到父元素的边框或者浮动元素的边框就会停止
浮动不会重叠
浮动只有左右浮动

②语法
float:left|right|none;

③清除浮动的影响
1)浮动元素的父元素加overflow:hidden|auto;
2)受影响的元素加clear:both;
3)浮动元素的父元素加高(父元素的高度已知)
4)空div法
浮动元素的后面加空div
空div clear:both;
5)伪对象法
浮动元素的父元素:after{
    content:"";
    display:block;
    clear:both;
}


5)元素定位
①静态定位
position:static;
默认值

②相对定位
position:relative;
相对于自己原位置定位
定位后原位置保留
配合top、bottom、left、right移动

③绝对定位
position:absolute;
相对于已经定位的父元素定位(相对、绝对、固定),
如果父元素没有定位,逐级往上找
最后相对于body定位

配合top、bottom、left、right移动


④固定定位
position:fixed;
相对于浏览器窗口定位
定位后原位置不保留

配合top、bottom、left、right移动

⑤堆叠顺序
z-index:number;
默认为1  可以正负
取值越大、层级越往上

必须配合定位使用(相对、固定、绝对)
同时定位后,后面的元素再上

16、display属性
属性值:
block  块级元素
inline 行内元素
inline-block  行内块,即在同一行显示,又可以设置宽高
none   隐藏
flex   弹性盒
table-cell   单元格


display:none;和visibility:hidden;和opacity:0;的区别和联系:
联系:隐藏元素
区别:
display:none;  隐藏后不占据页面位置
visibility:hidden;和opacity:0;  隐藏后占据页面位置

不占据页面位置的属性:
display:none;
float:;
position:absolute;
position:fixed;

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

2)块级元素水平居中
div{
    width:;
    margin:0 auto;
}

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

4)多行内容垂直居中
padding:20px 0;

5)子元素在父元素中水平垂直居中
<div class="parent">
    <div class="child"></div>
</div>
①弹性盒法
<style>
    .parent{
        width: 500px;
        height: 500px;
        background-color: red;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .child{
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
    }
</style>

②绝对定位法
<style>
    .parent{
        width: 500px;
        height: 500px;
        background-color: red;
        position: relative;
    }
    .child{
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -100px;
        margin-top: -100px;
    }
</style>

③绝对定位计算
<style>
    .parent{
        width: 500px;
        height: 500px;
        background-color: red;
        position: relative;
    }
    .child{
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
        position: absolute;
        left: 150px;
        top: 150px;
    }
</style>


④margin
<style>
    .parent{
        width: 500px;
        height: 500px;
        background-color: red;
        overflow: hidden;
    }
    .child{
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
        margin: 0 auto;
        margin-top: 150px;
    }
</style>

⑤表格法
<style>
    .parent{
        width: 500px;
        height: 500px;
        background-color: red;
        display: table-cell;
        vertical-align: middle;
    }
    .child{
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
        margin: 0 auto;
    }
</style>

18、三栏布局
<div class="box">
    <div class="left"></div>
    <div class="center"></div>
    <div class="right"></div>
</div>

①弹性盒法
<style>
    .box{
        display: flex;
    }
    .left{
        width: 200px;
        height: 500px;
        background-color: red;
    }
    .right{
        width: 200px;
        height: 500px;
        background-color: paleturquoise;
    }
    .center{
        height: 500px;
        background-color: plum;
        flex-grow: 1;
    }
</style>

②绝对定位法
<style>
    .box{
        position: relative;
    }
    .left{
        width: 200px;
        height: 500px;
        background-color: red;
        position: absolute;
        top: 0;
        left: 0;
    }
    .right{
        width: 200px;
        height: 500px;
        background-color: paleturquoise;
        position: absolute;
        right: 0;
        top: 0;
    }
    .center{
        height: 500px;
        background-color: plum;
        margin-left: 200px;
        margin-right: 200px;
    }
</style>

③浮动
<div class="box">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
</div>
<style>
    .box{
    }
    .left{
        width: 200px;
        height: 500px;
        background-color: red;
        float: left;
    }
    .right{
        width: 200px;
        height: 500px;
        background-color: paleturquoise;
        float: right;
    }
    .center{
        height: 500px;
        background-color: plum;
    }
</style>

19、css3新特性
1)选择器(属性选择器、伪对象选择器、伪类选择器)
2)弹性盒display:flex;
3)圆角
border-radius:;
border-radius:50%;   画圆
4)盒阴影
box-shadow:水平方向偏移位置 垂直方向偏移位置 模糊度 扩展值 颜色 位置;
                正负              正负        正值   正负        outset|inset

5)字阴影
text-shadow:水平方向偏移位置 垂直方向偏移位置 模糊度 颜色;
                 正负              正负        正值

6)背景渐变
①线性渐变
background: linear-gradient(方向,color1,color2,.....);
②射线渐变、径向渐变、扇形渐变
background: radial-gradient(渐变中心点,渐变的形状,color1,color2,.....);

7)变型、转换
作用:使元素在位置或者形状上发生一定的改变

属性:transform:;
属性值:
①位移  单位px
transform:translate(x,y);

当只有一个值,代表水平方向
当有两个值,代表水平和垂直

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

②旋转  单位deg
transform:rotate(deg)

取值为正,顺时针旋转
位置为负,逆时针旋转

transform:rotateX(deg)
transform:rotateY(deg)

旋转默认的中心点为宽高的一半
transform-origin:;

注意:旋转会旋转整个坐标轴,当位移和旋转同时存在,旋转写在位移的后面


③缩放  取值数值  0-1  缩小  ,>1  放大
transform:scale(x,y)

当只取一个值,等比例缩放
当取两个值,代表水平方向和垂直方向

transform:scaleX()
transform:scaleY()


④倾斜  单位deg
transform:skew(x,y)

当只取一个值,代表水平方向
当有两个值,代表水平和垂直

transform:skewX()
transform:skewY()


8)过渡
作用:使元素从一种样式平滑的过渡到另外一种样式
必须有触发事件,例如鼠标悬停、点击

属性:transition:all 2s linear 1s;
属性值:
1)过渡的属性
transition-property: ,,,;

可以过渡的属性:
①取值为颜色
②取值为数值
③转换  transform
④阴影  box-shadow:;  text-shadow:;
⑤背景渐变

简写为  all


2)过渡的持续时间
transition-duration: s|ms;

3)过渡的速度变化类型
transition-timing-function: ;
ease  默认值  先加速后减速
ease-in  加速
ease-out  减速
ease-in-out  先加速,后减速
linear  匀速

4)过渡延迟时间
transition-delay:s|ms ;
取负值

9)动画
1、动画和过渡的区别
1)过渡只能制作简单的动画,动画可以制作复杂的动画
2)过渡必须有触发事件,动画可以没有

2、关键帧动画属性
animation:;

3、定义动画
@keyframes name {
    0%|from{
        css样式
    }
    百分比{
        css样式
    }
    100%|to{
        css样式
    }
}

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

5、动画属性
animation-name: ;
animation-duration: ;
animation-timing-function: ;
animation-delay: ;
animation-iteration-count: ;
animation-direction: ;
animation-fill-mode: ;

10)媒体查询
作用:写一次样式,适用于各种终端
语法:
<!--pc端-->
@media screen and (min-width:992px;){

}
<!--ipad端-->
@media screen and (min-width:768px;) and (max-width:991px){

}
<!--移动端-->
@media screen and (max-width:767px;){

}

11)兼容性
1、厂商前缀
浏览器              厂商前缀                 内核
谷歌、苹果          -webkit-                 苹果味webkit,谷歌为blink
火狐                -moz-                    gecko
欧朋                -o-                      一开始为presto,后改用blink内核
IE                  -ms-                     trident内核(IE内核)

2、css hack
兼容IE 6 7 8

1)条件注释法
<!--[if IE]>

<![endif]-->

2)属性前缀或后缀
前缀  - _ + * #
后缀  \0   \9    \9\0   !important

12)多列
column-count: number;   列的数量
column-gap: ;   列之间的距离
column-rule: 1px solid red;   列之间的边框

猜你喜欢

转载自blog.csdn.net/boonyaxnn/article/details/88919857
今日推荐