首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CSS一个div内两个子元素的高度自适应

---- 设想这样一个情况:一个父元素有两个子元素,父元素的高度不确定,用子元素撑起来。 但是这会导致一个问题:各个子元素的高度不一致,为子元素添加height:100%是无效的。...这种方式需要父元素高度确定,然而父元素的高度由子元素确定。 猜想渲染时由于父元素高度不确定,会计算出各个子元素的高度再确定父元素高度,但计算子元素高度时并没有父元素高度可以参考,因此上述方法行不通。...你可以 为父元素设置固定高度 配合height:100%,两个子元素都能撑满父元素 利用span元素与布局 如果span的定位是absolute类型,那么它的高度可以等于父元素的高度。...父元素只根据相对定位的子元素决定高度,也就是说,absolute定位的span设置height:100%是有效的,父元素的高度对它来说是已知的。...这种方法下,父元素的高度仍然由最高的相对定位的子元素确定,其它元素放到span中,所以需要知道最高的子元素。 使用同色背景 虽然很简单,却很实用的方法。子元素的高度虽然不都是100%,但效果一样。

5.1K30

CSS弹性布局(Flex) 详解

再配合div>,,几乎可以完全任何页面布局 但是元素浮动后, 为了防止对它后面的同级元素产生影响, 就必须清除浮动clear 另外, 当元素之间具有层级关系时, 子元素的浮动会导致父元素失去高度...弹性布局flex 我们知道,浮动布局很容易实现元素水平居中, 但是垂直居中就非常的困难,实现起来很麻烦 用浮动技术来进行网页布局,是一种"无心插柳柳成萌"的结果, 算是一种巧合吧 使用Flex弹性布局,...="item">item3 div> 主轴(main axis): 也叫水平轴, 横轴,x轴 main start: 起始位置 main end: 结束位置 main size: 单个项目占据的主轴空间...自动缩小填充 CSS语法: .item { flex-shrink: number; /*defautl: 1*/ } 缩放规则 flex-shrink: 1: 所有项目都为1, 空间不足时,...自动等比例缩小填充主轴剩余空间 flex-shrink: 如果有一个项目为0, 其它项目为1, 则空间不足时, 它并不随其它项目缩小 注意: 该属性不支持负值, 即flex-shrink: -1 无效

