SVG+CSS:在另一张图片内嵌入图片的尺寸适配问题
为什么截图嵌入iPhone边框后上下仍有空隙?
嘿,我来帮你拆解这个问题的核心原因:
宽高比不匹配是关键
你提到边框图和截图的尺寸都是1242×2688,但边框内部的屏幕区域(你设置的foregroundBox宽1090、高2540)的宽高比是1090/2540≈0.429,而截图的宽高比是1242/2688≈0.462。两个宽高比不一样,当截图按宽度适配到1090时,它的高度会按自身比例缩小到约2359,比2540的容器高度矮,自然就会上下留出空隙。图片未设置填充规则
看你的代码,foregroundBox里的截图img没有设置任何尺寸和object-fit属性,浏览器会默认按图片自身的宽高比缩放。这就导致图片只会适配容器的宽度,高度跟着比例走,无法填满容器的高度,空隙就出现了。
快速修复方案
给foregroundBox里的img加上样式,强制它填满容器同时保持比例:
.foregroundBox img { width: 100%; height: 100%; object-fit: cover; /* 或者用contain,根据你想要的显示效果选择 */ }
如果想要完全无空隙且不裁切截图,那你需要重新计算边框内部屏幕区域的正确尺寸,让它的宽高比和截图(1242:2688)一致。比如按宽度1090来算,正确的高度应该是1090*(2688/1242)≈2359,把foregroundBox的height改成2359,同时调整top值为(2688-2359)/2≈164.5,这样截图就能完美嵌入了。
内容的提问来源于stack exchange,提问作者Crashalot
相关产品推荐
相关产品推荐

