第89天 外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?
Activity
xxf1996 commentedon Jul 14, 2019
可以设置外层自适应高度的容器为
flex
布局,利用flex-basis
属性即可实现自动填满剩余高度;代码如下:在线demo
shejiJiang commentedon Jul 14, 2019
利用css3的calc函数
towavephone commentedon Jul 15, 2019
几天前正好遇到,总结如下
首先明确 html 的结构,其中 html 采用 react 写法,css 采用 less 写法
table 布局
比较 hack 的方法
margin 与 padding
absolute
此方法需要对 html 做出改动
由于绝对定位元素无高度的特性无宽度的特性,我们可以伪造一个高度足够高的绝对定位层(设置背景色,边框等属性),同时设置父标签溢出隐藏,那么其多出来的高度就不会显示了,也就实现了看上去的等高布局效果了
flex
代码最简洁
xjt31012 commentedon Jul 15, 2019
之前只想到
calc(100% - 300px)
,看了楼上的学会了flex-basis
和flex:1
这种方式seho-dev commentedon Nov 10, 2019
简单放一波阮一峰日志关于此属性的记录,避免大家去百度
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
.item {
flex-basis: | auto; /* default auto */
}
它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
一句话就是项目占据了固定的高度,再使用flex: 1填空间的时候,不会考虑固定的空间