教你快速上手Flex弹性盒布局(容器属性)(一)

简介: 教你快速上手Flex弹性盒布局(容器属性)

简介


  • Flex弹性布局
  • CSS3弹性盒(Flexilble Box或flexbox)是一种布局方式,常用与当页面需要适应不同的屏幕大小以及设备类型是能够确保元素拥有恰当的行为
  • 作用
  • 能够更加高效方便地控制元素的对齐,排列
  • 无论元素的尺寸是固定高度的还是动态的,都可以自动计算布局内元素的尺寸
  • 控制元素在页面内的布局方向
  • 按照不同的DOM所指定排序方式对屏幕上的元素重新排列
  • 好处
  • 可以让子元素排列在一行
  • 使子元素的高度一致


一,Flex布局语法


1.1,display: flex

  • 创建一个html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


  • 这是一个没有任何描述的样子

9e3f367a71306d115867f37515023424_74ee25d3f4624f7fbefd4bddd8e60d3b.png

  • 原来想要移动内容都需要浮动,现在我们在盒子里添加display: flex属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
            display: flex;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


  • 现在添加display: flex内容自动浮动,但是我们没有做float浮动,也没有做边框塌陷处理

555a1a84d84b8b780786b2d9b55df65c_0ac90aeb72ac466791a42bac8222d8c5.png

  • display: flex属性写的有两个地方:

第一个父写在容器

第二个是子元素里


结论

就这一行就能让子元素并列排在一行,并且元素高度一样!!!


二,Flex属性


  • 容器属性
  • 设置给父元素的属性
  • 项目属性
  • 设置给子元素的属性


三,容器属性


容器属性 说明
flex-direction 决定主轴的方向(即项目的排列方向)
flex-wrap 定义如果在一条轴线排不下,如何换行
flex-flow 复合属性:是flex-direction和flex-wrap属性的简写形式
justify-content 定义项目在主轴上的对齐方式
align-items 定义项目在纵轴上的对齐方式
align-content 定义多根轴线的对齐方式


3.1,flex-direction

  • 决定主轴的方向(即项目的排列方向)
  • row:横向从左到右排列(左对齐),默认的排列方式
  • row-reverse:反转横向排列(右对齐),从后往前排,最后一项排在最前面
  • column:纵向排列
  • column-reverse:反转纵向排列,从后王前排,最后一项排在上面


3.2,flex-direction:row;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
            display: flex;
            flex-direction:row;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


横向从左到右排列(左对齐),默认的排列方式

c2699c761d251f6b354f00c6ef1d36e1_370d0384724947bea8f311264b38d6b1.png


3.3,flex-direction:row-reverse;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
            display: flex;
            flex-direction:row-reverse;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


row-reverse:反转横向排列(右对齐),从后往前排,最后一项排在最前面

a8c7bd1d87e81cee5e6bf4b7c17d628f_f32da1cfaa4f42bda0e9d5b37072bbec.png


3.4,flex-direction:column;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
            display: flex;
            flex-direction:column;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


纵向排列

e8dabc9374977e609ce5c996a4fad166_692b90e45d7141e5aa59b04e3b09084b.png


3.5,flex-direction:column-reverse;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100%;
            height: 600px;
            border: 1px solid black;
            display: flex;
            flex-direction:column-reverse;
        }
        .box>div{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>第一个子元素</div>
        <div>第二个子元素</div>
        <div>第三个子元素</div>
    </div>
</body>
</html>


反转纵向排列,从后王前排,最后一项排在上面

174c1e0709a9f851b6504324387e1cb2_ac4ff80d6fb14f3694dc816c550ab14e.png


相关文章
|
2月前
|
开发者 容器
flex 布局属性在实际项目中的应用场景有哪些?
flex 布局属性在实际项目中的应用场景有哪些?
|
1月前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
109 57
|
21天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
8天前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
|
9天前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
37 10
|
21天前
|
容器
在 Flex 布局中,如何设置元素在侧轴上的初始对齐方式?
【10月更文挑战第22天】同时,还可以进一步探索其他 Flex 布局相关的属性和技巧,以更好地掌握 Flex 布局的强大功能,创造出更具创意和适应性的页面布局。
24 2
|
1月前
|
前端开发 容器
flex布局
【10月更文挑战第7天】
28 1
|
1月前
多个p标签,并让div“flex”布局,且单行溢出隐藏
多个p标签,并让div“flex”布局,且单行溢出隐藏
27 0
|
1月前
|
容器
flex布局
flex布局
44 0