ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

flex布局

2022-05-18 10:34:50  阅读:133  来源: 互联网

标签:flex 元素 space 布局 100px 宽度 对齐


flex布局

他的6个属性

以下6个属性设置在容器上。

  • flex-direction 子元素的排列方向
  • flex-wrap 换行的问题
  • flex-flow 前面2个的整合,默认值(row nowrap),那个是不换行的nowrap
  • justify-content 调整子元素的对齐方式
  • align-items 在交叉轴的对齐方式,一根
  • align-content 在交叉轴的对齐方式,多根
备注:align-content主要用于多跟轴线的对齐方式,它跟allign-item的区别在于它试用于多跟对称轴,例如下图中的项目内容都是三行,三根对称轴,他们全部的对称方式跟allign-item一样


flex-direction属性

这个是弄排版方向的

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
  • row(默认值):主轴为水平方向,起点在左端。

    image-20220517222416031

  • row-reverse:主轴为水平方向,起点在右端,相反位置,这里就不在演示了

  • column:主轴为垂直方向,起点在上沿。

image-20220517222546591

  • column-reverse:主轴为垂直方向,起点在下沿。


flex-wrap属性

api的选项选项     英文解释:    wrap 包装
.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}

image-20220517223410066

  • nowrap(默认):不换行。

image-20220517222834855

  • wrap:换行,第一行在上方。

image-20220517222911146

  • wrap-reverse:换行,第一行在下方。

image-20220517222950817



flex-flow属性

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
.box {
  flex-flow: <flex-direction> <flex-wrap>;
}


justify-content属性

作用是项目在主轴的对齐方式:
对容器进行display: flex布局之后,可通过justify-content来调整容器中子元素整体的布局的位置

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

/* 均匀排列每个元素  首个元素放置于起点,末尾元素放置于终点 */
  justify-content: space-between;


api解释:
    flex-start(默认值):左对齐
    flex-end:右对齐
    center: 居中
    space-between:两端对齐,项目之间的间隔都相等。
    space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
  • flex-start(默认值):左对齐

image-20220518092928646

space-between:两端对齐,项目之间的间隔都相等

这个在导航栏里面还是用的比较多的

image-20220518093001928

  • center

image-20220518092905952

  • sprace-aroud
- space-around:把空间分配到每个项目两边,每个项目两边间距相等,相邻两个项目间隔为单边的两倍;

image-20220518092825324



align-items属性

-它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。
    flex-start:交叉轴的起点对齐。
    flex-end:交叉轴的终点对齐。
    center:交叉轴的中点对齐。(交叉轴在中点)
    baseline: 项目的第一行文字的基线对齐。
    stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

菜鸟教程这个还是比较形象的

img



align-content属性

flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴
  • space-between

image-20220518100616275



测试源码

<!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>
        *{
            margin: 0;
            padding: 0;
        }
        .container {
            background-color: lightgray;
            display: flex;
            flex-flow: row wrap;
            justify-content: space-between;
            align-content: space-between;
            height: 30vh;
            width: 30vw;
            /* padding: 1rem; */
        }
        .item {
            background-color: lightskyblue;
            border: 1px solid red;
            width: 75px;
            height: 35px;
            margin: 0 3px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item">item1</div>
        <div class="item">item2</div>
        <div class="item">item3</div>
        <div class="item">item4</div>
        <div class="item">item5</div>
        <div class="item">item6</div>
        <div class="item">item7</div>
        <div class="item">item8</div>
        <div class="item">item9</div>
        <div class="item">item10</div>
        <div class="item">item11</div>
        <div class="item">item12</div>
        <div class="item">item13</div>
        <div class="item">item14</div>
        <div class="item">item15</div>
      </div>
</body>
</html>




其他属性

这些我还没有用过.............,其他的就不看了

flex-grow 属性

这个就是有剩余空间,可以去分一点,默认不分,放大

该属性来设置,当父元素的宽度大于所有子元素的宽度的和时(即父元素会有剩余空间),子元素如何分配父元素的剩余空间。
flex-grow的默认值为0,意思是该元素不索取父元素的剩余空间,如果值大于0,表示索取。值越大,索取的越厉害。
  
  
  举个例子: 父元素宽400px,有两子元素:A和B。A宽为100px,B宽为200px。 则空余空间为 400-(100+200)= 100px。 
  如果A,B都不索取剩余空间,则有100px的空余空间。 如果A索取剩余空间:设置flex-grow为1,B不索取。
  则最终A的大小为 自身宽度(100px)+ 剩余空间的宽度(100px)= 200px 如果A,B都设索取剩余空间,A设置flex-grow为1,B设置flex-	grow为2.
  则最终A的大小为 自身宽度(100px)+ A获得的剩余空间的宽度(100px (1/(1+2))),最终B的大小为 自身宽度(200px)+ B获得的剩余空间的宽度(100px (2/(1+2)))


flex-shrink属性

缩小

该属性来设置,当父元素的宽度小于所有子元素的宽度的和时(即子元素会超出父元素),子元素如何缩小自己的宽度的。
  flex-shrink的默认值为1,当父元素的宽度小于所有子元素的宽度的和时,子元素的宽度会减小。值越大,减小的越厉害。如果值为0,表示不减小。
  举个例子: 父元素宽400px,有两子元素:A和B。A宽为200px,B宽为300px。 则A,B总共超出父元素的宽度为(200+300)- 400 = 100px。 
  如果A,B都不减小宽度,即都设置flex-shrink为0,则会有100px的宽度超出父元素。
  如果A不减小宽度:设置flex-shrink为0,B减小,设置flex-sharnk:1。则最终B的大小为 自身宽度(300px)- 总共超出父元素的宽度(100px)= 200px,而A的宽度则仍然为200px不变

标签:flex,元素,space,布局,100px,宽度,对齐
来源: https://www.cnblogs.com/rain-me/p/16283683.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有