什么是css3的flexbox

flexbox的意思为“弹性盒子”,是CSS3引入的新的布局模式,是一种可伸缩的灵活的web页面布局方式;Flexbox布局模式能够扩展和收缩flex容器内的元素,以最大限度地填充可用空间。

什么是css3的flexbox

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

Flexbox是Flexible box 的简称(灵活的盒子容器),是CSS3引入的新的布局模式,一种可伸缩的灵活的web页面布局方式。它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来。

Flexbox具有很强大的功能,可以很轻松实现很多复杂布局,在它出现之前,我们经常使用的布局方式是浮动或者固定宽度+百分比来进行布局,代码量较大且难以理解。

flex布局之所以被称为 Flexbox ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间。与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,Flexbox 是一个更强大的方式:

立即学习“前端免费学习笔记(深入)”;

在不同方向排列元素重新排列元素的显示顺序更改元素的对齐方式动态地将元素装入容器

创建一个flex容器:

在父元素的添加这条属性:

display: flex;

登录后复制

                Document    *{        margin: 0;        padding: 0;    }    .flex-container{        background-color: #131111;        display: flex; /*让这个div变成弹性盒子*/    }    .flex-container .flex-item{        padding: 20px;        background-color: #b1ff84;    }    .flex-container .flex-item:first-child{        background-color: #f5e25f;    }    .flex-container .flex-item:last-child{        background-color: #0B5A79;     }    
1
2

登录后复制

运行效果:

什么是css3的flexbox

相当于两个div自动向左浮动,默认情况下,所有的直接子元素都被认为是 flex 项,并从左到右依次排列在一行中。如果 flex 项的宽度总和大于容器,那么 flex 项将按比例缩小,直到它们适应 flex 容器宽度。

也可以将这个两个子div排成一列,在.flex-container添加:flex-direction: column;

运行效果:

什么是css3的flexbox

如果加的属性是flex-direction: column-reverse;即两个div互换(reverse的意思就是相反的),

当在.flex-container添加justify-content: flex-end;里面所有的flex将默认向左对齐变成向右对齐:

nbsp;html>                Document    *{        margin: 0;        padding: 0;    }    .flex-container{        background-color: #131111;        display: flex;  /*让这个div变成弹性盒子*/        justify-content: flex-end;    }    .flex-container .flex-item{        padding: 20px;        background-color: #b1ff84;    }    .flex-container .flex-item:first-child{        background-color: #f5e25f;    }    .flex-container .flex-item:last-child{        background-color: #0B5A79;     }    
        
1
        
2
    

登录后复制

运行效果:

什么是css3的flexbox

当justify-content值为:center时,flex项居中对齐,其运行效果:

什么是css3的flexbox

justify-content总共有六个值前三个比较好理解:justify-start(默认,向左对齐),center,justify-end,

space-evenly : flex 容器起始边缘和第一个 flex 项之间的间距和每个相邻 flex 项之间的间距是相等。(愚人码头注:该属性以前很少看到,原因是以前浏览器不支持,chrome 也是 60 版本之后才支持。延伸一下,align-content: space-evenly 也是这个逻辑 )space-between : 任何两个相邻 flex 项之间的间距是相同的,但不一定等于第一个/最后一个 flex 项与 flex 容器边缘之间的间距;起始边缘和第一个项目之间的间距和末端边缘和最后一个项目之间的间距是相等的。space-around : flex 容器中的每个 flex 项的每一侧间距都是相等的。请注意,这意味着两个相邻 flex 项之间的空间将是第一个/最后一个 flex 项与其最近边缘之间的空间的两倍

网上流行的一张图,更好的解释了justify-content属性值的表现:

什么是css3的flexbox

也可以给指定的div让它变成向上或向下对齐:

nbsp;html>                Document    *{        margin: 0;        padding: 0;    }    .flex-container{        background-color: #131111;        display: flex;  /*让这个div变成弹性盒子*/        justify-content: center;        align-items: center;    }    .flex-container .flex-item{        padding: 20px;        background-color: #b1ff84;    }    .flex-container .flex-item:first-child{        background-color: #f5e25f;    }    .flex-container .flex-item:last-child{        background-color: #0B5A79;     }    .flex-bottom{        /* 让这个div向上 */        align-self: flex-start;    }    
                
1
        


        

3
3
    

登录后复制

运行效果:

什么是css3的flexbox

同样的,algin-item也有五个属性值:

flex-start | flex-end | center | baseline | stretch;

登录后复制

下图就是对应的效果:

什么是css3的flexbox

允许 flex 项多行/列排列

    .flex-container{        background-color: #131111;        display: flex;         flex-wrap: wrap;    }

登录后复制

默认情况下, flex 项不允许多行/列排列(nowrap),如果 flex 容器尺寸对于所有 flex 项来说不够大,那么flex 项将被调整大小以适应单行或列排列。
通过添加 flex-wrap: wrap ,可以将溢出容器的 flex 项将被排列到另一行/列中,它也有三个取值:

nowrap(默认):不换行.

什么是css3的flexbox

wrap:换行,第一行在上方

什么是css3的flexbox

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

什么是css3的flexbox

插入一段代码,看下效果:

                Document    *{        margin: 0;        padding: 0;    }    .flex-container{        background-color: #131111;        display: flex;         flex-wrap: wrap;         justify-content: space-evenly;/**/        align-content: space-evenly;    }    .flex-container .flex-item{        padding: 20px;        background-color: #b1ff84;    }    .flex-container .flex-item:first-child{        background-color: #f5e25f;    }    .flex-container .flex-item:last-child{        background-color: #0B5A79;     }    .flex-bottom{        /* 让这个div向下 */        align-self: stretch;    }    
1
2
3
4
5
6
7
8
9
10

登录后复制

运行效果:

当长度不够长时,自动换行:

什么是css3的flexbox1.PNG

当长度再短时:

什么是css3的flexbox2.PNG

拉伸 flex 项

flex-grow 只有在 flex 容器中有剩余空间时才会生效。flex 项的 flex-grow 属性指定该 flex 项相对于其他 flex 项将拉伸多少,以填充 flex 容器。默认值为1。当设置为 0 时,该 flex 项将不会被拉伸去填补剩余空间。在这个例子中,两个项的比例是 1:2,意思是在被拉伸时,第一个 flex 项将占用 1/3,而第二个 flex 项将占据余下的空间,flex-grow控制的是flex项的拉伸比例,而不是占据 flex 容器的空间比例。

nbsp;html>                Document    *{        margin: 0;        padding: 0;    }    .flex-container{        background-color: #131111;        display: flex;    }    .flex-item1{flex-grow: 0;}    .flex-item2{flex-grow: 1;}    .flex-item3{flex-grow: 2;}    .flex-container{         width:400px;        padding:10px;        background-color: #F0f0f0;       }      .flex-container .flex-item{        padding:20px 0;        text-align: center;        width:90px;        background-color: #B1FF84;       }      .flex-container .flex-item:first-child{         background-color: #F5DE25;       }      .flex-container .flex-item:last-child{         background-color: #90D9F7;       }        
                  
1
                
2
                
3
              

登录后复制

我将三个div全部设为width:90px;

运行效果:

什么是css3的flexbox3.PNG

将flex-container的width变为600时:

什么是css3的flexbox4.PNG

可以看出2 3 以不同的比例在填充剩余的空间,grow-shrink则是相反的,默认为1,即如果空间不足,该项目将缩小。

(学习视频分享:css视频教程、web前端)

以上就是什么是css3的flexbox的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2936169.html

(0)
上一篇 2025年3月11日 20:58:46
下一篇 2025年3月3日 11:00:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css3贝塞尔曲线函数有几个参数

    css3贝塞尔曲线函数cubic-bezier()有4个参数,分别指定曲线两个相互分离的中间点的坐标,语法为“cubic-bezier(x1,y1,x2,y2)”;参数x1、y1、x2、y2的取值范围为0到1。 本教程操作环境:window…

    2025年3月11日 编程技术
    200
  • css3中rgba是什么

    rgba是css3中一种定义颜色的函数,语法为“rgba(R,G,B,A)”,代表由红(R)、绿(G)、蓝(B)和透明度(A)的变化以及相互叠加来得到各式各样的颜色;参数R、G、B的取值范围为“0~255”,A的取值范围为“0~1”。 本教…

    2025年3月11日
    200
  • css3支持的滤镜是什么

    css3支持的滤镜是由filter属性定义的可视效果,包括:1、模糊滤镜,可给图像设置高斯模糊;2、亮度滤镜;3、对比度滤镜;4、投影滤镜;5、灰度滤镜;6、色相旋转滤镜;7、反转图像滤镜;8、透明度滤镜;9、饱和度滤镜;10、深褐色滤镜。…

    2025年3月11日
    200
  • css3里hsla()有什么用

    在css3中,hsla()函数用于使用色相、饱和度、亮度、透明度来定义颜色,语法“hsla(色相值,饱和度值,亮度值,透明度值)”;色相值的取值范围为“0~360”,饱和度和亮度的取值范围为“0%~100%”,透明度的取值范围为“0~1”。…

    2025年3月11日
    200
  • css3新增了哪些选择符

    css3新增的选择符有:“:first-of-type”、“:last-of-type”、“:last-child”、“:root”、“:empty”、“:target”、“:enabled”、“:disabled”、“:valid”等等。…

    2025年3月11日
    200
  • css3支持的颜色表示方法有哪些

    css3颜色表示方法有:1、用颜色英文名称来表示,例“red”表示红色;2、用十六进制来表示,例“#ffff00”;3、使用rgb()函数来表示;4、使用hsl()函数来表示;5、使用rgba()函数来表示;6、使用hsla()函数来表示。…

    2025年3月11日
    200
  • css3的变形功能包括哪种类型

    css3的变形功能包括4种类型:1、旋转,利用rotate()、rotateX()等实现;2、缩放,利用scale()、scaleX()等实现;3、倾斜,利用skew()、skewX()等实现;4、移动,利用translate()等实现。 …

    2025年3月11日 编程技术
    200
  • css3动画只循环一次用什么属性

    css3动画只循环一次用“animation-iteration-count”属性设置,该属性可以规定动画的执行次数,当该属性的值为1时,可设置动画只循环一次;语法“元素{animation-iteration-count:1;}”。 本教…

    2025年3月11日
    200
  • overflow属于css3么

    overflow属性不属于css3。overflow属性规范在css2版本中就定义了,不属于css3版本;但其相关属性“overflow-x”、“overflow-y”和“overflow-style”属于css3版本。 本教程操作环境:w…

    2025年3月11日
    200
  • css3怎么实现图片消失动画效果

    实现方法:使用“@keyframes 动画名称{}”规则和“opacity: 透明度;”语句创建图片消失动画;2、使用“图片元素{opacity: 0;animation:动画名称 时间 1;}”语句将图片消失动画应用于图片元素中即可。 本…

    2025年3月11日
    200

发表回复

登录后才能评论