flexbox 弹性盒子布局

父元素:
display: -webkit-flex;


子元素:
flex:1;(设置占比)

计算规则: 父元素会将所有子元素的flex 相加求和后,算其子元素比例。


flex混合划分;
第一个子元素 width:100px;
第二个子元素 flex:2
第三个子元素 flex:1

关于不定宽高的水平垂直居中

解决方案:

① 寻常方法

父元素 position: relative;

子元素 position: absolute;

left: 50%;

top: 50%;//在父元素基础上,往左往上偏移50%

-webkit-tranform:translate(-50%,-50%);//自身元素往左往上偏移50%

② flexbox版

父元素  display: -webkit-flex;     //伸缩布局

justify-content: center;  //水平居中

align-items: center;      //垂直居中

flexbox 平常属性--父元素可设置的属性

1) flex-direction  伸缩方向,

属性值: ① row(水平默认)        ②row-reverse(水平反转)  在水平方向上伸缩时,比例按宽度走;注意:要设置高度,否则无法显示。

③ column (垂直)   ④ column(垂直反转)   在垂直方向上伸缩时,比例就是按高度走;注意: body,父元素 height:100%,否则无法显示。

2) -webkit-flex-wrap  伸缩超出内容是否换行

属性值: ① nowrap(不换行,默认)

举例说明: 父元素   width: 400px  ,有三个子元素其宽度值分别为:100px, 300px , 400px; 明显子元素的宽度和大于父元素,由于父元素设置nowrap属性值后将按1:3:4 比例重新分配400px;

② wrap(换行),仍然以上个例子为主,第三个子元素就会被换行

③ wrap-reverse,将按第二种方式垂直方向上反转

3) flex-flow : flex-direction flex-wrap ;//是上面两个属性结合在一起编写

4) justify-content  子元素的横向排版

属性值: ① flex-start   父元素伸缩开始的方向  //效果等同于 float: left

② flex-end   父元素伸缩结束的方向   //效果等同于 float: right

③ center      父元素居中

④ space-between   两边对其    //左右两个靠边,中间的根据个数划分再放置中间

⑤ space-around  根据间距划分(根据子元素个数划分父元素后,再将父元素居中放置)------适合头像排版

5)align-self  子元素各自的排版(用于子元素的属性)

详细说明: 用于覆盖Flex容器中的align-items属性,它有和align-items相同的属性值

6) align-items 父元素统一设置子元素的排版

7) align-content  父元素设置子元素换行方式

属性值: ① flex-start 按照原有的高度自动换行

8) order 排序(用于子元素)

举例说明: 如果将order:-1,将自动放在最前面

缺点: 兼容性

① IOS 可以使用最新flex布局

② android 4.4以下,只能兼容旧版的flexbox布局

③ android 4.4以上,可以使用最新的flex布局

介于兼容性内容,建议使用旧版的flexbox方案,其中属性替换如下:

新flexbox布局 旧flexbox布局
display: -webkit-flex display: -webkit-flex-box
-webkit-flex: 1 -webkit-flex-box: 1
justify-content:center box-pack: center
align-items: center box-align: center

原文地址:https://www.cnblogs.com/sunqq/p/8318955.html

时间: 2024-11-14 06:32:06

flexbox 弹性盒子布局的相关文章

React Native 之 Flexbox(弹性盒子布局)

Flexbox可以在不同屏幕上提供一致的布局结构,一般使用flexDirection.justifyContent.alignItems三个样式来辅助设计. 1.flexDirection:在组件的style中设置可以决定其子组件的主布局(主轴),默认是竖直方向 - 纵轴‘colunm’(从上到下依次排列子组件),另一个是横向 - 横轴‘row’(从左到右依次排列子组件).   2.justifyContent:决定子组件按照主轴的排列方式 A.flex-start:  从起始 -> 结尾方向开

flexbox弹性盒子布局

之前我们是这样实现一个div盒子水平垂直居中的.在知道对象高宽的情况下,对居中元素绝对百分比定位,然后通过margin偏移的方式来实现. 假如使用了flex后,实现起来就简单了,而且不需要自己去算,也不需要绝对定位,只需要通过对伸缩容器定义两个属性,justify-content定义伸缩项目沿着主轴线的对齐方式为center, align-items定义伸缩项目在侧轴(垂直于主轴)的对齐方式为center,具体如下: 关于伸缩项目的相关属性,主要是3个,order,flex(flex-grow,

CSS Flexbox 弹性盒子模型

CSS Flexbox 弹性盒子模型 设置元素样式为 display: flex 或 display: inline-flex, 让元素变成flex容器, 从而可以通过flex模式布局它的子元素. flex-direction: 值 row | row-reverse | column | column-reverse默认值 row flex-wrap: 值 nowrap | wrap | wrap-reverse默认值 nowrap flex-flow: 值 <flex-direction>

弹性盒子布局解决不规则图片的等比例缩放的利器!

我们经常遇到这种需求: 在一个固定大小(固定比例)的容器里面展示图片,图片的大小比例都不是固定的,需要按容器的比例等比例缩图片上下左右居中显示. 在没有弹性盒子布局的年代,额的做法: 1:水平居中,非常好解决,容器 text-align: center; 2:垂直居中,容器display: table-cell; 图片vertical-align: middle; 3:等比例缩放,js解决,思路: (1)如果图片宽高都没有超过容器大小,则忽略 (2)如果图片的宽度或者高度其中有一方超过容器大小,

css横向 弹性盒子布局的一些属性

<head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,initial-scale=1.0,width=device-width"/> <meta name="format-detection" content=&qu

CSS3总结五:弹性盒子(flex)、弹性盒子布局

弹性盒子容器的属性与应用 display:flex/inline-flex flex-direction flex-wrap justify-content align-items align-content flex-flow 弹性盒子子项的属性与应用 order align-self flex flex-grow flex-shrink flex-basis 弹性盒子布局 flex居中/T字布局 可动态增加导航栏 等分布局 圣杯布局 流式布局 一.弹性盒子容器的属性与应用 1.1.定义弹性盒

弹性盒子布局(flex布局)

弹性盒子布局方式:.box{ display:flex;}@设为Flex布局后,子元素的float.clear和vertical-align属性将失效@采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器".它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目".@容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做m

浅谈弹性盒子布局

 一.理解 CSS3 弹性盒布局模型 Web 应用的样式设计中,布局是非常重要的一部分.布局用来确定页面上不同组件和元素的尺寸和位置.随着响应式用户界面的流行,Web 应用一般都要求适配不同的设备尺寸和浏览器分辨率.响应式用户界面设计中最重要的一环就是布局.需要根据窗口尺寸来调整布局,从而改变组件的尺寸和位置, 以达到最佳的显示效果.这也使得布局的逻辑变得更加复杂.本文介绍的是 CSS3 规范中引入的新布局模型:弹性盒模型(flex box).弹性盒模型可以用简单的方式满足很多常见的复杂的布局需

flexbox弹性盒子模型

这几天在做移动端的web开发,遇到了一些问题,之前没有折腾过这方面的东西,这次好好吸收下 css3的flexbox--弹性盒子模型,这个盒模型决定了一个盒子在其他盒子中的分布方式及如何处理可用的空间. 优点:可以很轻松的创建自适应的浏览器窗口的流动布局或自适应字体大小的弹性布局. 1 <body> 2 <div id="box1">1</div> 3 <div id="box2">2</div> 4 <