我想让用户自己选择整个应用程序的字体大小。我的问题是我不知道如何在运行时全局更改字体大小。我已经尝试在global.css中添加一个类:
...
* {
font-size: large; //that works
}
...
.large-font {
font-size: large; //that doesn't work
...
但这不起作用,因为我也不知道哪些是实际的HTMLElements,必须更改哪些元素的字体大小。
这是我的(ionChange)-Event函数的当前版本:
onSelectFontSize() {
const app = Array.from(
document.querySelectorAll('*') as unknown as HTMLCollectionOf<HTMLElement>
);
console.log('app: ', app);
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < app.length; i++) {
app[i].style.setProperty('font-size', '96px !important');
}
}
我正在与离子6 +Angular 14与近2个月的经验,在这些技术。我已经尝试了其他解决方案在这里堆栈溢出。
先谢谢你了
1条答案
按热度按时间iecba09b1#
下面是一个离子React的例子(因为我使用的是React,而不是Angular ),但基本原理应该是相同的。
Ionic 6大量使用CSS变量,所以我的解决方案是在
variables.css
中添加字体大小变量:在一些地方,Ionic采用固定的字体大小,所以我不得不进行各种调整;请参阅我的gist here中的
text.scss
。完成后,您可以使用一个简单的函数来设置CSS变量(React TypeScript示例):