水平垂直居中
很多方法都会受浮动影响
单行已知宽高
1
2text-align:center;
inline-height: 50px;已知字元素宽高
1
2
3
4
5
6
7
8
9
10
11.parent{
position: reletive;
}
.child {
position: absolute/relative;
left: 50%;
top: 50%;
margin: -50px 0 0 -50px;
width: 100px;
height: 100px;
}margin:auto;
1
2
3
4
5
6
7
8
9
10
11
12
13.parent{
position: reletive;
}
.child {
position: absolute;
left: 0;
top: 0;
tight: 0;
b0ttom: 0;
width: 100px;
height: 100px;
margin:auto;
}未知宽高
用css3 transform: translate(-50%, -50%);table-cell表格实现
1
2
3display: table-cell;
vertical-align: middle;
text-align: center;
两栏布局
- 浮动
left左浮动,right不浮动,margin/padding-left - 绝对定位
方式和浮动一样 - 表格布局
wrap: table, child:table-cell - flex布局
圣杯布局
1、将middle首先放在container的子元素第一个,然后是left,right,同时设置三者float:left;
2、middle要自适应,需要设置width:100%;让left部分和middle处于一行,要是用margin-left:-100%;
3、此时left部分会遮盖middle的内容,将middle部分收缩起来,设置其父元素container内边距,padding:0 200px;
4、left部分内容随同middle收缩,占据middle一部分,需要设置left部分使用相对定位,独立于middle,left:-200px;
5、同理right部分放置middle右部分,需要设置其相对定位、宽度和margin-left、right值。
1 | <!DOCTYPE html> |
main
left
right
- 子元素的属性
- order
- flex-grow
- flex-shrink
- flex-basis
- flex
- align-self