【问题标题】:Change background and font color of fixed positioned div based on background根据背景更改固定定位 div 的背景和字体颜色
【发布时间】:2020-03-24 15:52:45
【问题描述】:
<!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;
}

大家好,我尝试根据另一个div的背景更改fixed-background类的div的背景和颜色。我遇到了mix-blend-mode CSS 属性,但它似乎不起作用。

我还不是 CSS 专家,谁能帮我解决这个问题?如果我让它与 JS 函数一起使用,我不会不高兴。

【问题讨论】:

    标签: javascript html css mix-blend-mode


    【解决方案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>

    【讨论】:

      【解决方案2】:

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

      .background1{
          background-color:red;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-03
        • 1970-01-01
        • 2021-11-06
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多