【问题标题】:Where is my code for Overlaying transparent image over real image going wrong?我在真实图像上叠加透明图像的代码哪里出错了?
【发布时间】:2019-08-26 05:24:41
【问题描述】:

我一直试图在我的真实图像上覆盖透明图像,这样如果有人试图右键单击图像,他会下载透明图像,而不是真实图像。 我在谷歌搜索时遇到了以下简单代码,并一直在尝试对其进行调整以适合我博客的代码。但一直没有成功。

<div style="width:180px;height:186px;">
<img src="kids.jpg" width="180" height="186" alt="" style="z-index:0; position:absolute;" />
<img src="cover.gif" width="180" height="186" alt="My Kids"" style="z-index:1; position:absolute;" />
</div>

我创建了一个透明的 1 x 1 像素 gif 图像,并在代码中尝试使其大小与我的真实图像相同。但由于某种原因,透明图像被放置在我的真实图像下方,而不是覆盖在它上面,即使我为它们使用了 z-index。 我想我的位置有问题(绝对位置或相对位置)。还是我在其他地方也出错了?

这是我正在尝试的代码:

<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;">
<a href="https://4.bp.blogspot.com/-NJFva1CFgDQ/XMaJHwr_HfI/AAAAAAAADyA/OWPQ74ewwkkACWrByh-ALzin4_PQpfcYQCLcBGAs/s1600/Rice-Kheer-1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; position: relative; z-index: 0;"><img alt="Rice Kheer" border="0" data-original-height="1000" data-original-width="1500" height="426" src="https://4.bp.blogspot.com/-NJFva1CFgDQ/XMaJHwr_HfI/AAAAAAAADyA/OWPQ74ewwkkACWrByh-ALzin4_PQpfcYQCLcBGAs/s640/Rice-Kheer-1.jpg" title="Rice Kheer" width="640" /></a>
<a href="https://1.bp.blogspot.com/-xgpK1w1fuzg/XWNGJvO_wII/AAAAAAAAD0Y/k4o6yjDttBst_B73xjE6W8HcDmZmGOZigCLcBGAs/s1600/image.gif" imageanchor="1" style="margin-left: auto; margin-right: auto; position: relative; z-index: 1;"><img border="0" data-original-height="1000" data-original-width="1500" height="426" src="https://1.bp.blogspot.com/-xgpK1w1fuzg/XWNGJvO_wII/AAAAAAAAD0Y/k4o6yjDttBst_B73xjE6W8HcDmZmGOZigCLcBGAs/s1600/image.gif" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Odisha Special Rice Kheer</td></tr>
</tbody></table>

【问题讨论】:

  • 这不会阻止任何人下载图像。如果有的话,这种尝试只会促使人们下载允许他们绕过这种欺骗的浏览器扩展。只需让人们下载您的图像,它们已经自动下载到浏览器缓存。向其添加水印(可见和隐藏)。

标签: html css


【解决方案1】:

使用position:absolute; 来实现这一点。

除此之外,您还可以将oncontextmenu="return false" 添加到您的标签中,以防止右键单击。这些是您可以采取的一些步骤来防止使用下载您的图像,但遗憾的是没有完整的证明解决方案。

<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
  <tbody>
    <tr>
      <td style="text-align: center;position: relative;">
        <a href="https://4.bp.blogspot.com/-NJFva1CFgDQ/XMaJHwr_HfI/AAAAAAAADyA/OWPQ74ewwkkACWrByh-ALzin4_PQpfcYQCLcBGAs/s1600/Rice-Kheer-1.jpg" imageanchor="1" style="/* margin-left: auto; *//* margin-right: auto; *//* position: relative; *//* z-index: 0; */display: block;"><img alt="Rice Kheer" border="0" data-original-height="1000" data-original-width="1500" height="426" src="https://4.bp.blogspot.com/-NJFva1CFgDQ/XMaJHwr_HfI/AAAAAAAADyA/OWPQ74ewwkkACWrByh-ALzin4_PQpfcYQCLcBGAs/s640/Rice-Kheer-1.jpg" title="Rice Kheer"
            width="640"></a>
        <img border="0" data-original-height="1000" data-original-width="1500" src="https://1.bp.blogspot.com/-xgpK1w1fuzg/XWNGJvO_wII/AAAAAAAAD0Y/k4o6yjDttBst_B73xjE6W8HcDmZmGOZigCLcBGAs/s1600/image.gif" width="640" style="
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    padding: 0;
">
      </td>
    </tr>
    <tr>
      <td class="tr-caption" style="text-align: center;">Odisha Special Rice Kheer</td>
    </tr>
  </tbody>
</table>

【讨论】:

  • #1 删除 &lt;br&gt;#2 删除第二个图像的高度和填充 css。已编辑帖子。
  • 我尝试删除高度 css (height: 100%; height="426" 但问题仍然存在。
  • 你还没有起飞&lt;br&gt;。这将解决问题。我已经再次更新帖子以直接定位 img,而不是使用 &lt;a&gt; 作为包装器。

  • 标签只是没有显示在博主的 HTML 代码框中,如您共享的 imgur 链接所示。但无论如何,我现在已经手动删除了博客上代码中的所有换行符,它现在可以工作了。非常感谢 Nidhin,非常感谢,非常感谢您的帮助。
  • 正如上面评论中提到的,你不能 100% 确保图像不能被下载,但你总是可以实现这样的事情。您还可以将oncontextmenu="return false" 添加到您的&lt;tr&gt; 标签中,这甚至会禁用右键单击。仅供参考
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 2014-10-24
  • 1970-01-01
相关资源
最近更新 更多