0
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="background1">Div1</div>
    <div class="background2">Div2</div>
    <div class="background3">Div3</div>
    <div class="background4">Div4</div>
    <div class="fixed-background">This should change color based on background</div>

</body>
</html>




div {
    height: 100vh;
}

.background1 {
    background: gray;
}

.background2 {
    background: black;
}

.background3 {
    background: blue;
}

.background4 {
    background: tomato;
}

.fixed-background {
    position: fixed;
    top: 10px;
    left: 10px;
    width: 100px;
    height: 100px;
    mix-blend-mode: difference;
}

大家好,我尝试fixed-background根据其他 div 的背景更改带有类的 div 的背景和颜色。我遇到了mix-blend-modeCSS 属性,但它似乎不起作用。

到目前为止,我还不是 CSS 专家,有人可以帮我解决这个问题吗?如果我让它与 JS 函数一起工作,我不会不高兴。

4

2 回答 2

1

我一直在玩mix-blend-mode,也许我已经得到了你需要的东西。请检查一下。重要的是您必须检查与浏览器的兼容性。

https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode

body {
  margin-bottom: 50vh;
}

.background1,
.background2,
.background3,
.background4 {
  height: 50vh;
}

.background1 {
  background: gray;
}

.background2 {
  background: black;
}

.background3 {
  background: blue;
}

.background4 {
  background: tomato;
}

.fixed {
  position: fixed;
  top: 10px;
  right: 10px;
  width: 100px;
  height: 100px;
  mix-blend-mode: screen;
}

.fixed-text {
  background: green;
  color: maroon;
  mix-blend-mode: difference;
  z-index: 3;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
<div class="background1">Div1</div>
<div class="background2">Div2</div>
<div class="background3">Div3</div>
<div class="background4">Div4</div>
<div class="fixed">
  <div class="fixed-text">
    This should change color based on background
  </div>
</div>

于 2020-03-24T17:27:53.947 回答
0

您需要将这些 css 类放在另一个名为 style.css 的文件中,并且您还需要像这样设置 bg 颜色。

.background1{
    background-color:red;
}
于 2020-03-24T16:29:06.103 回答