CCS3 伸缩盒模型(最新)

CSS3伸缩盒对使用响应式布局的网站的开发带来了很好的实现方式。它可以在不使用浮动(float)和定位(position)的情况下实现块级(block)元素的水平排列。并且可以 把父元素的宽度按照比例分配子元素,闲话不多少直接看例子。

1、要实现伸缩盒模式必须给父元素设置:display:flex (老版本display:box 需要加对应的浏览器前缀),实现伸缩盒模式的显示方式。

2、通过设置子元素的flex-grow属性来分配比例

1 <div id="parent">
2     <div id="child1">01</div>
3     <div id="child2">02</div>
4     <div id="child3">03</div>
5 </div>

 1 #parent{
 2     width:1000px;
 3     height:200px;
 4     display:flex; /* 子元素水平排列 */
 5 }
 6 #parent div{
 7     font-size:100px;
 8     line-height:200px;
 9     text-align:center;
10 }
11 #child1{
12     width:200px;
13     background-color:orange;
14 }
15 #child2{
16     flex-grow:1; /* 分配比例因子 */
17     background-color:pink;
18 }
19 #child3{
20     flex-grow:3; /* 分配比例因子 */ 21   background-color:green; 22  }

分析:parent 的宽度为1000px,child1的宽度为200px,所以child2 + child3 = 1000 - 200 = 800px,因为 child2 和 child3 都设置了flex-grow:1 和 flex-grow:3;所以child2 的宽度为 800 * 1/(1+3) = 200px,child3 的宽度为 800 * 3/(1+3)。

注意:1、如果子元素有固定的宽度,其他子元素按比例分配剩余的宽度 即:1000 - 200 = 800px;

   2、均分总数为各个子元素中flex-grow属性值的和 即:1 + 3 = 4,各元素的宽度比例为 flex-grow / (flex-grow的总和) 即:1/(1+3),3/(1+3);

时间: 2024-08-29 17:03:05

CCS3 伸缩盒模型(最新)的相关文章

深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己

【转】深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己

Webkit Flex伸缩盒模型属性备忘

一个元素被定义display:-webkit-flex;则此元素即为伸缩盒模型中的伸缩容器,其包含的子元素是伸缩项目. flex是一个复合属性.Flexbox伸缩布局盒模型中的伸缩容器及伸缩特性定义. 由多个伸缩项目组成其具体的布局方式. 是为了呈现复杂的应用与页面而设计出来的. display:-webkit-flex; -webkit-flex: none | [flex-grow flex-shrink || flex-basis] | initial | auto none 在任何情况都

L6.Flexbox 伸缩盒模型

http://www.w3.org/TR/2014/WD-css-flexbox-1-20140325/ 1 Introduction CCS2.1中规定了四种布局模式: block layout, designed for laying out documents inline layout, designed for laying out text table layout, designed for laying out 2D data in a tabular format positi

flexible伸缩盒模型

前言 flexible box即为可伸缩的盒模型,让容器能让其子元素自由改变宽高或顺序,以最佳的方式填充容器.可以让子元素扩展来填满可用空间,缩小来防止溢出.flexible box由伸缩容器和伸缩项目组成. 兼容性:IE10+.firefox.chrome.safari 基本术语 下面是一张伸缩盒模型的概念图: 1.flex container:伸缩容器 2.flex item:伸缩项目 3.main-axis:主轴 4.main-start:主轴起点 5.main-end:主轴终点 6.ma

html5浮动、等高、弹性盒模型

1px dashed虚线 box-sizing拯救了布局 1.inherit  继承父级 2.content-box(默认)-----这个盒子的边框.内边距 这2个值是不包括在width和height中,所以外扩 3.border-box---- 这个盒子的边框.内边距 这2个值是包括在width和height中了 浮动就是让元素脱离了文档.文档为空后,所以边框就包不住了.所以我们要清除浮动 方法一:(有问题,不建议) 之前html是用clear来清除的,现在不能用这个了 <!-- 在父级里添加

Flex布局(伸缩盒布局)

Flexible Box是什么?Flexible意为可伸缩的,Box意为盒子,可以理解为一种新式的盒模型——伸缩盒模型.由CSS3规范提出,这是在原有的大家非常熟悉的block, inline-block, inline的基础上延伸出的新一代布局模式. 浏览器兼容性 作为非常现实的开发者,是否对一个新技术进行关注,首先要考虑它的浏览器兼容性如何.我们的伸缩盒模型的浏览器兼容性看起来还是相当不错的. 可以看到,现代浏览器基本上都支持了,IE10开始也支持了(IE和Safari分别加-ms-和-we

弹性盒模型(伸缩布局)

一.弹性盒模型(伸缩布局) flxible box 前言: 弹性布局,用来为盒子提供灵活性.就像是当把浏览器缩小的的时候,不会像float属性会依然往下掉,灵活性不好.而且当布局盒装模型的时候依赖于float+position+display,例如实现垂直居中就很不方便了. 一)语法 {display: flex;} /*作为块级伸缩盒子显示*/ {display: inline-flex;} /*作为内联块级伸缩盒子显示:行内的元素也能使用*/ 是不是感觉很熟悉呢?这就类似于 block 和 

CSS3伸缩布局盒模型 - Flexbox基础知识

我们知道在CSS2中,可以使用“浮动”和“定位”来改变盒子在文档流中的显示方式.这两种方式也是目前广泛使用的布局方式,但是在实践过程中会发现有些特殊的布局没法或者很难通过这两种方式来实现.在CSS3中映入了伸缩布局盒模型的概念,这样可以使得某些难以实现的布局变得非常轻松. 使用Flexbox(Flexible Box)可以很好解决以下问题: 1,作为容器的盒子的宽度.高度等可以被其子元素改变.主要体现在改变子元素的宽高来填充可用空间或者防止溢出父元素 2,可以改变子元素的布局方向或者顺序. Fl