显示 inline-block 不水平增长,child 有填充百分比
Display inline-block not growing horizontally with child having padding in per cent
当我将 img 标签放入 inline-block 元素并为其填充时,parent 没有按预期增长。
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 5%;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
以父宽度为参考的百分比值的使用。这里有一种循环,因为宽度也基于内容。
在这种情况下,浏览器忽略填充以根据内容找到容器的宽度,然后根据该宽度计算填充并添加到图像以创建溢出。浏览器不会返回更改容器宽度,因为这将是无限循环。
解决这个问题的唯一方法是考虑固定值:
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 10px;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
此处有更多详细信息:https://www.w3.org/TR/css-sizing-3/#percentage-sizing
在您使用百分比值和容器大小基于其内容(收缩以适合行为)的大多数情况下,都会发生这种情况。
另一个示例,其中图像占用其用于定义容器大小的初始宽度的 50%:
article {
background: fuchsia;
float:left;
}
img {
width:50%;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
类似情况的相关问题:
一个 hack 在 Chrome 上工作,如果想继续使用百分比填充是考虑一个不可见的动画,它会再次触发宽度的计算,并且你将不再有溢出:
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 5%;
animation:change 0.3s infinite;
}
@keyframes change{
to {
padding:5.01%;
}
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
当我将 img 标签放入 inline-block 元素并为其填充时,parent 没有按预期增长。
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 5%;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
以父宽度为参考的百分比值的使用。这里有一种循环,因为宽度也基于内容。
在这种情况下,浏览器忽略填充以根据内容找到容器的宽度,然后根据该宽度计算填充并添加到图像以创建溢出。浏览器不会返回更改容器宽度,因为这将是无限循环。
解决这个问题的唯一方法是考虑固定值:
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 10px;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
此处有更多详细信息:https://www.w3.org/TR/css-sizing-3/#percentage-sizing
在您使用百分比值和容器大小基于其内容(收缩以适合行为)的大多数情况下,都会发生这种情况。
另一个示例,其中图像占用其用于定义容器大小的初始宽度的 50%:
article {
background: fuchsia;
float:left;
}
img {
width:50%;
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>
类似情况的相关问题:
一个 hack 在 Chrome 上工作,如果想继续使用百分比填充是考虑一个不可见的动画,它会再次触发宽度的计算,并且你将不再有溢出:
article {
background: fuchsia;
display: inline-block;
}
img {
padding: 5%;
animation:change 0.3s infinite;
}
@keyframes change{
to {
padding:5.01%;
}
}
<article>
<img src="https://fakeimg.pl/412x412"/>
</article>