2

我用于background-size: cover移动屏幕尺寸。

但是,对于桌面,如果我使用background-size: cover,我看不到图像中的猫。因为,我的图像的原始尺寸是高度比宽度长得多。

所以,我想只重复我的图像中没有出现猫的部分。但是,如果我使用background-size: contain& background-repeat: repeat-x,我会看到以下内容:

当前的 (图中的猫出现了 3 次。)

我想要做的是类似于以下内容:( 我想要的是 只重复左右猫没有出现的部分。)

我用谷歌搜索了很多并阅读了 StackOverflow 中的几篇文章。但是,我找不到我想要的答案。如果您能给我任何建议,我将不胜感激!

* 以下是图片链接:

- [1st] https://postimg.cc/image/6pku8wgcr/

- [2nd] https://postimg.cc/image/rz8gjr4d7/

- [原始猫背景] https:// /postimg.cc/image/hcenege97/

4

2 回答 2

3

想法是使用多个相互叠加的背景来模拟这样的效果:

body {
 margin:0;
 min-height:500px;
 height:100vh;
 background:
   /*the main background*/
   url(https://picsum.photos/3744/5616?image=742) center,
   /*repeat the left part*/
   url(https://picsum.photos/3744/5616?image=742) 40% 50%,
   url(https://picsum.photos/3744/5616?image=742) 30% 50%,
   url(https://picsum.photos/3744/5616?image=742) 20% 50%,
   url(https://picsum.photos/3744/5616?image=742) 10% 50%,
   url(https://picsum.photos/3744/5616?image=742) 0% 50%,
   /*repeat the right part*/
   url(https://picsum.photos/3744/5616?image=742) 60% 50%,
   url(https://picsum.photos/3744/5616?image=742) 70% 50%,
   url(https://picsum.photos/3744/5616?image=742) 80% 50%,
   url(https://picsum.photos/3744/5616?image=742) 90% 50%,
   url(https://picsum.photos/3744/5616?image=742) 100% 50%;
  background-repeat:no-repeat;
  background-size:contain;
}

根据图像,您可以调整背景的百分比和数量以控制重复。这是对第一个代码的改进,通过减少重复的步骤来隐藏左侧不需要的部分:

全屏运行并比较这段代码和之前的代码

body {
 margin:0;
 min-height:500px;
 height:100vh;
 background:
   /*the main background*/
   url(https://picsum.photos/3744/5616?image=742) center,
   /*repeat the left part more than the right*/
   url(https://picsum.photos/3744/5616?image=742) 45% 50%,
   url(https://picsum.photos/3744/5616?image=742) 40% 50%,
   url(https://picsum.photos/3744/5616?image=742) 35% 50%,
   url(https://picsum.photos/3744/5616?image=742) 30% 50%,
   url(https://picsum.photos/3744/5616?image=742) 25% 50%,
   url(https://picsum.photos/3744/5616?image=742) 20% 50%,
   url(https://picsum.photos/3744/5616?image=742) 15% 50%,
   url(https://picsum.photos/3744/5616?image=742) 10% 50%,
   url(https://picsum.photos/3744/5616?image=742) 5% 50%,
   url(https://picsum.photos/3744/5616?image=742) 0% 50%,
   /*repeat the right part*/
   url(https://picsum.photos/3744/5616?image=742) 60% 50%,
   url(https://picsum.photos/3744/5616?image=742) 70% 50%,
   url(https://picsum.photos/3744/5616?image=742) 80% 50%,
   url(https://picsum.photos/3744/5616?image=742) 90% 50%,
   url(https://picsum.photos/3744/5616?image=742) 100% 50%;
  background-repeat:no-repeat;
  background-size:contain;
}

更新

这是您的图像的代码:

body {
 margin:0;
 min-height:500px;
 height:100vh;
 background:
   /*the main background*/
   url(https://i.stack.imgur.com/76q2w.png) center,
   /*repeat the left part*/
   url(https://i.stack.imgur.com/76q2w.png) 40% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 30% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 20% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 10% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 0% 50%,
   /*repeat the right part*/
   url(https://i.stack.imgur.com/76q2w.png) 60% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 70% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 80% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 90% 50%,
   url(https://i.stack.imgur.com/76q2w.png) 100% 50%;
  background-repeat:no-repeat;
  background-size:contain;
}

于 2018-08-05T09:29:31.467 回答
1

渐变也可用于绘制图像不应重复的区域。

html {
  min-height:100vh;
  background-image:
   url(https://s25.postimg.cc/kw0l49gz3/original.png), 
   linear-gradient(to top, rgb(116, 164, 61) 27.5%, gray 27.5%, gray 27.6%, rgb(67, 97, 32) 27.6%);
  background-position:center center;
  background-repeat:no-repeat;
  background-size: auto 100%;
}

如果可以匹配,可以使用图像本身的一部分并进行拉伸。

html {
  min-height:100vh;
  background-image:
   url(https://s25.postimg.cc/kw0l49gz3/original.png), 
   url(https://s25.postimg.cc/kw0l49gz3/original.png );
  background-position:center center, 10% center ;
  background-repeat:no-repeat;
  background-size: auto 100%, 2000% 100%;/* stretch part of image behind the other one with a hudge value*/
}

于 2018-08-05T10:01:00.590 回答