【问题标题】:CSS repeat-x BUT only a part I want in an imageCSS repeat-x 但只是我想要的图像中的一部分
【发布时间】:2018-08-05 09:09:33
【问题描述】:

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

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

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

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

我想做的是如下所示: (只重复左右猫没有出现的部分。)

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

* 以下是图片链接:

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

- [第二]https://postimg.cc/image/rz8gjr4d7/

- 【原创猫背景】https://postimg.cc/image/hcenege97/

【问题讨论】:

  • 可以分享图片吗?
  • 感谢您的评论!我添加了人们可以下载图像的链接。
  • 我指的是猫的原始图像,而不是重复后的图像
  • 啊!我刚刚添加了原始的猫图像背景!
  • 好,用那张图片更新了我的答案;)

标签: css background background-size background-repeat


【解决方案1】:

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

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;
}

【讨论】:

  • 哇!这太棒了!谢谢!!
  • 你忘记了渐变 ;)
  • @G-Cyr 不,我没有忘记 :p 检查编辑,图像不同 ;)
【解决方案2】:

也可以使用渐变来绘制图像不应该重复的区域。

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*/
}

【讨论】:

猜你喜欢
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2012-05-01
  • 2019-09-26
  • 1970-01-01
  • 2018-02-22
相关资源
最近更新 更多