如何使用纯 CSS 和 HTML 叠加图像/水印

2024-02-12

有没有一种简单的方法可以通过相对定位将透明 PNG(或任何其他图像)覆盖在带有 CSS 的图像标签上,只需传递一个类?

 <img class="watermarked" src="http://placehold.it/500x325.jpg" alt="Photo">

那么 CSS 可能与此类似(不起作用):

.watermarked{
  background-image: url("http://placehold.it/100x100/09f/fff.png");
  position: relative;
  left: 30px;
  opacity: 0.5;
}

理想情况下,我能够在 CSS 中定义“水印”叠加图像的路径,然后我添加“水印”类的任何图像都会将该图像叠加在具有一些负相对定位的顶部。它应该能够应用于单个页面上的多个图像,因此单次使用 DIV 将不起作用。

显然,这对保护底层图像没有任何作用……所以称其为水印并不准确……更多的是临时覆盖。我很惊讶,答案并不容易获得,但我四处寻找,但没有在这里或谷歌上找到答案。

.watermarked {
  background-image: url("http://via.placeholder.com/100x100/09f/fff.png");
  position: relative;
  left: 30px;
  opacity: 0.5;
}
<div class="col-lg-3 col-md-6 mb-4">
  <div class="card">
    <img class="card-img-top watermarked" src="http://placehold.it/500x325" alt="">
    <div class="card-body">
      <h4 class="card-title">Card title</h4>
      <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente esse necessitatibus neque.</p>
    </div>
  </div>
</div>

如果您想要仅使用 CSS 的解决方案,我建议将要加水印的图像包装在容器中div,然后我们可以添加一个:after包含我们的水印的伪元素。

理想的解决方案是应用:after伪元素直接img元素,但不幸的是大多数浏览器不支持使用:before or :after on img元素。如果是这样,我们可以应用.watermark直接到img tag.

在下面的解决方案中,我们覆盖了:after伪元素覆盖整个图像,然后将水印徽标放置在左上角。

该解决方案的优点之一是:after元素覆盖了整个图像,这会阻止用户右键单击并保存图像(尽管这并不妨碍任何有一点网络经验的人找到图像 URL 来下载它)。因为:after元素覆盖整个图像,我们还可以应用半透明背景来稍微遮挡水印图像。

所以我们只剩下这个解决方案:

.watermarked {
  position: relative;
}

.watermarked:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 0px;
  background-image: url("http://placehold.it/100x100/09f/fff.png");
  background-size: 100px 100px;
  background-position: 30px 30px;
  background-repeat: no-repeat;
  opacity: 0.7;
}
<div class="watermarked">
  <img src="http://placehold.it/500x325.jpg" alt="Photo">
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用纯 CSS 和 HTML 叠加图像/水印 的相关文章

  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • 在 Android 上禁用标注(上下文菜单)

    在网络应用程序中 我需要禁用移动浏览器在触摸并按住 长按 触摸目标 例如 img 或链接 我已经在使用了 webkit touch callout none 它在 iPhone 和 iPad 上运行良好 但似乎不适用于 Android 在
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 将鼠标悬停在原点时会触发translateY()

    当您将光标移动到按钮底部时 是否可以无限期地不触发动画 它看起来是这样的 gif https i stack imgur com QwdHW gif and codepen https codepen io jaeyson pen GwwJ
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 固定 div 位于居中 div 旁边

    我有一个网页 其中有可滚动的内容 此内容包含在 content 内 位于页面的中心 现在我希望导航栏出现在内容左侧 50 像素处 该栏应具有固定位置 不应滚动 这是我到目前为止所尝试过的 nav position fixed top 50
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • JavaFX ImageView 未更新

    因此 我尝试将图像加载并保存到 imageView 中 其中图像的位置是通过文件浏览器选择的 我已经为此工作好几天了 如果我不能解决这个问题 我就会中风 我已经尝试了我能想到的一切 预先感谢您的帮助 UPDATED 这是我的主要课程 pub

