老师你好,我偶然间遇到了这么一个问题:
<div class="p">
<div class="c">
<img src="https://iph.href.lu/500x100?text=500X100&fg=666666&bg=cccccc" alt="">
</div>
</div>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.p {
width: 200px;
}
.c {
height: 200px;
display: inline-flex;
}
img {
width: 100%
}
问题看起来很简单:div.p 里面有个div.c , div.c设置为display:inline-flex
, 然后div.c里面有图片,此时我们给图片设置为width:100%
, 这就陷入了一个两难的境地,因为图片的宽度由div.c决定,而div.c的宽度由它的内容(这里也就是图片来决定),这就已经绕不出去了.
然后我在Stackoverflow上用散装英语提问了,有个大佬给了我一个类似问题的回答,但是无奈英语水平有限我在那死磕了半天头都大了也不知道是怎么回事.
老师能解释下这个图片的宽度为什么和div.p一样是200px嘛?
PS: 这个场景是这样的,在使用better-scroll来实现轮播的时候,div.p 就是轮播的wrapper, div.c就是轮播的content,因为content的宽度要大于wrapper,所以我一开始想的是,让div.c为display:flex,可是这样div.c和div.p的宽度就一样了,然后我就想干脆把div.c设置为display:inline-flex,这样div.c的宽度就由内容(这里就是图片)来决定了,可是我又希望图片能占满div.c,所以我就写上了width:100%
,这样就有了上面的问题,我不明白这个宽度到底是怎么计算出来的?