【问题标题】:Overlay image using css over background image which has fixed aspect ratio在具有固定纵横比的背景图像上使用 css 覆盖图像
【发布时间】:2018-01-30 12:51:52
【问题描述】:

我有这个 CSS 代码,它根据浏览器大小调整背景图像的大小,使图像的中心始终位于浏览器窗口的中心!现在的问题是我需要在中心添加另一个图像,就像圆圈中的图标一样,它也遵循保持纵横比的相同规则!

如何应用相同的代码来保持第二张图片的纵横比?主要是,如何在中心添加另一个覆盖背景的图像?我还附上了使用 Photoshop 实现的背景图像!

CSS

    #stage {
      position:fixed;
      top:-50%;
      left:-50%;
      width:200%;
      height:200%;
    }

    #stage img {
      position:absolute;
      margin:auto;
      min-width:50%;
      min-height:50%;
      top:0;
      left:0;
      right:0;
      bottom:0;
    }

    @media screen and (max-width: 512px) {
      #stage img {
      width:100%;
      height:auto;
    }

HTML

    <div id=stage>
    <img src="cutest_child_in_the_world-wallpaper-5120x3200.jpg" />
    </div>

【问题讨论】:

  • 您是否尝试过仅使用 background-size 和 background-position 来覆盖整个视口并将背景定位在中心?
  • 如果它是一个“背景图片”然后去使用 CSS background(-image) 属性。如果属于页面的真实内容,则在 HTML 中使用img。所以对于背景图片,CSS 提供了很多关于调整大小、定位等的选项!
  • @RDrazard 背景图像和调整大小工作得很好。我不能做的是将相同的规则集应用于另一个图像,该图像将以圆的大小为中心并覆盖附在此处的屏幕截图中的圆圈 (i.imgur.com/52OSjA0.png).. 我应该在我的代码中添加什么?对不起,我是个新手……从事大学项目……自 2 天以来就卡住了
  • 好吧,我认为你在 img 标签中有问题的壁纸,而不是 CSS 中的实际背景。您可以将图标放在舞台 div 中的 img 标签中,使其位于中心。将背景作为 img 放置会在其旁边放置任何额外的 img,除非您使用 z-index 和定位来强制叠加效果。
  • 谢谢大家...刚把舞台改成上课了! :)

标签: html css background overlay aspect-ratio


【解决方案1】:

如果您只想覆盖另一个与第一个完全相同的图像,那么您可以重复使用现有代码。添加另一个带有另一个图像的 div 并将#stage ID 更改为一个类。

第二张图片当然需要一些透明度才能看到第一张的任何东西......并且可能完全一样大小才能达到预期的效果。

这里是jsfiddle

【讨论】:

  • 非常感谢.. 只是问题是我要覆盖的第二张图片占据了整个屏幕.. 我希望它占整个页面的 20%.. 但应该始终保持在中心和相同的纵横比!这种情况我该怎么办?
  • 您可能可以将图片放大...在其周围添加一大堆空白/透明空间。我会将其设置为与其背后的图像完全相同的大小,以确保它们的行为方式相同。
  • 成功了!谢谢你.. :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 2018-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多