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

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

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

4.9K30

CSS弹性布局(Flex) 详解

再配合,,几乎可以完全任何页面布局 但是元素浮动后, 为了防止对它后面的同级元素产生影响, 就必须清除浮动clear 另外, 当元素之间具有层级关系时, 子元素浮动会导致父元素失去高度...弹性布局flex 我们知道,浮动布局很容易实现元素水平居中, 但是垂直居中就非常困难,实现起来很麻烦 用浮动技术来进行网页布局,是一种"无心插柳柳成萌"结果, 算是一种巧合吧 使用Flex弹性布局,...="item">item3 主轴(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 无效

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

CSS样式

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

22830

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.2K20

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

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

2K110

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.5K50

前端基础篇之CSS世界

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

2K50

CSS BFC实现多栏自适应布局

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

1.5K40

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

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

74020

前端面试题归类-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

寒假提升 | 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.5K20

CSS快速入门

明天会更好 显示效果如下所示: 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

72930

【云+社区年度征文】2020一网打尽CSS世界

块级元素 一个水平流上只能单独显示一个元素,因此理论上都可以配合clear属性来清除浮动带来影响。...width 默认值为auto,其有4种不同表现: 充分利用空间宽度默认是100%于父级容器; 收缩与包裹:浮动、绝对定位(absolute、fixed)、inline-block元素或...替换元素尺寸从而外分为3类:固有尺寸(源本身宽度和高度)、HTML尺寸(HTML标签width和height属性)和CSS尺寸(CSSwidht和height以及max-/min-)其优先级为...剩余100px则由margin: auto 补充闲置尺寸: 如果一侧定值,一侧auto,则auto为剩余空间大小; 如果两侧均是auto,则平分剩余空间。..."高度塌陷"可以让跟随内容和浮动元素在一个水平线上;行框盒子如果和浮动元素垂直高度有重叠,则行框盒子在正常定位下只会跟随浮动元素,而不会产生重叠。这是实现文字环绕重要两点!

5K11

前端面试(1)H5+css

HTML&CSS: 浏览器内核 盒模型、flex 布局、两/三栏布局、水平/垂直居中; BFC、清除浮动css3 选择器;css 继承 css3 动画、H5 新特性。...计算 BFC 高度时,浮动元素也参与计算 只要元素满足下面任一条件即可触发 BFC 特性: body 根元素 浮动元素:float 除 none 以外值 绝对定位元素:position (absolute...阻止元素浮动元素覆盖和高度坍塌 阻止浮动元素造成父级元素高度坍塌问题和遮挡其他元素问题 高度塌陷问题,这时就可以用 BFC 来清除浮动了。...background: yellow; } .container { display: flex; } .main { flex-grow: 1; /*自动占满剩余空间...extra { flex: 0 0 200px; /*指定宽度,方压缩*/ order: 1; /*越大越靠后*/ } /* flex=>flex-grow:是否占满剩余空间

1.3K20

浮动清楚浮动及position用法

float 在 CSS 中,任何元素都可以浮动浮动元素会生成一个块级框,而不论它本身是何种元素。...relative(相对定位) 相对定位是相对于该元素在文档流中原始位置,即以自己原始位置为参照物。有趣是,即使设定了元素相对定位以及偏移值,元素还占有着原来位置,即占据文档流空间。...元素原先在正常文档流中所占空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型框。...*/ margin: 0; /*删除列表默认外边距*/ padding: 0; /*删除列表默认填充*/ } /*li元素向左浮动*/ li {...*/ margin: 0; /*删除列表默认外边距*/ padding: 0; /*删除列表默认填充*/ } /*li元素向左浮动*/ li {

2.1K40
领券