0

我正在构建一个具有默认 css 和该 css 中默认字体大小的 Windows 商店应用程序。我允许用户从设置屏幕自定义字体大小,并且该首选项存储在本地设置中。如何更新我的应用程序以反映新的字体大小?有没有目前的模式?这是一个 Html5/js 应用程序。我可以简单地从更改事件中重新加载 css 值吗?

4

2 回答 2

1

当您的应用启动时,从本地设置中读取字体大小,然后使用 JavaScript 设置文档的字体大小:

document.body.style.fontSize = fontSizeFromSettings;

当应用程序正在运行并且用户更改字体大小时,也调用上述行。您可以在将字体大小保存到本地设置的代码之后立即执行此操作。

当然,您也可以使用document.getElementById("myId").style.fontSize.

于 2013-01-09T17:55:05.903 回答
0

我将其读为已定义类选择器的 OP,例如

.myclass
{
    font-size: 36px;
}

并希望使用.myclass选择器将所有元素修改为新值,例如 72px。如果这是意图,那么您可以动态修改 CSS。

这是一个简单(且脆弱,不适合生产)的函数,它在已知的 CSS 文件中查找特定的样式选择器并即时修改它。您可能会对此进行概括,请查看更改外部样式表如何使用 JavaScript 更改 CSS 样式表以获取更多详细信息。

function updateFontSize(newFontSize) {
    for (var i = 0; i < document.styleSheets.length; i++) {
       if (document.styleSheets[i].href.indexOf("default.css") >= 0) {
            var mySheet = document.styleSheets[i];
            for (var r in mySheet.cssRules) {
                if (mySheet.cssRules[r].selectorText == ".myclass") {
                    var myRule = mySheet.cssRules[r];
                    myRule.style.fontSize = newFontSize;
                    return;
                }
            }
        }
    }
};

然后在某个地方你称之为(当然没有硬编码值):

updateFontSize("128px");
于 2013-01-09T18:43:14.887 回答