CSS知识总结2
目录
CSS 知识总结 2:CSS布局
感觉一篇太长了,感觉要分三篇,上一遍基本知识和历史,这一篇主要说布局,下一篇说渲染以及动画。
1. CSS布局分类
1.1. 固定宽度布局
- 960
- 1000
- 1024
1.2. 不固定宽度布局
- 手机上:依靠文档流
- 文档流本身自适应,html本身就是响应式
1.3. 响应式布局:混合前两种
- PC上固定宽度
- 手机上不固定宽度
2. CSS布局思路
2.1. 从大到小
- 先定大局
- 完善各个部分的小布局
2.2. 从小到大
- 完成小布局
- 组合成大布局
3. 三种主流布局
- 兼容ie9:float布局(如果只有手机端,不用兼容ie9)
- flex布局
- gird布局 
3.1. Float布局:
3.1.1. 子元素:加float:left和width
3.1.2. 在父元素加上.clearfix
- .clearfix:after{content:'';display:block;clear:both;}
- 注意!!clearfix:after!!!!有after
3.1.3. 经验
- 留一些空间;或最后一个不设置width,只设置最大
- Float布局,专门为ie准备,不能做响应式
- Ie6/7有bug,margin会双倍
- _margin=一半
- display:inline-block
- 图片上下有多余的
- Vertical-align:top;
- Vertical-align:middle;
- 块级元素&高度固定:居中
- margin: 0 auto;会覆盖
- Margin-left: auto;Margin-right: auto;不会覆盖
- 淘宝双飞翼:过时
- 加上头尾,满足所有pc需求,手机页面不用float做
- Float要自己计算宽度,不灵活
- IE一定成功,Chrome上成功,IE8不支持header,不支持:: 
3.2. Flex布局:flex flow弹性流
3.2.1. 容器container
- 设置成flex容器:display:flex/inline-flex;
- Item流动方向:
- flex-direction:row/column/row-reverse/column-reverse
- 是否换行flex-wrap:wrap/no wrap
- 不折行一直在同行挤下去
- 主轴对齐方式:默认主轴是横轴
- Justify-content:flex-start/flex-end/center/space-between/space-around/sapce-evenly;
- Bewteen:多余空间在容器之间
- Around:多余空间在周围,左右都有,等大,相比evenly双倍
- Evenly:多余空间在周围,且大小相等
- 次轴对齐方式,默认纵轴
- Align-items:flex-start/flex-end/center/stretch
- Stretch:和最长的一样高
- 多行内容:
- Align-content:flex-start/flex-end/center/space-between/space-around/space-evenly;
- 多行与主次轴区别
- 主次轴都是针对单行,items不同,行内的两个方向对齐
- 多行是行间的对齐方式
3.2.2. item
- 选择器
- :first-child
- :nth-child(n)
- 顺序order:
- 越大越靠后,从小到大排列,负数同理
- 默认order是0
- 宽度
- Flex-grow:1
- 占一份,多余空间如何分配
- 默认0,能有多窄有多窄,防止变胖
- Flex-shrink:1
- 占一份,空间不够如何分配
- 0,按照width,防止变瘦
- 默认1
- flex-basic
- 默认auto
- 控制基准宽度,和width一样?
- Flex:
- initial:0 1 auto
- auto自动:1 1 auto
- none非弹性:0 0 auto
- align-self:某一个item特殊对齐
- Flex-grow:1
3.2.3. 经验
- 不要吧width和height写死
- 用min-width/max-width/min-height/max-height/width=xx vw(屏幕宽度)
- Flex配合margin-xxx:auto
3.3. Grid布局
3.3.1. container
- Display:grid/inline-grid
- Grid-template-columns:40px 50px auto 40px;
- 也可以是1fr 2fr
- Grid-template-area:”footer”
- Grid-gap
- Grid-column-gap:10px
- Grid-row-gap:10px
3.3.2. items
- Grid-row-start:0;
- Grid-row-end:3;
- Grid-column-start:0;
- Grid-column-end:3;
4.前端戒律
必须先给设计稿,没有就自己画,让老板同意
- 没有图不做
- 两套界面,两套设计稿
- 软件草图
- balsamiq
- figma在线版
- 墨刀
- adobe xd