Hexo之Butterfly主题透明css浅析


1.改变透明度
卡片透明度
在souce文件夹中新建css文件夹,用来存放所有自行配置的css文件,与img文件夹同理,防止更新后被覆盖。在文件夹中新建transparency.css文件,编写以下代码。
1 | /* 明亮模式透明度0.75 */ |
在主题配置文件的inject下按格式填写css,其中根目录为source文件夹。
1 | - <link rel="stylesheet" href="/css/transparency.css"> |
页脚透明度
在主题配置文件中,将页脚颜色直接设置为transparent。
1 | # Footer Background |
因为有遮罩的关系,既保留了底色来显示文字,又可以和背景融为一体。
2.改变top颜色
新建css文件命名为headtransparency,编写以下代码。
1 | /* 取消top颜色以支持cover透明图片显示背景 */ |
同样添加到inject中
1 | - <link rel="stylesheet" href="/css/headtransparency.css"> |
因为顶图优先级top_img > cover, 而cover既可以作为文章封面,又可以在top_img未设置时作为顶图,所以我准备全使用cover设置图片,省去多余图片设置。但在top_img未设置时,主题的蓝色 #49b1f5 会作为背景色填充 ,因为图片的webp和png格式有alpha通道,存在透明的图片会显露出cover图片下被默认填充的背景色,所以需要取消页眉的背景色填充,这样就可以透出页面背景。另外页眉同样有遮罩,比较合适。
1 | # Add mask to header or footer (为 header 或 footer 添加黑色半透遮罩) |
教学
实际上css的内容操作是使用浏览器F12调试摸索的,需要在右侧的样式中逐一查找对应属性。
因为我从未接触过css,速成只能利用网络文档和AI,自行摸索出了结果,而网络上流传的许多修改透明度方法千篇一律都是屎山代码,长篇大论中仅有一两句有用,且不适配黑暗模式的页面,所幸我最后自行排查出了结果,并简化了代码。
另外我认为无需单独配置每个卡牌的透明度,如果透明度各不相同那页面会很不美观,又因为所有卡片都使用 --card-bg 作为颜色,那在两种页面模式下配置它即可,既省事又高效,但rgba函数仍需获取颜色作为填充,我选取了原主题颜色,可以自行调整。
以下是避雷

以下这是网络教程的雷同代码,除开页脚我直接设置为transparent外,仅两句可用,分别是.recent-post-item和最主要的–card-bg,且因为全覆盖设置成白色,完全不适配原黑暗模式页面。
1 | /* 文章页背景 */ |

