核心样式代码
1 2 3 4 5 6 7 8 9
| html { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: gray; filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
|
其实直接这样写也行:
1 2 3
| html{ filter: grayscale(100%); }
|
但是考虑到 IE 兼容性就写得比较多。
Hexo
全站变灰
这里以 Butterfly 主题为例。新建 css 文件,包含以上代码内容,然后在主题配置文件中 inject 即可。
1 2 3 4 5
| inject: head: - <link rel="stylesheet" href="/css/gray.css">
|
参考:用代码如何实现整个网站变灰? - 知乎 (zhihu.com)
指定页面变灰
引入以下 js 文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| let style = document.createElement('style') let graySelector = 'gray-filter' style.setAttribute('type', 'text/css') style.textContent = `.${graySelector}{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: gray; filter: progid:dximagetransform.microsoft.basicimage(grayscale=1); }` document.head.appendChild(style)
let root = document.querySelector('html') url = window.location.pathname toggleClassName(root,graySelector)
function toggleClassName(el,name){ if(url==="/p/26a31d07/") el.className = [el.className, name].join(' ') }
|
1 2 3 4 5 6
| inject: head: bottom: - <script src="/js/gray_page.js"></script>
|
参考:
Wordpress
全站变灰
在主题自定义中,找到“额外 CSS”选项,加入上方核心代码片段。
仅让首页变灰
打开仪表盘,进入外观中的主题文件编辑器中,找到 functions.php
文件。在其最末尾添加上:
1 2 3 4 5 6
| function nicetheme_global_greyscale() { if ( is_home() ){ echo '<style type="text/css">html{-webkit-filter:grayscale(1);-webkit-filter:grayscale(100%);filter:grayscale(100%);-webkit-filter:gray;filter:gray;filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}</style>'; } } add_action('wp_head', 'nicetheme_global_greyscale');
|
更多情形,详见以下参考链接: