安卓ios开发问题

44 阅读1分钟

你遇到的问题是一个 Safari(iOS/iPadOS)特有的 background-size: cover 渲染差异,在某些情况下,背景图片在 cover 模式下不会完全覆盖容器宽度,尤其是 SVG 或分辨率较小的图像,导致容器两侧露出 background-color 的现象。

image.png

你想要SVG的白色部分覆盖大部分区域,但通过SVG的形状设计(那个斜切的角)来露出底层的蓝色背景。

.header {
  // 保持原有样式
  padding: 16px 0 0 16px;
  margin-bottom: 16px;
  height: 120px;
  background: url('../../assets/myCenterBg.svg') no-repeat center;
  background-size: cover;
  border-radius: 12px;
  width: 100%;
  background-color: #0d5efe;
  position: relative;
}

这个svg的宽高是多少?

  • 宽度(width) : 343
  • 高度(height) : 120

把svg换成png就可以好很多,但是自适应还是个问题,图片如果过长,高就会过高,导致底部没有蓝色区域;不过一般手机宽度不会过宽,除非横屏;