我有一个非常简单的静态网站,写在HTMLCSS的风格规则.HTML代码的简化形式为:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>My title</title>
<link rel="icon" type="image/png" href="favicon.png" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <h1>My static site</h1>

    <p>This is a simplified example for my static site.</p>

    <p>I don't use PHP, JavaScript, or any other programming language</p>

    <img style="width: 40%;" src="image.png" />

</body>

事实是,在CSS使用prefers-color-scheme: dark的情况下,我配置了一些规则,以防用户配置了暗模式.我是这样做的:

body {
    color: #000;
    background-color: #fff;
    font-family: monospace;
    max-width: 130ex;
    margin-left:auto;
    margin-right:auto;
}

img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 80%;
}

@media (prefers-color-scheme: dark) {
    body {
        color: #fff;
        background-color: #000;
    }
} 

如你所见,内容非常非常简单.我通常try 使用透明胶片来放置图像,这样它们在明暗模式下都能看起来很好.

然而,我不能用很多图片做到这一点,而且它们在某些方面变得无可救药地难以辨认.在这些情况下,我可以克隆映像,如下例所示:

<img style="width: 40%;" src="image.png" />
<img style="width: 40%;" src="dark-image.png" />

light image dark image

有没有一种方法可以知道,而不使用编程语言或cookie(可能是CSS?)来告诉代码使用哪个图像?

如果我们发现自己处于黑暗模式,有没有其他方法可以将图像调暗到CSS英寸?

或者这可能是不可能的,我必须为它实现一个javascript的脚本?

推荐答案

可以,您可以向图像添加一个类,然后针对它们进行媒体查询:

.only-on-dark {
  display: none;
}

@media (prefers-color-scheme: dark) {
  .only-on-dark {
    display: block;
  }
  
  .only-on-light {
    display: none;
  }
}
<img class="only-on-dark" src="//via.placeholder.com/200/000000/ffffff" />
<img class="only-on-light" src="//via.placeholder.com/200/ffffff/000000" />

Html相关问答推荐

XPATH text()函数遇到困难

如何让一个动态列表以网格方式水平显示

如何才能只给没有孟加拉语Kar符号的字母上色?

我无法动态嵌入Instagram帖子,因为无法分配Instagram固定链接

如何创建嵌套的动态表单元素

旧文本淡出,但新文本不会淡入,而是突然出现

禁用所有行,但在16角中单击编辑按钮的行除外

从html文件中提取元素的Python BeautifulSoup

可以';t使我的导航栏在HTML/CSS中正确对齐

如何使用css在响应图像后面添加形状?

为什么要添加换行符(至少在 Google Chrome 中)

为什么 html 元素的 max-width 和 width 一起工作?

如何在CSS伪类函数中使用复合 Select 器:host-context()

当悬停时,同时影响相邻的两侧div

如何避免链接在悬停 timeshift 动,同时增加导航栏中的字体大小?

视频添加到 Html 与 Github 不同步

如何将元素均匀分布到容器的边缘?

font awesome 的 CDN/CSS 如何工作?

基本上,我想要两列包含文本和图像,但第二列是倒置的

在批处理文件中显示特定的 HTML 文本