【问题标题】:How to overlap image half way with container like example shown如何将图像与容器重叠一半,如所示的示例
【发布时间】:2021-08-29 08:24:57
【问题描述】:

我正在尝试创建此视图,但我不确定如何使图像与黑色背景重叠一半。我有一个 svg,其中包含汽车的全宽图形和线条中断的颜色。

我使用 Bulma 作为框架。如何让图像与黑色容器和白色容器重叠?

这是我现在得到的一个例子:https://codesandbox.io/s/bulma-autocomplete-forked-kdu4h?file=/src/index.js

【问题讨论】:

  • 请向我们展示您目前拥有的 HTML 和 CSS - 并包含实际图像,因为这需要准确定位。
  • 刚刚添加了一个指向我所拥有的示例的链接
  • 您在寻找 CSS 混合吗? css-tricks.com/basics-css-blend-modes
  • @Nitin 我只是在寻找有用的东西,我也可以使移动响应
  • 哦,好吧,您可以position:absolute 图像并将其移动以使其与容器对齐。记得添加一个父 position:relative 作为包装器,这样图像就不会根据浏览器的分辨率移动

标签: html css bulma


【解决方案1】:

要使 img 响应,您希望它保持其纵横比,同时填充与黑色元素相同的宽度,但您希望它被翻译得足够高,以使白线和黑线之间的中断始终保持在顶部容器。

这个 sn-p 通过将 img 作为黑色元素的子元素并与它的宽度相同但向上平移其高度的右侧 % 来实现这一点,黑色线从黑色元素上方开始。这几乎是其高度的 50%,实际上只是稍微多一点。

body {
  margin: 0;
  padding: 0;
  width: 100vw;
  height: 100vh;
}

div {
  width: 100vw;
  height: 50vh;
  margin: 0;
  padding: 0;
  position: relative;
  top: 40%; /* just for this demo */
  background-color: black;
}

img {
  width: 100%;
  height: auto;
  transform: translateY(-52.5%);
  margin: 0;
  padding: 0;
  position: absolute;
}
<div>
  <img src="https://i.stack.imgur.com/mhA4r.png" />
</div>

【讨论】:

【解决方案2】:

你可以有一个像这样的 2 种颜色的 svg 波

body {
  background-color: teal;
}
<svg id="wave" width="740" height="110" viewBox="0 0 740 110" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path d="M1 61.4997C243.5 -30.5003 306.5 2.9997 367 48.9997C427.5 94.9997 592.5 142.999 737 61.4997" stroke="black" stroke-width="5"/>
  <path d="M1 63.6579C244.159 -28.917 307.33 4.79235 367.995 51.0798C428.659 97.3672 594.107 145.667 739 63.6579" stroke="white" stroke-width="3"/>
</svg>

然后把它放下你的顶部容器

.block {
  height: 150px;
  width: 100%;
}

.black {
  background-color: black;
  position: relative;
}

#wave {
  float:left;
  transform: translatey(-50%);
}
<div class="block black"></div>
  <svg id="wave" viewBox="0 0 740 110" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path d="M1 61.4997C243.5 -30.5003 306.5 2.9997 367 48.9997C427.5 94.9997 592.5 142.999 737 61.4997" stroke="black" stroke-width="5"/>
    <path d="M1 63.6579C244.159 -28.917 307.33 4.79235 367.995 51.0798C428.659 97.3672 594.107 145.667 739 63.6579" stroke="white" stroke-width="3"/>
  </svg>
<div class="block white"></div>

【讨论】:

  • 谢谢你……也许我解释得不好。我得到的图像已经在线条中具有颜色差异。我想要做的是让图像在白色和黑色背景上重叠。我有白色背景的第一部分和黑色背景的下一部分。我正在尝试将图像放在两者之间。
  • 哦,好的,所以您的问题是放置图像并且没有正确的图像,对吗?
  • 正确。我已经创建了一个我现在所拥有的示例:codesandbox.io/s/bulma-autocomplete-forked-kdu4h?file=/src/…
猜你喜欢
  • 2016-09-11
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
相关资源
最近更新 更多