(1)原理、用法 原理:通过设置CSS3布局利器flex中的flex属性以达到多列布局。...(1)原理、用法 原理:通过设置CSS3布局利器flex中的flex属性以达到多列布局,加上给左框中的内容定宽、给右框设置flex达到不定款+自适应。...:兼容性存在一定问题 定宽+自适应+两块高度一样高 1)使用float (1)原理、用法 原理:通过过分加大左右子框的高度,辅助超出隐藏,以达到视觉上的等高。...(1)原理、用法 原理:通过设置CSS3布局利器flex中的flex属性以达到定宽+自适应+两块高度一样高。...(1)原理、用法 原理:通过设置display中的CSS3的-webkit-box属性以达到定宽+自适应+两块高度一样高。
清除浮动 浮动的问题 – 高度塌陷 由于浮动元素脱离了标准流,变成了脱标元素,所以不再向父元素汇报高度 父元素计算总高度时,就不会计算浮动子元素的高度,导致了高度坍塌的问题 解决父元素高度坍塌问题的过程...比如使容器的所有子项等分可用宽度/高度,而不管有多少宽度/高度可用。 比如使多列布局中的所有列采用相同的高度,即使它们包含的内容量不同。...于是世界就明亮了起来. flexbox在使用时, 我们最担心的是它的兼容性问题: 我们可以在caniuse上查询到具体的兼容性 2.2. flex布局重要的概念 两个重要的概念: 开启了 flex 布局的元素叫...container 以 inline-level 形式存在 flex布局的模型 2.3. flex container中的属性 flex-direction flex items 默认都是沿着 main...2.5. flex布局中justify-content最后一行布局问题
问题:图片下面会有空白存在,这是由于vertical-align: baseline;导致的。...需要注意的是:当时设置 flex 布局之后,子元素的 float、clear、vertical-align 的属性将会失效。所以也不会出现上述问题!...注意:基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿。 stretch(默认值):同一行中的所有子元素高度被调整为最大。...如果项目未设置高度或设为auto,将占满整个容器的高度 align-content:定义了多根轴线的对齐方式,如果项目只有一根轴线,那么该属性将不起作用 项目属性 改变排序顺序 order:定义项目在容器中的排列顺序...flex-shrink:定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小 flex-shrink同flex-grow属性,当子元素宽度(或高度)大于父容器元素的宽度(或高度)时,将溢出的宽度
在盒子模型中还有一个属性box-sizing,box-sizing有两个值,一个是默认状态下的content-box,另一个是border-box;这两者的区别为,默认状态下为 content-box...,此时我们将 box 属性中的 height 去掉: 将会发现其伸缩盒子内的元素依旧有高度,这些高度为父元素的最大高度: 正常情况下,未设置伸缩盒子,其子元素将不会存在高度。...在此还需要注意,在主轴为 row 时高度不需要设置,在主轴为 column 时,宽度不需要设置: 显示如下: flex-flow 若此时见到了一个属性为 flex-flow 不要慌...flex-shrink 与 flex-basis 在 flex 子元素中设置宽度可使用 flex-basls,使用 flex-basls 的优先级比 width 高,即时同时使用 width 以及 flex-basis...在 flex 子元素中不经可以设置子元素的填充,还可以设置子元素的收缩,但需要注意,生效需要子元素宽/高大于父容器最大宽高:
CSS表格能够解决所有那些我们在使用绝对定位和浮动定位进行多列布局时所遇到的问题。例如,display:table的CSS声明能够让一个HTML元素和它的子节点像table元素一样。...,所以应该是不能使用的,支持度全无 display: flex flex是一种弹性布局属性 注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。...由于某X5浏览器某些版本还不支持最新版的flex布局,所以为了保证良好的运行,建议还是使用display: box,box和flex布局的主要差别如下: 容器属性 display: box 该显示样式的新值可将此元素及其直系子代加入弹性框模型中...box-align 值:start | end | center | baseline | stretch 基本上而言是 box-pack 的同级属性。设置框的子代在框中的排列方式。...; } display: inline-flex 我发现在chrome条件下设置了inline-flex,其子元素全部变成了inline模式,设置flex并没有什么用,不知道是不是我写的有问题,目前没找到这个属性的用法
flex-start flex子元素在最左边 flex-end flex子元素在最右边 center flex子元素在正中间 space-between 平分flex容器 space-around 平分...flex容器,但是每个子元素两边是子元素间距的一半 align-content flex-start flex子元素在最上边 flex-end flex子元素在最下边 center flex子元素在纵向正中间...flex子元素在最上边 flex-end flex子元素在最下边 center flex子元素在纵向正中间 baseline 如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效...其它情况下,该值将参与基线对齐 stretch 高度100%,宽度自动 align-self flex-start flex子元素在最上边 flex-end flex子元素在最下边 center flex...将其转化为行内属性 备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题
flex-flow justify-content属性定义了项目在主轴上的对齐方式 align-items属性定义项目在交叉轴上如何对齐 align-content flexbox中的align-self...略) 三、盒子水平垂直居中方案 (回答问题的小技巧,比如这个盒子水平垂直居中的问题,可以从项目说起,说我在项目中就经常会遇到需要元素居中的问题,一开始我总用...后来学习了好用的弹性布局...再后来逛博客比如掘金啊什么的...问题描述: 实现一个div垂直居中, 其距离屏幕左右两边各10px, 其高度始终是宽度的50%。同时div中有一个文字A,文字需要水平垂直居中。...元素浮动以后会脱离正常的文档流,所以文档的普通流中的框就变的好像不存在一样。...="clear:both">div> //也可以加一个br标签 div> 复制代码 父级添加overflow属性,或者设置高度 缺点:如果有子元素想溢出,那么会受到影响。
如何应用 Flex 布局 刚开始接触到 Flex 布局的时候,那么多的属性及其含义倒不是首要问题,最大的问题是不知道如何去应用 Flex 布局。...在 Flex 容器中,默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)(不知道为什么会起这么奇怪的名字)。...子元素默认沿主轴排列,单个子元素所占的主轴空间叫做 main size,占据的交叉轴空间为 cross size。 以上就是在 Flex 布局中涉及到的一些基本概念。...默认值为0,表示如果存在剩余空间,也不会放大子元素的宽度(或高度)。...注意:当子元素的宽度/高度(width/height)属性与 flex-grow 同时存在时,元素最终的宽度/高度将由 flex-grow 属性来决定。
开启flex布局:只需在最外层容器设置display:flex;采用flex布局称为flex容器,整个网页可看成一个flex容器,所有子容器自动生成容器成员称为flex项目。...容器默认存在两根轴:水平的主轴(main axis): Flex容器的主轴主要用来配置Flex项目,默认是水平方向(x轴正向) 垂直的交叉轴(cross axis): 与主轴垂直的轴 ,称作侧轴主轴的开始位置...),占据的交叉轴空间叫做(cross size)三、容器属性1.父级属性可以简单的理解为作用外层div。...2.子级属性可以简单的理解为作用内层div。flex:是子项目在主轴的缩放比例,不指定flex属性,则不参与伸缩分配。...(垂直居中) \*/ /\* align-items: center; \*/ /\* 拉伸,用这个的时候子盒子不要给高度。
假如想要 con 在 box 中居中 div class="box"> div class="con">div> div> 绝对布局,使用 margin .box { width:...最后两个使用 flex 布局的例子中,无论父元素还是子元素的宽度和高度发生改变,都能依然能保持居中;而前面三种方法中,则需要都要改变其他值,才能保持居中。...flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap justify-content 设置子容器在主轴上的对齐方式 属性 描述 效果 justify-content...align-items: stretch (默认)如果子容器未设置高度或设为auto,子容器沿交叉轴方向的尺寸拉伸至与父容器一致 子容器 子容器一共有6个属性: order, flex-grow,...属性 效果 flex-shrink: 0 flex-basis 用来改变子容器占据主轴空间的大小 表示在不伸缩的情况下子容器占据主轴空间的大小,默认为 auto,表示子容器本来的大小。
在未设置值的时,height值为auto,body的实际计算高度为内容撑开的高度,即为0(可以将上述代码的border样式取消注释,可看到body的高度) 那么子元素block类的高度即等同于0 body...盒子的高度无效,height为0,即在浏览器上无渲染高度 浏览器的渲染规则可理解记忆为:深度优先遍历计算 子元素的相对单位的计算值都是基于父/祖先元素对应的属性值,auto是基于内容区域撑开计算所得。...2.3 BFC与margin折叠 BFC是盒模型中在屏幕上渲染展示的矩形区域,决定了浮动、盒模型渲染交互的区域。...flex-start; /* 定义项目在纵轴上的对齐方式 flex-start上,flex-end下,center居中,baseline项目中第一行文字对齐,stretch默认值高度未设置时候将撑满容器高度...: auto; /* 定义项目在分配剩于主轴空间之前的主轴占据的长度,浏览器会根据这个属性去计算是否有剩于的空间 */ /* flex: auto; 是flex-grow、flex-shrink
flex在css布局中的是一个经常考察的知识点,虽然垂直居中问题已经问得快烂大街了,flex你虽然总是在用,但是总会有你不知道的盲点 本文是一篇关于flex布局相关的总结笔记,遇到比较刁钻的问题,就当个知识拓展吧...在阅读本文之前,主要从以下几个方向去探讨flex flex布局又称为弹性布局,有何特征 关于flex的一些属性值 flex如何实现垂直居中,如何实现一个对角排列布局 flex特征 当我们对一个元素设置...(子元素未设置高度) } 关于item项目设置的属性 order 决定子项目的顺序,order越小,越是排列在最前面 假设现在有个需求,css实现简单的跑马灯 div class="wrap-box...flex-shrink 当前item的缩小比例,默认的是0 align-self 能控制单个item的排列,这个属性通常不是很常用,面试曾被这个css的属性布局问题给跪了 面试题大概是这样的,3个子...当一个父级元素设置flex后,子级的浮动、clear,vertain-align属性都会失效,默认所有子级元素水平排列 flex的一些特性,比如放大flex-glow、缩小flex-shrink,还有影响水平轴排列
hack:display:inline;将其转化为行内属性。 设置较小高度标签(一般小于10px),在IE6,IE7中高度超出自己设置高度。...box重叠 BFC是一个独立容器,容器里面的子元素不会影响到外面的元素 计算BFC的高度时,浮动元素也参与计算高度 元素的类型和display属性,决定了这个Box的类型。...0 flex-grow 属性:定义项目的放大比例,即使存在空间,也不会放大 flex-shrink 属性:定义了项目的缩小比例,当空间不足的情况下会等比例的缩小,如果 定义个 item 的 flow-shrink...元素浮动以后会脱离正常的文档流,所以文档的普通流中的框就变的好像浮动元素不存在一样。 优点 这样做的优点就是在图文混排的时候可以很好的使文字环绕在图片周围。...overflow属性,或者设置高度 建立伪类选择器清除浮动 //在css中添加:after伪元素 .parent:after{ /* 设置添加子元素的内容是空 */ content: '
我当时写过一个因为子元素浮动让div自适应高度的解决办法,使用的是css方法解决的。...在没有测试之前,有的人可能会认为.main会占据整个一行,但是,测试结果是,它会根据子元素所有的div大小自适应宽度和高度 ---- 2、属性align-items 项目中的应用 属性值 解释 flex-start...再次注意: stretch,子元素设置高度为auto,不能固定高度才能在父容器中被拉伸 ?...值,向宽度和高度内增加 box-zizing: border-box,不会影响原元素的高度与宽度 *box-sizing:border-box,如果想在一个div中放多个图片并且平均分配宽度,如果不设置这个属性图片就会全部充满这个行...到150px,并且透明度由1变成0 如果还想添加别的属性,只需在.block中设置初始的属性,在.block:hover中设置要达到的最终值 6、总结 css3有很多属性都特别好用,这是我知道的几个实用属性
Flex(Flexible Box):弹性布局 注:设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。...优点: 是浏览器提倡的一种布局模型 更加灵活简便 可以避免脱标问题 弹性盒子中行内元素也能设置宽高 指定flex布局: 容器: display:flex;...5. flex-basis属性 定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为 auto ,即项目的本来大小。...height: 300px; border: 1px solid #000; } .box div { /* 子盒子没有设置宽度...*/ /* 也就是剩余空间宽度为350-50 = 300px 2盒子占100px 3盒子占200px */ .box div:nth-child(2) {
BFC解决了什么问题?解决自适应两栏布局问题:利用BFC的区域不会与float box重叠的规则。解决浮动后塌陷问题:利用计算BFC的高度时,浮动元素也参与计算规则。...none属性后,HTML元素(对象)的宽度、高度等各种属性都将“丢失”;而使用visibility:hidden属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置任然存在...,再平分剩余空间stretch 设置子项元素高度平分父元素高度●align-items :设置侧轴上的子元素排列方式(单行)该属性是控制子项在侧轴(默认是y轴).上的排列方式在子项为单项(单行)的时候使用...,flex-grow和flex-shrink在flex属性中不规定值则为1,flex-basis为0%。...(一般小于10px),在IE6,IE7中高度超出自己设置高度。
: (1)CSS2.1规范中的一个概念 (2)它是指页面中的一块渲染区域,并拥有一套渲染规则,它决定了其子元素将如何定位,以及与其他元素的关系和相互作用。...补充内容: 什么是块级盒子(block-level box): block-level box: display属性为block, list-item, table的元素,会生成block-level...(3)生成BFC元素的子元素中,每一个子元素的margin与包含块的左边界border相接触(对于从左到右的格式化,否则相反),即使存在浮动也是如此; (4)BFC的区域不会与float元素区域重叠 可应用到两栏布局中...(6)计算BFC的高度时,浮动元素也参与计算 可应用到解决浮动元素的父元素高度塌陷问题中: 如果父元素的子元素都是浮动元素,那么父元素的高度会发生高度塌陷(height:0)。...布局的内容,可戳我之前的两篇文章: 详解CSS的Flex布局 实例详解:Flex布局(二) 4.3解决浮动元素的父元素高度塌陷的问题 举例: <!
它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"; 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。...属性和flex-wrap属性的简写形式,默认值为`row nowrap; 简化:是子元素的排列方式和换行方式的简写; 格式: .box { flex-flow: flex-direction> ||...flex-wrap>; } justify-content属性: justify-content属性定义了项目在主轴上的对齐方式; 简化:设置子元素的水平对齐方式; 格式: .box { justify-content...所以,项目之间的间隔比项目与边框的间隔大一倍; align-items属性: align-items属性定义项目在交叉轴上如何对齐; 简化:设置子元素的垂直对齐方式; 格式: .box { align-items...所以,轴线之间的间隔比轴线与边框的间隔大一倍; stretch(默认值):轴线占满整个交叉轴(高度占满整个容器); 5、项目(子元素)的属性 6个属性概述: order:按照数字大小设置各个子元素之间的排列方式
网页布局在前端开发中是一个很重要的点,在传统布局解决方案中,一般是基于盒状模型,依赖 display 属性 + position属性 + float属性。...09年的时候,W3C提出了flex布局,相比于现在已经过去将近10年的时间了,使用上应该可以放心,但是如果你面对的是需要解决万恶的IE问题就需要考虑一下了,下面来看一下它目前的兼容情况 ?...flex概念 在说用法之前先说一下具体的概念,flex全称是flexbox(Flexible Box),即弹性盒子,这一模块目的是在提供一个更加有效的的方式制定、调整和分布一个容器里的项目布局,即使他们的大小是未知或者是动态的...也就是说采用flex布局的元素就是flex容器(display:flex或inline-flex),他的所有子元素(注意是子元素,而不包含后代节点)称为flex项目 在Flexbox布局中有水平的主轴(...="box-child" style="order:0">4div> div> 如上方式,显示的顺序将变为4132 2.flex-grow属性 该属性定义项目的放大比例,默认为0,即如果存在剩余空间
flex的一些属性 CSS3中引入了另一种框--flexbox,flexbox有一些block和inline不同的性质,比如: 自适应子元素(flex item,又称伸缩项目)的宽度 伸缩项目的float...设置flexbox的兼容性 将一个容器设置为flexbox(又称伸缩容器)很简单,但是却存在一些兼容性的问题,比如在IE10下,早期的webkit系列中,都与标准有一些差异,但是我们可以通过less...order也有兼容性的问题,可以在less下这样设置 .order(@val) { -webkit-box-ordinal-group: @val; -moz-box-ordinal-group...主轴长度、主轴长度属性:伸缩项目的在主轴方向的宽度或高度就是项目的主轴长度,伸缩项目的主轴长度属性是width或height属性,由哪一个对着主轴方向决定。...侧轴长度、侧轴长度属性:伸缩项目的在侧轴方向的宽度或高度就是项目的侧轴长度,伸缩项目的侧轴长度属性是「width」或「height」属性,由哪一个对着侧轴方向决定。
领取专属 10元无门槛券
手把手带您无忧上云