Как вы читаете переменные localsettings в файле default.css в приложении магазина Windows?

Я создаю приложение магазина Windows, которое имеет значение по умолчанию CSS и размер шрифта по умолчанию в этом css. Я разрешаю пользователю настраивать размер шрифта из экрана настроек, и предпочтение сохраняется в локальных настройках. Как обновить приложение, чтобы отобразить новый размер шрифта? Существуют ли существующие шаблоны? Это приложение Html5/js. Можно ли просто перезагрузить значение CSS из события изменения?

0
nl ja de

2 ответы

Когда приложение запускается, читайте размер шрифта из локальных параметров, а затем задайте размер шрифта документа с помощью JavaScript:

document.body.style.fontSize = fontSizeFromSettings;

Когда приложение запущено и пользователь изменяет размер шрифта, также вызывайте указанную выше строку. Вы можете сделать это сразу после кода, который сохраняет размер шрифта в локальных настройках.

Естественно, вы также можете изменить размер шрифта для отдельных элементов, используя document.getElementById («myId»). Style.fontSize .

1
добавлено

Я прочитал это как OP, у которого уже определен селектор классов, например

.myclass
{
    font-size: 36px;
}

и хотите изменить все элементы с помощью селектора .myclass , чтобы быть новым значением, например 72px. Если это намерение, вы можете динамически модифицировать CSS.

Вот простая (и хрупкая функция не подходит для производства ), которая ищет определенный селектор стиля в известном файле CSS и изменяет его на лету. Вероятно, вы можете обобщить это, посмотрите Изменение внешних таблиц стилей и Как изменить CSS-стили с 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");
0
добавлено
если это всего лишь идентификатор DIV, он будет применяться только к одному элементу, поэтому последняя часть ответа @Matts должна работать
добавлено автор Jim O'Neil, источник
Это близко. У меня нет класса, но вместо этого у меня есть div id. Как мы можем адаптировать это к div id?
добавлено автор user1735607, источник
Это работает сейчас, но я не вижу изменения шрифта. Что-то нужно перезагрузить?
добавлено автор user1735607, источник
Работает сейчас. Небольшая ошибка с моей стороны. шрифт не проходил через px в нем. Исправлено, и он отлично работает. Спасибо.
добавлено автор user1735607, источник
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot