flex布局总结

  1. justify-content:属性用于定义如何沿着主轴方向排列子容器(水平)
  2. align-items:属性定义如何沿交叉轴排列(垂直),定义单个items
  3. align-content:定义多个items在交叉轴的排列方式
  4. 子元素的flex属性的属性值可以是无单位的数字,也可以是有单位的数字还可以是none,子容器会按照flex定义的尺寸比例自动伸缩,如果取值为none则不伸缩
  5. flex-dedication:决定主轴的方向,交叉轴的方向由主轴确定
  6. flex-flow:设置子容器沿着那个方向流动,流动到终点是否换行,是一个复合属性,相当于flex-depiction和flex-wrap的组合
  7. flex-basis:表示在不伸缩的情况下子容器的原始尺寸。主轴为横向代表宽度,主轴为纵向代表高度
  8. flex-grow:子容器弹性伸展的比例
  9. flex-shrink: 子容器收缩的比例
  10. order: order是子容器的属性,它可以更改子元素出现的顺序,数值越小,布局越排在前面

html布局知识点总结

盒模型

  1. 可以认为每个html标签都是一个方块,然后这个方块又包着几个小方块,如同盒子一层层的包裹着,这就是所谓的盒模型
  2. 盒模型分为W3C标准盒模型和IE盒模型,可以通过box-sizing设置
  3. W3C盒模型:属性width、height不包含border和padding,只包含content
  4. IE盒模型:属性width、height包含border和padding,指的是content+padding+border
  5. content-box:标准盒模型,width=content height= content
  6. border-box:IE盒模型,width = border + padding + content ; height = border + padding + content
  7. css的盒子模型由content、padding、border、margin组成。但盒子的大小由content+padding+border这几部分决定,把margin算进去的是盒子占据的位置,而不是盒子的大小
  8. 外边距重叠:当两个垂直外边距相遇时,它们将形成一个外边距,合并后的外边距高度等于两个发生合并的外边距的高度中的较大者。注意:只有普通文档流中块框的垂直外边距才会发生外边距合并,行内框、浮动框或绝对定位之间的外边距不会合并
  9. BFC(块级格式化上下文)渲染规则:
  • BFC元素垂直方向的距离会发生重叠,属于不同BFC外边距不会发生重叠
  • BFC的区域不会与浮动元素的布局重叠‘
  • BFC元素是一个独立的容器,外面的元素不会影响里面的元素。里面的元素也不会影响外面的元素
  • 计算BFC高度的时候,浮动元素也会参与计算(清除浮动)

    10. 如何创建BFC:

  • overflow为visible
  • float值不为none
  • position值不为static或relative
  • display属性为inline-block、table、table-cell、table-caption、flex、inline-flex

水平垂直居中

  1. 单行的行内元素使用:line-height=height、margin:0 auto;

  2. 多行元素可以使用table、flex等

  3. 水平居中固定宽度:

  • margin:0 auto;对float和absolute元素无效
  • position:absolute; top:50%; left:50%;margin-top:-1/2height;margin-left:-1/2width (水平垂直居中)
  • position:absolute;top:50%;  left:50%;transform:translate(-50%,-50%);(水平垂直居中)

    4. 水平居中宽度未知:

  • 将子元素设置为行内元素,然后父元素设置text-align:center;
  • position: absolute; left:50%; margin-left:-1/2height;
  • display:flex; justify-content:center;
  • float:left; position: relative;left:-50%;

     5. 垂直居中

  • 单行行内元素居中,只需要将子元素的行高等于高度就ok
  • display:flex; align-contetn:center;
  • display:table:valign:middle;
  • position: absolute; top:50%; margin-top:-1/2height;

相关文章: