当您将鼠标悬停在彩色块上时,它会平滑地爬到文本下方。此时块背景上的部分文本有必要将其颜色更改为白色。我尝试了所有选项mix-blend-mode- 它们至少稍微改变了文本颜色hue,saturation但color它远非白色。其余的要么没有效果,要么将文本隐藏在背景下。
如何解决这个问题呢?这有可能吗?无需任何拐杖进行文本复制、打开/隐藏等。
main {
position: relative;
overflow: hidden;
margin: 30px 0;
}
.main-text {
position: relative;
max-width: 70%;
/*mix-blend-mode: ;*/
}
.color-block {
height: 100%;
width: 100%;
background-color: #2845AA;
position: absolute;
top: 0;
bottom: 0;
margin: auto;
right: -90%;
transition: .5s;
}
.color-block:hover {
right: -40%;
}
<main>
<div class="color-block"></div>
<div class="main-text">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Doloribus tenetur saepe optio corrupti earum? Eligendi fugit nemo, quibusdam quas vero error qui obcaecati placeat suscipit provident? Consectetur, alias velit dignissimos. Lorem ipsum dolor sit amet consectetur, adipisicing elit. Doloribus tenetur saepe optio corrupti earum? Eligendi fugit nemo, quibusdam quas vero error qui obcaecati placeat suscipit provident? Consectetur, alias velit dignissimos.</div>
</main>
我还用渐变和动画制作了这个技巧。当然,它看起来比减法选项更复杂,但它可以完成工作。
您将它们放置在错误的元素上。一般来说,您需要两个叠加层:一个用于蒙版,另一个用于背景。像这样(我没有更改标记):
可以分为两部分:
皮影戏怎么样? :3
可以
filter: invert(1)与以下组合使用mix-blend-mode: differencePS:如果不添加样式
filter: invert(1),.color-block则块颜色将反转,并使用中指定的文本颜色background-color尝试#2:使用
background-image: linear-gradientandbackground-clip: text这是一项非常艰巨的任务。如果您需要蓝色背景,那么减法在这里没有帮助。我做了这个选项,当然它需要您的修改,并且仅适用于黑色。如果您尝试使用蓝色,则需要从白色中减去黄色,但文本将是黄色的。