【问题标题】:CSS: Center Center Alignment and have Div to hide overflowing imagesCSS:居中对齐并让 Div 隐藏溢出的图像
【发布时间】:2023-04-08 16:08:01
【问题描述】:

我能够使用 CSS 将我的 div 和图像设置为居中(水平居中,垂直居中)对齐:

.center {
  height: 100%
}

.center-center {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
  text-align: center;
  margin: auto;
  overflow:hidden;
}

.overlay {
  position: relative;
  max-width: 100%;
  z-index: 9999999
}

.image{
  position: absolute
}
<div class="center">
  <div class =" center-center ">
    <img class="image" src="http://kb4images.com/images/picture/37509081-picture.jpg" />
    <img class ="overlay " src="http://makephotogreetings.com/upload/1456330147Happy%20Birthday%20Frame%20With%20Cup%20Cake%20and%20Your%20Photo.png"></img>
  </div>
</div>

现在,我的问题是,即使我在“center-center”类中设置了溢出:隐藏,它也会隐藏一些部分,但一侧仍然显示。我试图为框架图像分配一个高度,但它会影响定位。有谁知道这是否可能?

我已经更新了 sn-p 和代码以便更好地理解

【问题讨论】:

  • 使用真实图片以便我们看到
  • 嗯,什么真实图像?这是正在运行的 UI 的真实图像
  • 当您运行您在此处创建的 sn-p 时,您会看到图像吗? ..我什么都没看到
  • 哦,我是说截图。是的,该片段不起作用。路径或图片不同
  • 好的,我已经更新了 sn-p 以便你明白我的意思

标签: html css overflow center


【解决方案1】:

这里有很多 HTML/css 错误,比如 className 来自 javascript,css 使用 class。我添加了图像占位符,我只是摆脱了大多数样式,而是使用 flexbox 进行定位。

然后覆盖应该有绝对位置,这里它正好在第一张图像之上。

您可以更改叠加位置以进行证明,但是对于您的叠加图像,它的中间会有一个孔来显示

.center {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.overlay {
  position: absolute;
  top: 0px;
  right: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  z-index: 9999999;
}
<div class="center">
  <img src="http://via.placeholder.com/350x150">
  <img class="overlay" src="http://via.placeholder.com/350x150/fff666/000000">
</div>

【讨论】:

  • 嗨。抱歉,忘了说我现在正在做react,这就是为什么它的className,但它基本上是一样的
  • 哦,我是个傻瓜。我去 Angular 所以对反应的东西不太熟悉
  • 嗨!感谢您的帮助。对不起,如果我没有澄清这个问题。我现在已经更新了。我看到了你的 sn-p,但它只是水平居中,我也需要垂直居中。还需要从叠加图像中隐藏额外的图像。你可以在更新的 sn-p 上看到我的意思。谢谢你,希望你能帮忙:)
【解决方案2】:

感谢您提供 sn-p,让事情变得更容易。

因此,根据您对我之前的回答的 cmets,我只是以更简单的方式重新创建了这个。这是假设您可以访问 CSS 并且卡片的固定宽度为 500x500。

基本上我只是制作了一个包含“叠加”图像的图像容器,然后将此容器的背景设置为另一个图像。

.birthday-card {
  display: block;
  width: 500px;
  height: 500px;
  position: relative;
  background-image: url('http://kb4images.com/images/picture/37509081-picture.jpg');
  background-size: cover;
  background-position: center;
}

.birthday-card img {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
<div class="birthday-card">
  <img src="http://makephotogreetings.com/upload/1456330147Happy%20Birthday%20Frame%20With%20Cup%20Cake%20and%20Your%20Photo.png">
</div>

【讨论】:

  • 嗨!顺便说一句,生日卡不是固定的,它在程序上有点动态。但它总是会在顶部,并且在背面有一个图像。我这里只显示纯css和html
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2012-08-11
  • 2012-06-28
  • 2014-12-14
  • 2013-12-06
  • 1970-01-01
相关资源
最近更新 更多