12、CSS3的flex布局(弹性布局、弹性盒子模型)

简介: 12、CSS3的flex布局(弹性布局、弹性盒子模型)

1、CSS3的flex布局


flex布局 基础知识
display:flex 元素变成一个flex容器
容器内部的元素 叫做flex元素或者flex项目(flex-item),默认不换行,高度占100%
优点 比浮动布局更简洁,更易于维护


2、flex-direction属性(设置元素是横向还是纵向的 )


image.png

3、justify-content属性(设置容器水平对齐)


justify-content属性 设置元素(flex-item)左右对齐
flex-start(默认值) 左对齐
flex-end 右对齐
center 居中
space-between 两端对齐,间隔相等
space-around 两端对齐,间隔相等,最两边有间隔


4、align-items属性(设置元素垂直对齐)


align-item属性 设置元素高度是否占满
stretch(延伸)(默认值) 如果元素没有设置高度,将占满整个容器
flex-start 交叉轴(y轴)的起点对齐
flex-end 交叉轴(y轴)的终点对齐
center 交叉轴(y轴)的中点对齐



5、flex-grow属性(放大元素比例,默认为0)


/* 5、flex-grow属性:定义元素放大比例,默认值为0,空间充足时,为1时等比例补全 */
  flex-grow: 0;
/* 5.1、元素占比为3 */
  flex-grow: 3;


6、flex-shrink属性(缩小元素比例)


/* 6、flex-shrink属性:缩小元素比例 */
  /* 如果项目宽度大于容器,不会溢出,会等比例缩放 */
  flex-shrink: 2;


7、aligin-self属性(跟align-item属性一样,设置【单个元素】垂直对齐)

/* 7、多个样式:flex:flex-grow、flex-shrink、flex-basis(auto) */
  flex: 2;
/* 8、align-self属性跟algin-item属性是一样的 */
  align-self: center;

8、实例(通过flex布局实现元素水平垂直居中)


  • 8.1效果:

3ccd7f9d18614880b0be6496306a65c4.png

8.2源代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      padding: 0px;
      margin: 0px;
    }
    body,
    html {
      height: 100%;
    }
    .container {
      background-color: antiquewhite;
      height: 100%;
      display: flex;
      /* 水平居中 */
      justify-content: center;
      /* 垂直居中 */
      align-items: center;
    }
    .box {
      width: 100px;
      height: 100px;
      background-color: blueviolet;
      /* 单个垂直居中 */
      align-self: center;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="box"></div>
  </div>
</body>
</html>

9、实例(通过flex布局实现元素底部对齐)


  • 9.1、效果:

5471feed19d444fb88435552590b56d0.png


9.2、源代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      padding: 0px;
      margin: 0px;
    }
    .container {
      background-color: antiquewhite;
      width: 100%;
      height: 70px;
      position: absolute;
      bottom: 0px;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .content {
      flex-grow: 1;
    }
    .container .content img {
      height: 30px;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="content">
      <img src="image/cart-dash-fill.svg" alt="">
    </div>
    <div class="content">
      <img src="image/chat-square-dots-fill.svg" alt="">
    </div>
    <div class="content">
      <img src="image/cloud-minus-fill.svg" alt="">
    </div>
    <div class="content">
      <img src="image/envelope.svg" alt="">
    </div>
    <div class="content">
      <img src="image/facebook.svg" alt="">
    </div>
  </div>
</body>
</html>

10、flex布局笔记

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 
    将元素设置为display:flex;元素会变成一个flex容器
    容器内部的元素为flex元素或者叫flex项目(flex-item),默认不独立成行
    主轴:main axis
    交叉轴:cross axis
    */
    * {
      padding: 0px;
      margin: 0px;
    }
    .container {
      width: 200px;
      height: 200px;
      border: 1px solid black;
      /* 
      1、flex布局:弹性布局、弹性盒子布局
      元素(flex-item),默认不换行,高度占100%
      */
      display: flex;
      /* 
      2、flex-direction属性:设置元素水平垂直方向
      row(默认值):主轴为水平方向,起点在左端 
      row-reverse:主轴为水平方向,起点在右端 
      column:主轴为垂直方向,起点在上沿 
      column-reverse:主轴为垂直方向,起点在下沿 
      */
      flex-direction: row;
      /* 
      3、justify-content属性:设置元素水平对齐
      flex-start(默认):左对齐
      flex-end:右对齐
      center:居中
      space-between:两端对齐,项目之间有间隔
      space-around:两端对齐,项目之间、最两边都有间隔
      */
      justify-content: space-between;
      /* 4、algin-item属性:设置元素垂直对齐
      stretch(延伸)(默认值)  如果元素没有设置高度,将占满整个容器
      flex-start:交叉轴的起点对齐
      flex-end:交叉轴的终点对齐
      center:交叉轴的中点对齐
      */
      align-items: center;
    }
    .item {
      width: 100px;
      border: 1px solid black;
      /* 5、flex-grow属性:定义元素放大比例,默认值为0,空间充足时,为1时等比例补全 */
      flex-grow: 1;
    }
    .item2 {
      /* 5.1、元素占比为3 */
      flex-grow: 3;
      /* 6、flex-shrink属性:缩小元素比例 */
      /* 如果项目宽度大于容器,不会溢出,会等比例缩放 */
      flex-shrink: 2;
      /* 7、多个样式:flex:flex-grow、flex-shrink、flex-basis(auto) */
      flex: 2;
      /* 8、align-self属性跟algin-item属性是一样的 */
      align-self: center;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item">item1</div>
    <div class="item item2">item2</div>
    <div class="item">item3</div>
  </div>
</body>
</html>


相关文章
|
28天前
|
前端开发
如何设置 CSS 盒子模型的边框样式?
CSS盒子模型的边框样式可以通过`border`属性设置,包括边框宽度、样式和颜色。例如:`border: 2px solid red;` 设置了2像素宽的红色实线边框。也可分别设置四边,如`border-top`、`border-right`等。
|
28天前
|
前端开发 开发者
css两种盒子模型
在CSS中,有两种盒子模型:标准盒子模型和IE盒子模型(怪异盒子模型)。标准盒子模型中,`width`和`height`仅指内容区的尺寸,总宽度和高度还包括内边距、边框和外边距。IE盒子模型中,`width`和`height`包括内容区、内边距和边框,总宽度和高度仅加外边距。通过`box-sizing`属性可以切换这两种模型,`box-sizing: content-box;`表示标准盒子模型,`box-sizing: border-box;`表示IE盒子模型。
|
28天前
|
前端开发 容器
给 CSS 盒子模型添加边框时,需要注意什么?
在给CSS盒子模型添加边框时,需要注意边框的宽度、样式和颜色,以及它如何影响盒子的总尺寸和布局。边框会增加盒子的总宽度和高度,可能需要调整其他属性以保持布局的完整性。
|
1月前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
129 57
|
24天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
11天前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
|
13天前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
47 10
|
10天前
|
前端开发
CSS 盒子模型
CSS 盒子模型
19 4
|
24天前
|
容器
在 Flex 布局中,如何设置元素在侧轴上的初始对齐方式?
【10月更文挑战第22天】同时,还可以进一步探索其他 Flex 布局相关的属性和技巧,以更好地掌握 Flex 布局的强大功能,创造出更具创意和适应性的页面布局。
27 2

热门文章

最新文章

下一篇
无影云桌面