首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

css div高度设置100%如何生效!

例如,一个 元素里面有一张 vertical-align 为 bottom 同时高度为 192 像素的图片,此时,该高度就是 192 像素,假设此时插入一个子元素,高度设为 100%...但是,父元素 height 值是 auto,岂不是现在高度要从原来的 192 像素变成 384 像素,然后 height:100%的子元素高度又要变成 384 像素,父元素高度 又双倍……死循环了!...那问题又来了:为何宽度支持,高度就不支持呢?规范中其实给出了答案。如果包含 块的高度没有显式指定(即高度由内容决定),并且该元素不是绝对定位,则计算值为 auto。...要知道,auto 和百分比计算,肯定是算 不了的: 'auto' * 100/100 = NaN 但是,宽度的解释却是:如果包含块的宽度取决于该元素的宽度,那么产生的布局在 CSS 2.1 中是未定义的...这里和高度的规范定义就区别明显了,高度明确了就是 auto, 高度百分比计算自然无果,width 却没有这样的说法,因此,就按照包含块真实的计算值作为 百分比计算的基数。

5.7K00

Grid布局 容器属性(一) `grid-template`系列属性

注意: 如果只定义行高,没有定义到的行,会平分剩余高度。(剩余高度为0,则后续的行高都是0) grid-template-rows: 50px 100px; 如果自定义列宽,也是平分剩余高度。...grid-template-rows: 50% 50%; grid-template-columns: 1fr 3fr; 上面两个图可以发现后两个元素消失了,这是因为我们只定义了两行,两列,没有剩余高度了...grid-template-rows: 50% 50%; grid-template-columns: 20px 1fr 2fr; 如果只有一个fr单位,那么此时会占满剩余空间 grid-template-rows...: 50% 50%; grid-template-columns: 20px 1fr; auto关键字 auto关键字表示占满剩余空间。...fr表示占据剩余空间的份数,所以可以有比例关系, auto是分配空余空间(即占满剩余空间)。 如果auto遇到fr,会被压缩成元素真实大小,fr会占满剩余空间。

1.6K10

CSS 奇技淫巧:动态高度过渡动画

每次展开的时候,过渡展开到容器本身的高度即可。 查看规范,究其原因,在于 CSS transtion 不支持元素的高度为 auto 的变化。...但是,我们又希望能够做到动态高度的过渡转换,是不是就没有办法了么? 巧用 max-height 适配动态高度 嘿嘿,这里有一个非常有意思的小技巧。...,这里的 1000px 只需要比最大高度高即可。...但是这里不能设置的太高,最高是贴近最大的使用高度即可,后面会聊到为什么。 由于 max-height 只是限制文本的最大高度,当容器的实际高度没有达到限制的最大高度,将不会继续变高,看看效果: ?...最后 好了,一个小细节,希望对你有所帮助,本文到此结束,希望对你有帮助 :) 更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

1.2K10

CSS布局(二)

CSS布局(二) 等高布局 等高布局,顾名思义,就是指子元素在父元素中高度相等的布局。 开始之前,先看一个情境。...分析以下原因:因为 main没有设置高度,且它的祖先元素 html、 body都没有设置高度,所以 main的高度就只有被上盒子和下盒子的高度撑开的那部分。既然如此,怎么可能还会有剩余空间呢?...这时候, main的高度就是屏幕高度,而中间占满剩余空间,也就是说中间自适应了。...flex布局可以通过子项目的属性 flex来设置平分剩余空间,只有一个属性没有设置宽( flex-direction: row)或高( flex-direction: column)的时候,就是占满剩余空间...而通过 grid-template-rows可以设置每一行的高度,为 auto时是自动计算,为 1fr时是占满剩余空间 html, body { height: 100%; margin: 0

96530

总结一下CSS3中的Flex布局语法

属性名 作用 stretch(默认) 表示如果子元素未设置高度或设为auto,将占满整个容器的高度 flex-start 从交叉轴的起点对齐 flex-end 从交叉轴的终点对齐 center 从交叉轴的中点对齐...所以,轴线之间的间隔比轴线与边框的间隔大一倍 stretch(默认值) 轴线占满整个交叉轴 图示说明 CSS代码 .box { align-content: flex-start | flex-end...用于子元素的属性 4.1、flex-grow 元素布局时经常会出现这样的情况,当所有子元素水平排列时的宽度之和(或者纵向排列时的高度之和)小于父元素的宽度(高度)时,则当前父元素在这个方向上就会出现剩余空间...默认值为0,表示如果存在剩余空间,也不会放大子元素的宽度(或高度)。...auto,将占满整个容器的高度 图示说明 CSS代码 .item { align-self: auto | flex-start | flex-end | center | baseline

32510

css精髓:这些布局你都学废了吗?

} main{ width: 1200px; height: 600px; background: red; margin: 0 auto; } 一栏布局(通栏) 一栏布局(通栏)头部和底部宽度一致,占满整个页面...,中间内容区域宽度较小不占满屏幕。...一般宽度较小的一列会设置为固定宽度,作为侧边栏之类的,而另一列则充满剩余宽度,作为内容区。 在后台管理系统及api文档中使用较为广泛。...实现思路很简单,侧边栏宽度固定,设置绝对定位,使其脱离文档流,内容区域通过calc()函数计算剩余宽度并设置宽度,再加一个margin-left,值为侧边栏的宽度。...background: red; margin-left: 100px; } flex属性 通过flex属性实现思路也很简单,将父元素设置为flex,侧边栏宽度固定,内容区域设置flex:1即可充满剩余区域

1K30
领券