您现在的位置是:网站首页> 编程资料编程资料
CSS3的Flexbox布局的简明入门指南利用CSS3的flexbox实现水平垂直居中与三列等高布局CSS3的Flexbox骰子布局的实现及问题讲解基础的CSS3弹性盒Flexbox布局使用实例css3弹性盒模型(Flexbox)详细介绍CSS3 Flexbox中flex-shrink属性的用法示例介绍10分钟理解CSS3 FlexBox弹性布局
2021-09-05
855人已围观
简介 这篇文章主要介绍了CSS3的Flexbox布局的简明入门指南,Flexbox在"布局界"可谓风光无限,近来Facebook开源的React Native也采用Flexbox来布局,需要的朋友可以参考下
Flexbox布局概念
Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防止内容溢出,确保元素拥有恰当的行为的布局方式。使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,例如对齐方式,排列方向,排列顺序(这也是Flexbox布局的核心能力所在),弹性盒中的子元素通过在各个方向放置就可以以弹性的尺寸适应父元素的显示区域。由于子元素的显示顺序和它们在代码中 的顺序是独立的,通过使用弹性盒,定位子元素变得更加简单,复杂的布局也能够使用更清晰的代码更简单的实现。独立显示被设定成只针对可见元素,而不是基于代码的声明和导航顺序。
不同于块级元素基于垂直方向布局以及行内元素基于水平方向布局,弹性盒布局的算法是方向无关的。 虽然块级元素布局在页面中工作良好,但是其定义不足以支持那种需要根据用户代理从竖直切换成水平等变化而进行方向切换、大小调整、拉伸、收缩的引用组件。不同于将要出现的网格布局针对目标为大比例布局,弹性盒布局更适用于应用组件和小比例布局。这两种都是CSS工作组为了能与不同用户代理、不同书写模式和其他弹性需要进行协作而做出的努力。
名词与基础
Flexbox是一个完整的布局模块,不是单一的属性,设计的属性有很多。Flexbox布局主要由父容器和它的直接子元素组成,其中父容器被称之为flex container(flex容器),而其直接的子元素称作为flex item(flex元素)。
Flexbox布局按照宽和高涉及的基本概念名称有main axis(主轴)和cross axis(交叉轴,和主轴垂直),主轴起点边称为main start,主轴终点边称为main end,交叉轴起点边称为cross start,交叉轴终点边称为cross end。如图:
main axis(主轴):Flex容器的主轴主要用来排列Flex元素。它不一定是水平,这主要取决于flex-direction属性。
main-start(主轴起点边) | main-end(主轴终点边):Flex元素的排列从容器的主轴起点边开始,往主轴终点边结束。
main size:Flex元素的在主轴方向的宽度或高度就是项目的主轴长度,Flex元素的主轴长度属性是width或height属性,由哪一个对着主轴方向决定。
cross axis(和主轴垂直交叉的轴):与主轴垂直的轴称作交叉轴。
cross-start(交叉轴起点边) | cross-end(交叉轴终点边):伸缩行的排列从容器的交叉轴起点边开始,往交叉轴终点边结束。
cross size:Flex元素的在交叉轴方向的宽度或高度就是项目的交叉轴长度,Flex元素的交叉轴长度属性是width或height属性,由哪一个对着交叉轴方向决定。
例子
新的 flexbox 布局模式被用来重新定义CSS中的布局方式。很遗憾的是最近规范变动过多,导致各个浏览器对它的实现也有所不同。不过我仍旧想要分享一些例子,来让你知道即将发生的改变。这些例子目前只能在支持 flexbox 的 Chrome 浏览器中运行,基于最新的标准。
使用flexbox你还可以做的更多;这里只是一些让你了解概念的例子:
使用 Flexbox 的简单布局
- .container {
- display: -webkit-flex;
- display: flex;
- }
- nav {
- width: 200px;
- }
- .flex-column {
- -webkit-flex: 1;
- flex: 1;
- }
使用 Flexbox 的牛逼布局
- .container {
- display: -webkit-flex;
- display: flex;
- }
- .initial {
- -webkit-flex: initial;
- flex: initial;
- width: 200px;
- min-width: 100px;
- }
- .none {
- -webkit-flex: none;
- flex: none;
- width: 200px;
- }
- .flex1 {
- -webkit-flex: 1;
- flex: 1;
- }
- .flex2 {
- -webkit-flex: 2;
- flex: 2;
- }
相关内容
- 深入剖析CSS变形transform(3d)纯CSS3绘制的中国联通动态logo图标样式源码使用CSS3编写类似iOS中的复选框及带开关的按钮详解CSS的Sass框架中代码注释的编写方法详解CSS中的flex容器与flex属性基础的CSS3弹性盒Flexbox布局使用实例CSS3的Flexbox布局的简明入门指南CSS3实现的页面加载中动画过度特效源码纯CSS3简单的滑动开关按钮特效源码HTML5+CSS3图片堆叠转瀑布流布局特效源码CSS制作图形变形弹出效果的示例分享
- CSS制作图形变形弹出效果的示例分享纯CSS3绘制的中国联通动态logo图标样式源码使用CSS3编写类似iOS中的复选框及带开关的按钮详解CSS的Sass框架中代码注释的编写方法详解CSS中的flex容器与flex属性基础的CSS3弹性盒Flexbox布局使用实例CSS3的Flexbox布局的简明入门指南深入剖析CSS变形transform(3d)CSS3实现的页面加载中动画过度特效源码纯CSS3简单的滑动开关按钮特效源码HTML5+CSS3图片堆叠转瀑布流布局特效源码
- 使用Loader.css和css-spinners来制作加载动画的方法css 命名:BEM, scoped css, css modules 与 css-in-js详解CSS3制作ajax loader icon实现思路及代码在vue-cli中使用css-loader实现css module
- 使用CSS3设计地图上的雷达定位提示效果纯css3实现的地图位置标记动态显示效果源码html5+css3实现的世界地图区域划分效果源码CSS3地图动态实例代码(圆圈向外扩散)
- 简单掌握CSS3中resize属性的用法CSS3的resize属性使用初探CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
- CSS裁剪属性clip使用的实例教程CSS中的clip-path区域裁剪属性使用教程浅谈css中的clip裁剪用法
- div+CSS制作类似微信对话气泡效果的实例总结DIV+CSS 清除浮动常用方法总结CSS教程之div垂直居中的多种方法关于div与>div的区别小结Divxdra1031.Dll图片溢出div问题的快速解决方法推荐如何让一个div居于页面正中间【实现方法】css三种方法实现div在浏览器水平居中一个div在浏览器水平居中的实现方法两个div叠加触发事件发生闪烁问题的解决方法
- 使用CSSgram来实现类似Instagram上的简单的滤镜效果HTML5+CSS3实现的图片多种滤镜特效源码使用CSS3配合IE滤镜实现渐变和投影的效果CSS滤镜实现的颜色渐变翻转效果 css 滤镜效果主要对HTML标记设置滤镜效果CSS中filter滤镜的学习笔记(静态滤镜及动态滤镜)HTML5+CSS3实现的鼠标滑过图片滤镜动画特效源码jQuery与CSS3实现相册图片滤镜效果浏览插件源码 滤镜使用之图片透明的css写法css滤镜兼容浏览器测试实例IE滤镜与CSS3效果(详细整理分享)
- CSS制作箭头图标代码(圆,三角形,椭圆) 详解CSS3 用border写 空心三角箭头 (两种写法)DIV+CSS实现带三角箭头的提示框 纯CSS绘制三角形箭头图案技术解析纯CSS绘制三角形箭头效果css实现的交互小三角箭头图标通过CSS边框实现三角形和箭头的实例代码
- 深入剖析CSS弹性盒模型flex实例讲解CSS3中的box-flex弹性盒属性布局CSS3弹性盒模型flex box快速入门心得(必看篇)CSS弹性盒模型flex在布局中的应用详解几个CSS3的flex弹性盒模型布局的简单例子演示基础的CSS3弹性盒Flexbox布局使用实例css3弹性盒模型(Flexbox)详细介绍css flex 弹性布局详解