flex盒子模型的grow部分子元素宽高不能用百分比

广告位招租
扫码页面底部二维码联系

在使用flex盒子模型一段时间之后,发现原创内容,盗版必究。转载请注明出处:www.tangshuang.net这货的坑真是不少,其中最最让人难理解的,转载请注明出处:www.tangshuang.net原创内容,盗版必究。就是它的flex-grow部分的子元素无原创内容,盗版必究。【版权所有,侵权必究】法使用100%的对应尺寸。下面来举个例子著作权归作者所有,禁止商业用途转载。【转载请注明来源】

【版权所有,侵权必究】【转载请注明来源】
<div style="display: flex; width: 300px; height: 200px;">
  <div style="width: 100px;"></div>
  <div style="flex-grow: 1">
  <div style="width: 100%; height: 100%; overflow: auto;"></div>
  </div>
</div>

上面的代码,我们希望创建一个盒子,盒子左【关注微信公众号:wwwtangshuangnet】【本文受版权保护】边有一个固定100px宽度的div,右边【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。说一个填满剩余空间的弹性伸缩div。而在转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】这个弹性伸缩的div内部,我们希望放一个未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。塞满整个区域的容器,容器设置了overf未经授权,禁止复制转载。【原创内容,转载请注明出处】low: auto,因此,当这个容器内的【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】内容超出可视区域时,会出现滚动条。

未经授权,禁止复制转载。【原创不易,请尊重版权】

然而,事情没有想像的那么容易,上面的wi【本文受版权保护】【版权所有】唐霜 www.tangshuang.netdth: 100%并不会按我们想象的方式【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。,使用它的父元素的宽度,而是会使用300【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.netpx。

【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】ang.net本文版权归作者所有,未经授权不得转载。

这是因为,再css标准里面,width/【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netheight如果是百分比的话,必须为它的【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】parent提供一个确定的width/h【版权所有,侵权必究】原创内容,盗版必究。eight,当然,parent的widt【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。h/height也可以从再上一层继承。而【版权所有,侵权必究】【原创不易,请尊重版权】如果上面这个条件不成立的话,parent【本文受版权保护】未经授权,禁止复制转载。会继续向上冒泡,直到找到一个确定的对应宽【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。高为止。

【本文首发于唐霜的博客】转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net【作者:唐霜】ng.net

不幸的是,flex的flex-grow是【本文受版权保护】本文版权归作者所有,未经授权不得转载。不确定的,因此,这里的width: 10【作者:唐霜】【版权所有】唐霜 www.tangshuang.net0%不能按我们想象的方式展现。

本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshua【原创不易,请尊重版权】【本文首发于唐霜的博客】ng.net转载请注明出处:www.tangshua【未经授权禁止转载】【未经授权禁止转载】ng.net

如何解决这个问题呢?那就是再在flex-【原创不易,请尊重版权】【转载请注明来源】grow元素的内部使用flex布局,它自著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net己是弹性伸缩的,而你可以使它的内部元素也本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net是弹性伸缩的:

本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshua转载请注明出处:www.tangshuang.net【未经授权禁止转载】ngnet】【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshu【未经授权禁止转载】未经授权,禁止复制转载。ang.net
<div style="display: flex; width: 300px; height: 200px;">
  <div style="width: 100px;"></div>
  <div style="flex-grow: 1; display: flex;">
  <div style="flex-grow: 1; height: 100%; overflow: auto;"></div>
  </div>
</div>

这样修改之后,就可以达到我们的目的。

原创内容,盗版必究。转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ng.net【关注微信公众号:wwwtangshua转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。ngnet】

通过这个问题的分析,基本就掌握了flex【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。里面的精髓。“弹性”代表着没有固定宽度,【作者:唐霜】【版权所有,侵权必究】而想要占满弹性容器,就必须在该容器本身实【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】现一个新的弹性盒子模型。

本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。【原创不易,请尊重版权】