当前位置: 首页 > 知识库问答 >
问题:

css3 - uniapp小程序中背景图被拉伸问题如何解决?

蒯翰墨
2023-07-12

image.png

.main{
  height: auto;
  background-size: 100% 100%;
  background-attachment: fixed;
  padding-bottom: 80px;
  background-image:url("xxxxx.png")
}

安卓下目前看没问题 但是在ios下 就上下拉伸 div内部的内容长度是动态长度

求教要怎么在小程序中兼容ios 安卓的展示 图片不变形

共有3个答案

仲绍晖
2023-07-12

一般background-size是不会用100% 100%;的。因为如果你设置的宽高,跟图片的宽高不成比例的话,background-size:100% 100%会不按图片原比例铺满,因此导致变形。

背景图,一般用background-size: cover;background-position: center center,在容器居中铺满。background-size: cover会根据图片自身比例,铺满容器,因此它一定不会出现变形的情况,只是可能背景会有裁剪的情况。

所以建议你让UI出的图,保证主体内容放在正中间,这样裁剪直接裁剪到上下,但是中间主体部分没事。

邢鸿博
2023-07-12

把背景图放在滚动容器上,而不是内部的滚容区域上面。
这样就不需要使用 background-attachment: fixed 属性了。

比如说你的DOM结构是这样的

<div class="layout">
  <div class="main">
    <div class="alert-item"></div>
  </div>
</div>

那么就给 layuout 设置 height:100vh 或者 height:100%,然后设置超出滚动 overflow: auto,这样滚动容器的高度就固定了。
然后就是设置背景图了。

.layout {
   height: 100vh;
   background: url("xxxxx.png") center/cover no-repeat;
   overflow: auto;
}
龚运乾
2023-07-12
.main{
  height: 100vh;
  background-size: cover; // 或者 `contain`,取决于你的需要
  background-attachment: fixed;
  background-position: center; // 让图片在元素中间显示
  background-repeat: repeat; // 让图片重复
  padding-bottom: 80px;
  background-image:url("xxxxx.png")
}
 类似资料:
  • 问题内容: 这是我的CSS脚本 我想把整个细胞伸展 问题答案: .style1 { background: url(images/bg.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; backgrou

  • 问题内容: 我想为不同的div设置背景图像,但是我的问题是: 图片尺寸为固定值(60px)。 改变div的大小 如何拉伸背景图像以填充整个div背景? 问题答案: 加 到背景图片下方的CSS。 您还可以指定确切的尺寸,即:

  • 问题内容: 有没有一种方法可以使CSS背景拉伸或缩放以填充其容器? 问题答案: 对于现代浏览器,您可以使用以下命令完成此操作: 表示垂直或水平拉伸图像,因此它永远不会平铺/重复。 适用于Safari3(或更高版本),Chrome,Opera10 +,Firefox 3.6+和Internet Explorer 9(或更高版本)。 要使其与较低版本的Internet Explorer一起使用,请尝试

  • CSS3 背景 CSS3中包含几个新的背景属性,提供更大背景元素控制。 在本章您将了解以下背景属性: background-image background-size background-origin background-clip 您还将学习如何使用多重背景图像。 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号。 紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持

  • 我想使用CSS设置一些背景图像大小。 我可以使用下面的css代码设置大小。我一直在w3schools阅读css格式,并参考了下面的stackoverflow帖子: 我已经尝试了所有的方法,包括包含和覆盖。但是我一直在拉伸和模糊图像。我如何在不模糊图像的情况下做到这一点?仅供参考原始图像大小为

  • 我试图使用CSS设置背景图像,但原始图像被拉伸。如何保持原始图像大小,同时设置整个页面的背景? 原始图像为:原始图像 结果是:结果图像 不同的是我的网页背景比原来的要大。 任何帮助都将不胜感激!!!