高级主题
基于 CSS 的主题功能使应用能够通过加载 CSS 文件或更改少量 CSS 属性值来快速自定义颜色。
theme-color 元标签
theme-color 元标签的值表示浏览器可用于自定义页面或周围界面显示的颜色。此类元标签还可以接受媒体查询,允许开发者为浅色和深色模式分别设置主题色。
theme-color 元标签的 content 值必须包含有效的 CSS 颜色值,且不能包含 CSS 变量。
theme-color 元标签控制在 Web 浏览器或作为 PWA 运行时的界面主题,在通过 Capacitor 或 Cordova 部署应用时不起作用。如果您希望自定义状态栏下方的区域,我们建议使用 Capacitor 状态栏插件。
以下示例演示了如何使用 theme-color 来样式化 iOS 15 上的浏览器界面。
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#0054e9" />
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#eb445a" />
| 浅色模式 | 深色模式 |
|---|---|
![]() | ![]() |
theme-color 元标签还可用于自定义 macOS Monterey 或更新版本上 Safari 的工具栏。
iOS 15 和 macOS 上的 Safari 会自动确定要使用的合适主题颜色,但如果您需要更多控制权,添加此元标签会很有用。
有一小部分颜色浏览器不会使用,因为它们会干扰浏览器界面。例如,在 macOS 的 Safari 中设置 content="red" 将不起作用,因为该颜色会干扰工具栏中的红色关闭按钮。如果您遇到这种情况,请尝试稍微调整您的颜色选择。
如果同时存在 theme-color 元标签和 manifest.json 中的 theme,浏览器会优先使用 theme-color 元标签。
有关更多信息,请参阅 MDN theme-color 文档。
全局变量
虽然在主题章节中的应用变量和阶梯变量有助于更改应用的颜色,但通常还需要在多个组件中使用的变量。以下变量在组件之间共享,用于更改全局内边距设置等。
应用变量
| 名称 | 描述 |
|---|---|
--ion-font-family | 应用的字体家族 |
--ion-statusbar-padding | 应用的状态栏顶部内边距 |
--ion-safe-area-top | 调整应用的安全区域顶部内边距 |
--ion-safe-area-right | 调整应用的安全区域右侧内边距 |
--ion-safe-area-bottom | 调整应用的安全区域底部 内边距 |
--ion-safe-area-left | 调整应用的安全区域左侧内边距 |
--ion-margin | 调整边距属性的边距 |
--ion-padding | 调整内边距属性的内边距 |
--ion-placeholder-opacity | 调整输入框、文本域、搜索栏和选择组件中占位符的不透明度 |
网格变量
| 名称 | 描述 |
|---|---|
--ion-grid-columns | 网格中的列数 |
--ion-grid-padding-xs | xs 断点下网格的内边距 |
--ion-grid-padding-sm | sm 断点下网格的内边距 |
--ion-grid-padding-md | md 断点下网格的内边距 |
--ion-grid-padding-lg | lg 断点下网格的内边距 |
--ion-grid-padding-xl | xl 断点下网格的内边距 |
--ion-grid-column-padding-xs | xs 断点下网格列的内边距 |
--ion-grid-column-padding-sm | sm 断点下网格列的内边距 |
--ion-grid-column-padding-md | md 断点下网格列的内边距 |
--ion-grid-column-padding-lg | lg 断点下网格列的内边距 |
--ion-grid-column-padding-xl | xl 断点下网格列的内边距 |

