gpt4 book ai didi

javascript - 在任何 HTML 元素上覆盖一个半透明框

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:59 27 4
gpt4 key购买 nike

我有一个 HTML 文件,我无法控制其内容。我所能做的就是注入(inject) CSS 文件和/或 JavaScript 文件(如果需要,包括 jQuery 等库)。

在 HTML 中,有些元素需要突出显示并添加工具提示(例如,假设它们具有特定的数据属性),但它们不方便位于我可以应用样式的特定容器中。这些元素可以是 <span> , <a> , <img> , <div>或其他任何东西(内联或 block )。

如果可以的话,我想用纯 CSS 来解决这个问题,但如果需要的话,我愿意使用 JavaScript 来修改 DOM,但是最终的 HTML 必须与原始 HTML 具有相同的布局,这只是亮点 float 在特定元素上。

例如,我可能有一些这样的 HTML:

<body>
<p>This is a sample line of text with <a href="#">a link</a> in the middle that should be highlighted</p>

<p>This is a sample line of text with <a href="#" data-highlight="true">a link</a> in the middle that should be highlighted</p>
</body>

最终应该是这样的:

enter image description here

最佳答案

我会选择这样的东西。如您所愿,仅使用 CSS,不更改 HTML。

  • *[data-highlight="true"] - 选择带有 data-highlight="true" 的所有元素

  • background: rgba(255, 0, 0, 0.5) - 赋予 50% 不透明度的 rgba 背景。

要记住的事情

如果有一些元素的位置有特定的CSS规则,下面的代码需要调整。例如,如果一个 <span>需要有以下规则但已经有 position: absolute位置值不能改成relative并且特定规则必须在下面覆盖。

片段

*[data-highlight="true"] {
position: relative;
}

*[data-highlight="true"]:after {
display: block;
content: '';
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba(255, 0, 0, 0.5);
border: 1px solid red;
}
<body>
<p>This is a sample line of text with <a href="#">a link</a> in the middle that should be highlighted</p>

<p>This is a sample line of text with <a href="#" data-highlight="true">a link</a> in the middle that should be highlighted</p>
</body>

关于javascript - 在任何 HTML 元素上覆盖一个半透明框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com