如何在windows store应用程序中读取default.css文件中的localsettings变量?

时间:2013-01-09 16:23:36

标签: windows-8 windows-store-apps

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

2 个答案:

答案 0 :(得分:1)

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

document.body.style.fontSize = fontSizeFromSettings;

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

当然,您也可以使用document.getElementById("myId").style.fontSize更改单个元素的字体大小。

答案 1 :(得分:0)

我把它读作已经定义了类选择器的OP,比如

.myclass
{
    font-size: 36px;
}

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

这是一个简单的(脆弱的,不适合生产)函数,它在已知的CSS文件中查找特定的样式选择器并在运行中对其进行修改。您可能会对此进行概括,请查看Changing External StylesheetsHow to change CSS Stylesheets with JavaScript以获取更多详细信息。

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");