html - 这是什么 CSS 属性:-internal-light-dark
问题描述
我试图在Edge中仅使用 CSS 设置选择元素的样式(多么愚蠢的想法。我知道) 。
在查看浏览器默认值(用户代理样式表)时,我注意到应用了这些样式:
color: -internal-light-dark(black, white);
background-color: -internal-light-dark(rgb(255, 255, 255), rgb(59, 59, 59));
border-color: -internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
我在 Chrome 87 和 Opera 71 上进行了尝试,并应用了相同的默认属性。据我所见,Firefox 不适用这一点。
我尝试在 Google 上搜索“-internal-light-dark”,但一无所获。有人可以解释一下这是做什么的吗?
解决方案
这是添加时的提交https://github.com/chromium/chromium/commit/5c56063a3a156531e2e368047bec5cfd48b2ff21
然后改名为https://github.com/chromium/chromium/commit/42267a718b56e0da01b82c4aee8b342f24e45c1b
这里有更多相关的提交https://github.com/chromium/chromium/search?p=2&q=internal-light-dark&type=commits
根据我从源头了解到的情况,它是基于 chromium 的浏览器使用的内部(如名称所示)属性(这就是 firefox 忽略它的原因)来存储一对或浅色/深色以根据系统的颜色模式使用。
编辑:因为它不是标准的 CSS,所以我建议不要使用它们,除非你真的需要对基于 chromium 的浏览器有一些特殊的规则
编辑:在这里你可以看到他们是如何在内部使用它的
const CSSColorValue& color_value = To<CSSColorValue>(
WebColorScheme::kLight ? pair->First() : pair->Second());
return color_value.Value();
如果颜色模式是light
它使用第一个值,否则使用第二个。
推荐阅读
- google-app-engine - post-install-cmd 在 Google App Engine 柔性环境中不起作用
- ruby - 如何比较来自两个不同数组的元素?红宝石
- c# - 仅在一台 PC 中因单击拦截而导致测试失败
- docker - 在 Dockerized 依赖项上菊花链 Docker Compose 文件
- typescript - 在 if 语句之后更改 typescript 中的接口
- r - 轻敲()?等长?
- javascript - 如何在空数组中添加字段?
- asp.net-core - 为什么我不能在我的索引页面上使用它作为模型?
- python - 确定报价绩效的文本分析
- java - Java 输出数组和 JOptionPane