1.3K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CSS样式

    、对齐和分配空白空间 弹性盒子只定义了弹性子元素如何在弹性容器内布局 CSS3弹性盒内容: 弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成 弹性容器通过设置...(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出) align-items 属性:align-items 设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式 align-items: flex-start...(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度) 子元素上的属性 flex:flex 根据弹性盒子元素所设置的扩展因子作为比率来分配剩余空间 div class="flex-container...此时可以理解为有两层页面,一层是底层的原页面,一层是脱离文档流的上层页面,所以会出现折叠现象 当所有元素同时浮动的时候,会变成水平摆放,向左或者向右 当容器不足以横向摆放内容时候,会在下一行摆放 清除浮动...浮动副作用: 当元素设置float浮动后,该元素就会脱离文档流并向左/向右浮动 浮动元素会造成父元素高度塌陷 后续元素会受到影响 div class="box">div> div class=

    26030

    【CSS】思考和再学习——关于CSS中浮动和定位对元素宽度外边距其他元素所占空间的影响

    width内,所以如果我们把inner-100percent的CSS部分改成: .inner-100percent{ width: 100%; height:80px;...间距变为20px,这时候margin已经不重叠了 五.浮动/定位对其他元素物理空间的影响 这首先要提到我们经常挂在耳边的一个词——“脱离文档流” 脱离文档流 == 不占据元素的空间(物理上) .div2...2.浮动流的起始位置由最先设置浮动的元素未浮动时的位置决定 我们再回到上述的例子,div2,div3,div4向左浮动的时候 ? 浮动流的起始位置被最先设置浮动的元素原本的位置决定了。..."div4"这个文本不是被包裹在div4这个元素里面吗,为什么被浮动元素div2“怼”下来了?刚刚不是还说好浮动 ==脱离文档流 == 不占其他元素的物理空间的吗?对啊,这里说的是元素,并不是文本。...宽 = body宽度(全屏宽度)- 230px = 除去div1部分剩余的屏幕宽度,实现右栏自适应

    2.1K110

    【CSS】布局属性:float

    拿到一张设计稿,最先想到的就是如何布局。 垂直布局?水平布局?悬浮?层叠样式? 今天我们来复习一下CSS原生的布局属性——float。 float 浮动属性。...浮动是指元素悬浮在其他元素的上方,靠左或靠右排列; 浮动元素会避开其他元素的可视内容区域; 浮动元素可以是任何元素类型,可以设置margin来控制浮动元素与其他元素内容之间的距离; 被设置了float的元素无法使用...当前元素向右向上浮动,非浮动元素向上移动; float:none; 默认值。元素不浮动,并会显示在其在文本中出现的位置。 float:inherit; 规定应该从父元素继承 float 属性的值。...结论: 可以看到,div2悬浮之后,紧接着float3上移,填充了剩余位置,填充顺序是从左到右(因为div2是float:left); div4是float:right;div4悬浮之后,div5、div6...上移,填充了剩余位置; div4-1是div4的子元素,div4-1是float:left,因此div4-1相对于div4悬浮,并悬浮在div4的左边; div4-2是div4的子元素,div4-2继承了

    1.3K20

    【Web前端】深入CSS 布局

    行内元素:行内元素不会独占一行,它们会在一行内从左到右排列,直到空间不足再换行。常见的行内元素有​​​​、​​​​、​​​​等。...子元素将自动填充这些网格单元。 2. 在网格内放置元素 你可以通过​​grid-column​​和​​grid-row​​​属性来指定元素在网格中的位置。...五、浮动(Float) 浮动是CSS中的一个经典布局方法,用于将元素从正常流中移出,并使其在父容器内左右浮动。... div> 在这个例子中,图片浮动到左侧,文本则环绕在图片右侧。 需要注意的是,浮动元素之后的内容通常会出现“塌陷”问题,即元素的父容器高度会变为0。...题1:创建一个三栏布局 使用Flexbox创建一个响应式三栏布局,其中左栏和右栏固定宽度,中间栏自适应剩余空间。

    10410

    前端基础篇之CSS世界

    margin: auto能在块级元素设定宽高之后自动填充剩余宽高。...margin: auto自动填充触发的前提条件是元素在对应的水平或垂直方向具有自动填充特性,显然默认情况下块级元素的高度是不具备这个条件的。...此时的width/height属性具有自动撑满的特性,和一个正常流的div元素的width属性别无二致。如图,设置了固定margin值的元素,宽高auto能够自动适应剩余空间: ?...同样的,设置了固定宽高的元素,如果margin: auto,则margin平分剩余空间导致垂直水平居中: ? 层叠规则 层叠规则是指当网页中的元素发生层叠时侯的遵循的规则。...层叠上下文 层叠上下文好像是一个结界,层叠上下文内的元素如果跟层叠上下文外的元素发生层叠,则比较该层叠上下文和外部元素的层叠上下文的层叠水平高低。

    2.1K50

    html、css 实现二级菜单「建议收藏」

    对于css代码,我来逐个讲解 一:解决高度坍塌(清除浮动) 因为一级菜单我是用ul li来做的,虽然ul是块级元素(display: block;)...,但是lidisplay: list-item;,多个是一行一行显示的 所以我使用了浮动,来让多个li元素排在一行 但是,li使用了浮动之后,会导致一个问题,高度坍塌: li的父元素ul是常规流元素块盒...,它的height默认值为auto,此时,它的高度不会计算不考虑浮动元素;由于ul里面只有li元素,所以会导致一个悲剧,ul元素的height为0 高度坍塌解决办法: (在html中,我给ul元素一个类选择器...: 20%,宽度百分比的值是相对于其包含块(其父元素ul)的width,而ul我没有设置宽度,它采用默认值width: auto,而且因为ul元素是常规流元素,此时,它的width会把水平剩余空间吸收掉...= 内容区 + 填充区 边框盒 border-box = 内容区 + 填充区 + 边框 所以效果上来看就是:一级菜单中的5个元素,在水平方向上各占20% 我给一级菜单的li元素还设置了一个属性:相对定位

    2.6K50

    CSS BFC实现多栏自适应布局

    二、块状元素的流体特性与自适应布局 流体特性 块状水平元素,如div元素(下同),在默认情况下(非浮动、绝对定位等),水平方向会自动填满外部的容器;如果有margin-left/margin-right...就像放在容器中的水流一样,内容区域会随着margin, padding, border的出现自动填满剩余空间,这就是块状元素的流体特性。...哈,这个很重要,也就是,虽然不与浮动交集,自动退避浮动元素宽度的距离,但,本身作为普通元素的流动性依然存在,反映在布局上就是自动填满除去浮动内容以外的剩余空间。哟,这不就是自适应布局嘛!! 2....BFC元素家族与自适应布局面面观 理论上,任何BFC元素和浮动搞基的时候,都可以实现自动填充的自适应布局。...但是,总体来看,适用的场景要比overflow:hidden广博很多。 display:table-row 对width无感,无法自适应剩余容器空间。

    1.6K40

    前端面试题归类-css

    会合并盒子的左外边缘挨着容器(包含块)的左边块级格式化上下文(BFC) 的特性BFC 内的浮动不会影响到BFC外部的元素BFC 的高度会包含其内的浮动元素BFC 不会和浮动元素重叠BFC 可以通过 overflow...清除浮动的方式:父级div定义height最后一个浮动元素后加空div标签 并添加样式clear:both。包含浮动元素的父标签添加样式overflow为hidden或auto。...在主轴居中对齐(如果主轴是x轴则水平居中)space- around 平分剩余空间space – between 先两边贴边再平分剩余空间(重要)●flex-wrap :设置子元素是否换行默认情况下,...flex-grow:定义项目的的放大比例;默认为0,即使存在剩余空间,也不会放大;所有项目的flex-grow为1:等分剩余空间(自动放大占位); flex-grow为n的项目,占据的空间(放大的比例)...区域会自动分配水平空间有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度外层div使用position:relative;高度要求自适应的div使用position

    1.6K40

    CSS 零基础到实战(05)布局、盒子模型、弹性盒子【前端就业课 第二阶段】

    若此时将浮动更改与右边那么使其元素浮动于右侧: 结果如下: 浮动会使div 脱离文档流,在之后若再加上div,将会收到之前浮动的影响使其重叠: 结果如下,黑色的div 在浮动的酒红色...,此时我们将 box 属性中的 height 去掉: 将会发现其伸缩盒子内的元素依旧有高度,这些高度为父元素的最大高度: 正常情况下,未设置伸缩盒子,其子元素将不会存在高度。...flex-grow flex-grow 属性可以使其伸缩项(子元素)按照其空间内剩余内容进行扩充,例如如下代码: 该代码我设置了其伸缩项每个宽度为 100px,那么肯定不会填充满该行,当在某一项中设置了...flex-group 后,将会发生填充;flex-grow 的默认值为 0,表示不扩充,若值为 1 将会扩充占满整个剩余空间,结果如下: 还可以设置多个伸缩项的扩充: 示例如下:...给予不同的值将会占据不同的剩余空间,相同的值则会均分。

    83020

    寒假提升 | Day10 CSS 第八部分

    浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界 浮动元素之间不能层叠 如果一个元素浮动,另一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮找左浮,右浮找右浮) 如果水平方向剩余的空间不够显示浮动元素...,浮动元素将向下移动,直到有充足的空间为止 浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出 比如行内级元素、inline-block元素、块级元素的文字内容 行内级元素、inline-block...使用clear属性 CSS属性 - clear clear属性是做什么的呢?...,维护麻烦 违反了结构与样式分离的原则(不推荐) 方法三: 给父元素添加一个伪元素 推荐; 编写好后可以轻松实现清除浮动; 方法三 – 伪元素清除浮动 给父元素增加::after伪元素 纯CSS样式解决...认识flex布局 认识flexbox Flexbox翻译为弹性盒子: 弹性盒子是一种用于按行或按列布局元素的一维布局方法 ; 元素可以膨胀以填充额外的空间, 收缩以适应更小的空间; 通常我们使用Flexbox

    1.2K20

    css笔记 - 张鑫旭css课程笔记之 margin 篇

    用来计算剩余空间: 也就是说,如果占据的空间没有盛满容器,比如内联元素就不会在margin:auto上起作用。...如果改为block元素,再加上宽度的设置,auto才会计算剩余空间。 margin自动填充width剩余部分的空间。不计算height是因为高度上不会有剩余空间。...就好像内联元素没有填充水平宽度就没有水平方向的剩余空间是一样的。...,所以auto没有办法计算我的高度剩余空间,也就不会有高度自动填充这一说了。...,我没有block化之前设置margin:0 auto;不起作用,原因是因为我内联元素的宽度不会自动填充父元素的水平区域,所以我没有剩余的水平空间可供margin分割的。

    2.6K20

    CSS快速入门

    div> div> div class="c2">明天会更好div> 显示效果如下所示: display display 属性规定元素应该生成的框的类型...*/ line-height: 200px; /*单行垂直居中*/ } float(浮动) 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。...一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。 浮动元素之后的元素将围绕它。 浮动元素之前的元素将不会受到影响。...内边距(padding) padding用在一个块内的的元素距离这个块外边的距离,例如: padding:10px 5px 15px 20px; 上填充是 10px 右填充是 5px 下填充是 15px...padding-bottom 设置元素的底部填充 padding-left 设置元素的左部填充 padding-right 设置元素的右部填充 padding-top 设置元素的顶部填充 外边距 margin

    76030
    领券