float布局
步骤
- 在子元素上加float:left和width
-
经验
留一个空间或最后一个不设置width
- 这个布局专门为ie准备,所以不需要做响应式
- ie6/7存在双倍margin bug解决办法有两个:①针对ie6/7margin减半②加一个display:inline-block
float定位必要的css代码
.clearfix:after {
content: '';
display: block;
clear: both;
}
flex布局
让一个元素变成flex容器
.container {
display: flex | inline-flex;
}
改变items的流动方向
.container {
flex-direction: row | row-reverse | column | column-reverse;
}
改变折行
.container {
flex-wrap: wrap | nowrap | wrap-reverse;
}
主轴对齐方向
.container {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
次轴对齐
.container {
align-items: flex-start | flex-end | stretch | center | baseline;
}
多行内容
.container {
align-content: flex-start | flex-end | stretch | center | space-between | space-around;
}
flexitem的属性
- order
- flex-grow
- flex-shrink
- flex-basis
- align-self
grid布局
成为container
.container {
display: grid | inline-grid;
}
行和列
.container {
grid-template-columns: 40px 50px auto 50px 40px;
grid-template-rows: 25% 150px auto;
}
item可以设置范围
.item-a {
grid-column-start: 2;
grid-column-end: five;
grid-row-start: row1-start;
grid-row-end: 3;
}
fr - free space
.container {
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr 50px 1fr 1fr;
}