gpt4 book ai didi

css - 文本高亮作为 CSS 掩码?

转载 作者:行者123 更新时间:2023-12-04 10:34:03 24 4
gpt4 key购买 nike

我想知道是否可以重现此文本效果:

enter image description here

它应该看起来好像文本突出显示降低了图像的不透明度。我想您需要的是背景图层的副本在文本突出显示的形状/位置中被屏蔽。但是有没有办法真正让这些蒙版根据文本行自动调整大小/重新定位?或者有什么其他方法可以达到这个效果?

这可能更好地解释了我的追求:
enter image description here

最佳答案

您可能正在寻找 css 属性 background-attachment: fixed .这确实有一个警告,即背景将不再随页面滚动并保持静态,但这样可以保证元素背景和容器背景之间的重叠保持不变。有一个通过 javascript 解决滚动问题的方法,开销很小,具体取决于浏览器渲染/重新定位图形的重量。

然后,您只需将相同的背景应用于包含元素的背景(在我的情况下为 .wrap)和包含元素的文本(在我的情况下为 wrap),您将获得所需的效果,如第二张图片所示。

然后将标记放在段落元素中并重复文本两次。一次在段落中,一次在标记中。
然后将段落设置为相对位置,并将标记设置为绝对,这样它们就可以完美重叠。这是为了抵消包装透明而不能正确显示文本,因为文本也变得透明。

.wrap, .wrap mark {
background-image: url('https://i.imgur.com/hAodNjT.jpg');
background-attachment: fixed;
}
.wrap p {
position: relative;
}
.wrap mark {
position: absolute;
top: 0px;
left: 0px;
opacity: 0.4;
}
img {
width: 300px;
height: auto;
}
.wrap {
padding-top:160px;
position: relative;
width: 400px;
height: 400px;
}
.wrap img {
position:absolute;
top:60px;

z-index:0;
}
.wrap p {
position:relative;
z-index: 1;
}
<div class="wrap">
<img src="https://i.imgur.com/cULI8TG.png">
<p>some text that runs over the image<mark>some text that runs over the image</mark></p>
<p>some other text that runs over the image<mark>some other text that runs over the image</mark></p>
</div>


带有背景滚动修复,滚动时确实会引入更多开销

var $affected = $('.wrap, .wrap mark');
let handler = (e) => {
$affected.css({'background-position' : '-'+window.scrollX+'px -'+window.scrollY+'px'});
}
$(window).on('resize scroll', handler);
.wrap, .wrap mark {
background-image: url('https://i.imgur.com/hAodNjT.jpg');
background-attachment: fixed;
}
.wrap p {
position: relative;
}
.wrap mark {
position: absolute;
top: 0px;
left: 0px;
opacity: 0.4;
}
img {
width: 300px;
height: auto;
}
.wrap {
padding-top:160px;
position: relative;
width: 400px;
height: 400px;
}
.wrap img {
position:absolute;
top:60px;

z-index:0;
}
.wrap p {
position:relative;
z-index: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrap">
<img src="https://i.imgur.com/cULI8TG.png">
<p>some text that runs over the image<mark>some text that runs over the image</mark></p>
<p>some other text that runs over the image<mark>some other text that runs over the image</mark></p>
</div>

关于css - 文本高亮作为 CSS 掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60273681/

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