Я бы решил эту проблему с помощью JavaScript и умных классов CSS.
Используя JavaScript, я бы прикрепил прослушиватель событий к элементу ввода, к которому также прикреплена метка.Если щелкнуть метку, она вызовет события элемента ввода.Из этого EventListener можно вызывать функцию, которая может прикрепить класс CSS к элементу <body>
.
document.querySelector('input#input-element-id').addEventListener('click', function() {
document.querySelector('body').classList.add('different-layout')
})
Затем можно использовать CSS, чтобы применить другой макет и стиль.Например:
.different-layout .title { font-size: 12px; }`
Однако, если пользователь обновит свою страницу, он вернется к исходному виду.Чтобы этого не происходило, вы можете использовать localStorage API и сохранять и извлекать текущее выбранное представление.Вы должны установить представление в localStorage для того же события щелчка, что и для стиля.Вы получите его, а затем добавите класс при загрузке страницы.