从零开始摸索VUE,配合Golang搭建导航网站(六.CSS容器布局学习总结)

352 阅读4分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

前言

先学习了一下HTML基本的知识,时间太长了忘记了,总结一下自己了解到基本知识总结一下。

块级元素和行内元素

块级元素

块级元素主要特点:都会占用一行的空间,在页面上默认从上向下排列。
最常见元素:div,p,form,ul,h1,h2 其他特点:

  • 块级元素的高度、宽度、margin和padding设置有效,宽度没有设置时,默认为100%
  • 块级元素中可以包含块级元素和行内元素,常见的div一般可以包含基本上所有的元素

行内元素

主要特点:不会占用一行空间,多个元素在一条水平线上。 常见的行内元素:span,a,textarea,script,img,input,select
其他特点:

  • 行内元素设置的高度和宽度是无效的,由内容的大小长短决定。
  • 一般情况下,行内元素只能包含数据和其他行内元素。

CSS传统布局模型

在网页中,CSS有三种传统的布局模型,分别为:

  • 流动模型(Flow)
  • 浮动模型(Float)
  • 层模型(Layer)

简单的说明其特点:

  • 流动模型就是默认的布局模型,根据块级元素和行内元素的特点按照自己需要的方式进行布局排列。
  • 浮动模型是给元素加上float属性,可以使块级元素浮动可在一行显示。
  • 层模型采用三种定位关系,来定位元素之间的位置关系:相对定位(position: relative) ,绝对定位(position: absolute),固定定位(position: fixed)

flex布局

传统的布局基于盒状模型display 属性 + position属性 + float属性来控制, display控制元素显示状态,position控制元素之间位置关系,float控制元素的浮动特性。
2009年出了一个新方案,flex弹性布局方案,给一个元素上display: flex属性,让这个元素称为一个容器,这个容器里面的子元素一般叫项目。 容器默认存在两根轴:水平的主轴(main axis)和垂直竖直的交叉轴(cross axis)。
使用Flex 布局以后,子元素的float、clear和vertical-align属性将失效。

flex重要属性总结

flex-direction 排列方向

这个是非常重要的特性,指定容器其中的排列方向(direction)。一共有四种方向:

  • row 从左向右排列
  • row-reverse 从右向左排列
  • column 从上向下排列
  • column-reverse 从下向上排列 默认是在一行上进行排列

justify-content 对齐方式,额外空间分配

距离几个常用的,后面跟着了解再学学其他的:

  • flex-start: 默认的属性,从启点线开始顺序排列
  • flex-end:相对终点线顺序排列
  • center:居中排列,常用的
  • space-between:所有项目均匀分布,第一个项目在启点线,最后一个项目在终点线,常用的

align-items

定义容器中项目交叉轴方向的对齐方式,从左至右方向

  • stretch :默认的,交叉轴方向拉伸项目,向主轴拉伸,横着占满空间
  • flex-start:元素按交叉轴起点线对齐,只对齐,不向主轴拉伸
  • flex-end:项目按交叉轴终点线对齐,以项目的下边缘为基准只对齐,不拉伸
  • center:交叉轴方向项目中间对齐,所有项目的对于容器主轴中间对齐,对于容器来说所有项目作为单独个体上下空余的空间一样。

align-content

定义容器中元素在主轴方向的对其方式,从上至下方向,容器内必须有多行元素,这个属性才能有效果。

  • stretch :默认的,主轴方向拉伸项目,向交叉轴拉伸,竖着占满空间
  • flex-start:元素按主轴起点线对齐,只对齐,不向交叉轴轴拉伸
  • flex-end:项目按主轴终点线对齐,以项目的下边缘为基准只对齐,不拉伸
  • center:居中排列,常用的,容器中所有项目的对于容器交叉轴中间对齐,对于容器来说所有项目作为一个整体左右空余的空间一样。

总结

现在流行的是flex布局,但是作为新手还是有一定的理解难度,之前只是稍微了解,现在重新学习了一下又了解到了很多新的功能,新的思想。
今天摸索总结了一下flex布局的重要属性,没有画图,单靠文字描述不够形象,只能接下来实际操作才能加深印象了。