如何在支持 HDR 的显示器上隐藏部分

How to hide a section on a HDR capable display

我真的不是编码员,但我正在尝试在 HDR 和 SDR 视频之间切换网站。

我知道“动态范围:”很新,但这里发生的是:

以便在 HDR 显示器上同时显示 SDR 和 HDR 部分。关于如何解决这个问题的任何提示?

<!DOCTYPE html>
<html>
<style>
h1{
  display: none;
}
@media only screen and (dynamic-range: high) {
  .hdr{
    display: block;
  }
}
@media (dynamic-range: standard) {
   .sdr {
        /* Styles for displays not capable of HDR. */
     display: block;
   }
}
</style>
<body style="background-color:DarkOrchid;">
<h1 class="hdr">
  HDR DETECTED
<video class="video" width="100%" autoplay loop muted playsinline>
  <source
    src="/video2/baloons_alpha_hevc.mov"
    type="video/quicktime">
  <source
    src="/video2/baloons_alpha_VP9.webm"
    type="video/webm">
  Your browser doesn't support HTML5 video tag.
</video>
</h1>
<h1 class="sdr">
  SDR detected ,  you should upgrade your stuff, boomer
<video class="video" width="100%" autoplay loop muted playsinline>
  <source
    src="/video2/baloons_alpha_hevc_sdr.mov"
    type="video/quicktime">
  <source
    src="/video2/baloons_alpha_VP9_sdr.webm"
    type="video/webm">
</video>
</h1>
</body>
</html>

您应该能够在单个媒体查询中通过将样式块中的所有内容替换为以下内容来执行此操作:

.hdr {
  display: none;
}

@media only screen and (dynamic-range: high) {
  .hdr{
    display: block;
  }
  .sdr{
    display: none;
  }
}

然后您可以删除其他媒体查询,并且一次只能看到一个块。 (注意:我假设您用于检测 HDR 功能的媒体查询是准确的。)

试试这个:

@media only screen and (dynamic-range: high) {
  .hdr{
    display: block;
  }
  .sdr {
     display: none;
   }
}
@media (dynamic-range: standard) {
   .hdr{
    display: none;
  }
   .sdr {
     display: block;
   }    
}

不要使用这个:

<h1 class="className">
   <video></video>
</h1>

尝试使用一些div

<div class="className">
   <h1></h1>
   <video></video>
</div>