随机推荐

  • 无法操作 jQuery 中 ajax 请求插入的数据

    调用服务器并将其返回的数据转换为表后 我使用 jQuery 的 html 语法将其插入页面中 之后数据出现在页面中 但我无法使用 jQuery 操作它 继承人的代码
  • 在 numpy 中使用 2d 掩码掩码 3d 数组

    我有一个 3 维数组 我想使用一个 2 维数组来屏蔽它 该数组的维度与 3 维数组最右边的两个数组的维度相同 有没有办法在不编写以下循环的情况下执行此操作 import numpy as np nx 2 nt 4 field3d np ra
  • 同一角色的实例之间的 Azure 网络通信

    同一角色的多个角色实例是否可以通过获取所有这些实例侦听的特定端点的 VIP 虚拟 IP 地址来相互通信RoleEnvironment 如果是这样 返回的 VIP 可以负载均衡到调用者 的RoleEnvironment方法 实例本身 角色实例
  • 设置 UINavigationbar 的标题不起作用

    我浏览了一些在线教程 但没有任何效果 这是我的 viewController 的代码 import UIKit class ViewController UINavigationController let textView UITextV
  • 在 MySQL 中查找下一个可用的 id

    我必须在 MySQL 数据库中找到下一个可用的 id 如果数据库中有 5 个数据 我必须获取下一个可用的插入位置 即 6 我怎样才能做到这一点 我用过MAX id 但是当我从数据库中删除一些行时 它仍然保留未更新的旧最大值 更新2014 1
  • Flask|Jinjia2|Javascript:将 Flask 模板变量传递到 Javascript

    将变量从 Flask 模板传递到 Javascript 文件的最佳方法是什么 这是我的代码 我的网络应用程序中有一个简单的视图 webapp route bars def plot d3 bars return render templat
  • 奇数个 a 的正则表达式

    我在解决以下练习时遇到问题 希望得到任何帮助 令 a b 我需要为包含奇数个 a 的所有字符串给出一个正则表达式 感谢您的时间 b ab ab ab 它的主要部分是 ab ab 它枚举了偶数个的所有可能性as 最后 还有一个额外的a必须存在
  • 将 MIME 转换为 RichText

    我想转换多米诺骨牌文档字段Data Type MIME Part into a Data Type Rich Text in backend with SSJS or Java 我尝试过与 doc computeWithForm true
  • 无法解析 RubyMine 中的文件

    我正在尝试将 RubyMine v6 3 3 用于我的 Rails 项目 我添加后bootstrap sass宝石根据其说明 在https github com twbs bootstrap sass https github com tw
  • GWT Maven 插件 -- gwt:run 可以工作,但 gwt:compile 不能。为什么?

    我正在使用 gwt maven plugin 来管理 GWT 项目 我用gwt run目标始终以 开发模式 本地运行进行测试 我现在想将我的项目编译成 war 以部署在 Tomcat 上 当我跑步时gwt compile但是 我收到编译错误
  • 从自定义指令 VueJS 更新模型

    我目前使用 Vue JS 2 0 我想从自定义指令更新一个 Vue 实例的模型 但我正在寻找一种很好的方法来做到这一点 这是因为我试图创建一个实现 JQueryUI Datepicker 代码的自定义指令如下
  • 指向匿名联合体的指针的强制转换在 C11 中有效吗?

    const Boo constBoo Boo nonConstBoo nonConstBoo union const Boo q Boo nq constBoo nq 上述构造在 C11 中有效 还是只有 GCC clang 扩展才能以这种
  • filter_var_array() 多维数组

    有什么想法为什么这行不通吗 POST array edit gt array name gt test die var dump filter var array POST array edit name gt FILTER SANITIZ
  • 有谁发现这个程序有什么问题吗

    在没有得到我喜欢的答案后这个关于 chroot 的问题 https stackoverflow com questions 3737008 how run in a chroot jail not as root and without s
  • 性能方面,按位运算符与普通模数的速度有多快?

    是否在正常流程或条件语句中使用按位运算 例如for if等可以提高整体性能 在可能的情况下使用它们会更好吗 例如 if i 1 vs if i 2 除非您使用的是古老的编译器 否则它已经可以自行处理这种级别的转换 也就是说 现代编译器可以并
  • NetBeans。连接到托管数据库

    我有共享主机上的数据库 是否可以从 NetBeans 连接到该数据库 是的 有条件的话是可以的 允许从外部访问您的数据库 这通常通过将主机设置为 关于数据库配置 要查看是否允许 您需要查看数据库管理面板和 或询问您的托管提供商 因为 不同的
  • 跟踪用户活动的 Gem [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一个好的 gem 来跟踪 记录网站上的用户活动 例如 当他们登录 注销或执行更改网站上某些内容的操
  • ABRecordCopyValue 返回 0 ?

    我想做的是获取所有联系人并依赖 如果联系人有 社会档案财产或没有 在获得所有这些联系人之后社会档案财产我会做简单的过滤来知道是否是脸书 推特 在我发布这个问题之前 我花了一整天的时间试图找到这个问题的解决方案 但它允许返回0 ABAddre
  • 依赖关系保留

    因此 我正在查看我的数据库笔记和材料 试图让自己了解即将到来的采访的一般概念和术语 然而 我陷入了依赖和无损连接分解的困境 我到处搜索并看到很多数学方程 但我正在寻找简单明了的英语答案或例子 我找到了一个来自http www cs kent
  • 如何使用纯 CSS 和 HTML 叠加图像/水印

    有没有一种简单的方法可以通过相对定位将透明 PNG 或任何其他图像 覆盖在带有 CSS 的图像标签上 只需传递一个类 img class watermarked src http placehold it 500x325 jpg alt P