flex布局在网站建设中的应用

时间:2020-05-17   访问量:0

Flex 布局的主要思想是使父容器能够调节子元素的宽度/高度(和排列顺序),从而能够醉好地填充可用空间(主要是为了适应所有类型的显示设备和屏幕尺寸)。flex布容器能够放大子元素使之尽可能填充可用空间,也可以收缩子元素使之不溢出。

醉重要的是,flexbox布局与方向无关,不同于常规布局(基于垂直的块(block)和基于水平的内联(inline))。 虽然传统布局适用于页面,但它们对于大型或复杂的应用程序布局来说缺乏灵活性(特别是在改变方向,调整大小,拉伸,收缩等方面)


FLEX布局详解:

手先我们写一个CSS

.flex-container {
  width: 90%;
  list-style: none; 
  display: flex;  
}
.nowrap  {
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
.flex-item {
  background: tomato;
  padding: 5px;
  width: 200px;
  height: 100px;
  margin: 10px; 
  line-height: 100px;
  color: white;
  font-weight: bold;
  font-size: 2em;
  text-align: center;
}
然后HTML:

  
  • 1
  •   
  • 2
  •   
  • 3
  •   
  • 4
  •   
  • 5
  •   
  • 6
  •   
  • 7
  •   
  • 8

  • 效果如图:

    image.png

    CONTAINER的属性

    水平方向

    代码解释:

    弟一:flex-wrap

    .nowrap  {

      -webkit-flex-wrap: nowrap;

      flex-wrap: nowrap;

    }

    中,我们指定了该FLEX布局是一行还是多行。

    flex-wrap 的属性nowrap  wrap, wrap-reverse三个

    nowrap (默认值) : 所有的 flex 项都会在同一行上排布,也就是我们常说的单行,或不换行。

    image.png

    wrap: flex 项将从上到下根据实际情况排布再多行上,也就是我们常说的多行,或会换行。

    我们将属性值改成:wrap看一下效果

    image.png

    因为我设置了flex-item的宽度为:200,我的笔记本只有1366,所以一行显示不下,就自动变成两行了,而上面的nowrap则强制显示为一行了。这就是区别。

    wrap-reverse: flex 项将 从下到上 根据实际情况排布再多行上折行。

    再修改成:wrap-reverse看一下效果

    image.png

    同样显示为两行,只是排列顺序变了。

     

    第二:讲一下排列顺序,即:justify-content  ,给container添加:justify-content:flex-start; 这是默认的。即从左到右依次排列。显示效果如图。

    image.png

    justify-content:flex-end;  从主轴的结束位置(main-end)开始排布,如图

    image.png

    justify-content:center;  沿主轴居中排布

    image.png

      justify-content: space-between;   这是两端对齐

    image.png

     

      justify-content: space-around 项沿主轴均匀排布。要注意的是 flex 项看起来间隙是不均匀的,因为所有 flex 项两边的空间是相等的。弟一项在容器边缘有一个单位的空间,但是在两个 flex 项之间有两个单位的间隙,因为每个 flex 项的两侧都有一个单位的间隙。

    image.png

    justify-content:space-evenly: 任何两个 flex 项之间的间距(以及到 flex 容器边缘的空间)相等。

    前提是去掉:flex-item的左右margin值。同时container也需要将padding值去掉。

    image.png

     

     

     垂直方向

    以上主要是讲了水平方向的布局。下面开始是垂直方向的上布局。默认情况下是从上到下。类似于顶部对齐。

    1:  align-itemsflex-start  按照交叉轴的开始位置(cross-start)对齐。

    image.png

     

    2: 假如我们想底部对齐。align-items:flex-end;

    image.png

    3  同样也有垂直居中对齐的方式:align-items:center;

     

    image.png

     

    4: 以文字为基线:align-items: baseline;

    image.png

    5: align-items:stretch;   (默认值) : 拉伸 flex 项以填充整个容器(这里特别要注意:如果 flex 项有尺寸属性(min-width / max-width / width / min-height / max-height / height),那么手先应用这些尺寸属性。 如果要拉伸到容器,则先清除子元素的高)

    image.png

     

     

    子元素的属性

    前面讲了外部的container的一些属性及布局,这下来讲内部元素的布局。

    以上面为例子。Container中有三个子元素:flex-item1, flex-item2, flex-item3

    image.png

    分别给三个css添加属性值:

    flex-grow:1flex-grow:3flex-grow:2

    .flex-item1 {   flex-grow: 1; }
    .flex-item2 {   flex-grow: 3; }
    .flex-item3 {   flex-grow: 2; }

    可以看到效果如图:

    image.png

    继续测试,将它复制三行。

    image.png

    效果如图:似乎这样的排版只适合单行布局。不管数量是多少,以1为单位,其他的依次是1的部数,然后占总比例的百份比。image.png

     

     


    陕西省新闻资讯
    更多行业动态,技术文档,尽在黑马
    免费获取最新方案及报价
    期待您与我们进行交流,定制您的专属企业信息化方案

    咨询热线

    合作咨询 请致电:
    15899750475
    全国客服电话(周一至周五 9:00-21:00)

    微信扫一扫

    网站 建设 设计 企业 服务 推广 互联网 程序 网页 产品 微信 创意 建站 更多 优化 做网站 维护 项目 深圳市 中心 策划 内容 上市 在线 seo 排名 成立 网站 建设 设计 企业 服务 推广 制作 互联网 程序 网页 案例 产品 微信 建站 更多 优化 做网站 维护 项目 深圳市 内容 上市 seo 排名 科技 集团 电子 域名 数字  深圳 公司 品牌 客户 技术 咨询 有限 app 创新 手机 提升 市场 建立 管理 合作 	功能 商家 注册 公众 网站建设 空间 邮箱 国内 设备 销售 国际 流程 分析 价格 	公司 开发 有限 技术 客户 行业 定制 咨询 手机 高端 管理 需求 市场 外贸 app 提升 策划 成立 在线 方式 视觉 创新 网站建设 认证 企业认证 宝安 商务 在线 快速 北京 响应 福田 广告 视频 上海 工作  网站 建设 推广 深圳 服务 公司 企业 开发 电话 网络 咨询 有限 定制 客户 行业 手机 技术 app 方案 外贸 中心 打造 龙岗 龙华 保障 需求 广州 管理 推荐 南山 高端 提升 方式