!important > inline > id > class > tag > * > inherit > default
同级别的后写的优先级高。
相同class样式,css中后写的优先级高,和html中的class名字前后无关。
1)文本水平居:text-align:center
2)文本垂直居中:
line-height: 容器height;
display:flex;
align-items:center;
3)div水平居中:
margin: 0 auto;
margin-left:width/2; transform:tranlateX(-50%);
position:abolute; top: 50%; transform:tranlateY(-50%)
display:flex; justify-content:center;
4)div垂直居中:
margin-top:height/2; transform:tranlateY(-50%)
position:absolute; top:50%; transform: tranlateY(-50%)
display:flex; algin-items: center;
浮动的影响:
1)由于浮动元素脱离文档流,所以父元素无法被撑开,影响了与父元素同级的元素
2)与浮动元素同级的非浮动元素会紧随其后,因为浮动元素脱离文档流不占据原来的位置
3)如果浮动元素不是第一个浮动元素,则该元素之前的元素也应该浮动起来,否则容易影响页面的结构显示
清除浮动的3个方法:
clear:both
清除浮动。在浮动元素后面放一个空的div标签,div设置样式clear:both
来清除浮动。优点是简单方便且兼容性好,但一般情况下不建议,因为会造成结构混乱,不利于后期维护。after
来清除浮动。给父元素添加:after
伪元素,通过清除伪元素的浮动,达到撑起父元素高度的目的。.div:after{
content: "",
display: block,
visibility: hidden,
clear: both
}
overflow
属性。当给父元素设置overflow样式,不管是overflow:hidden
或overflow:auto
都可以清除浮动只要它的值不为visible就可以了。它的本质是构建了一个BFC,这样使得达到撑起父元素高度的效果。布局垂直方向上两个元素的间距不等于margin的和,而是取较大的一个。
1)同级相邻元素现象:上方元素设置margin-bottom:20px;
下方元素设置margin-top:10px;
实际的间隔是20px。
2)父子元素现象:父元素设置margin-top: 20px;
,下方元素设置margin-top: 10px;
实际的间隔是20px
要求:左边右边固定宽度,中间自适应
1)float
"left">左
"right">右
"center">中
2)position:absolute
<style>
.left{
position: absolute;
left: 0;
width: 300px;
background-color: red;
}
.center{
position: absolute;
left: 300px;
right: 300px;
background-color: blue;
}
.right{
position: absolute;
right: 0;
width: 300px;
background-color: #3A2CAC;
}
</style>
<body>
<div class="left">左</div>
<div class="center">中</div>
<div class="right">右</div>
</body>
3)flex
<style>
.main {
display: flex;
}
.left{
width: 300px;
}
.center{
flex-grow: 1;
flex-shrink: 1;
}
.right{
width: 300px;
}
</style>
<body class="main">
<div class="left">左</div>
<div class="center">中</div>
<div class="right">右</div>
</body>
BFC是Block Formatting Context,也就是块级格式化上下文,是用于布局块级盒子的一块渲染区域。
文档流分为:普通流、定位流、浮动流,普通流其实就是指BFC中的FC,也即格式化上下文。
普通流:元素按照其在 HTML 中的先后位置从上到下、从左到右布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行。
格式化上下文:页面中的一块渲染区域,有一套渲染规则,决定了其子元素如何布局,以及和其他元素之间的关系和作用。
BFC规则:
BFC的应用:
overflow:hidden;
触发BFC实现清除浮动,防止父元素高度塌陷,后面的元素被覆盖,实现文字环绕等overflow:hidden;
构建BFC使其不影响外部元素overflow:hidden;
容器属性:
项目的属性:
1)transition过渡:将变化按照设置的时间长度缓慢执行完毕,而不是立即执行
delay
的真正意义在于,它指定了动画的发生顺序,使得多个不同transition可以连在一起,形成复杂的效果。
/* 变化在1s过渡 */
transition: 1s;
/* 指定过渡属性 */
transition: 1s height;
/* 指定多个属性同时发生过渡 */
transition: 1s height, 1s width;
/* 指定delay延时时间 */
transition: 1s height, 1s 1s width;
/* 指定状态变化速度 */
transition: 1s height ease;
/* 指定自定义移状态变化速度 */
transition: 1s height cubic-bezier(.83,.97,.05,1.44);
transition优点:简单易用
transition局限:
2)animation动画
.element:hover {
animation: 1s rainbow;
/*
animation: 1s rainbow infinite; 关键字infinite让动画无限次播放
animation: 1s rainbow 3; 指定动画播放次数
*/
}
@keyframes rainbow {
0% { background: #c00; }
50% { background: orange; }
100% { background: yellowgreen; }
}