Как я могу динамически переключать стили в Angular?

У меня есть один styles.css и другой styles-highcontrast.css, оба они по сути содержат одни и те же стили, но более поздние адаптации для людей с проблемами зрения. styles-highcontrast.css установлен на lazy в angular.json.

Как я могу переключаться между ними одним нажатием кнопки?

Спасибо

Почему бы не применить к своему телу другой класс?

user4676340 21.09.2018 09:11

пользователь Scss, вам будет так легко, если вы попробуете темы в приложении

harkesh kumar 21.09.2018 09:22
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
216
1

Ответы 1

Оберните ваш высококонтрастный CSS в какой-то конкретный класс, например:

a {color: red;}

.high-contrast a {color: extraRed;}

И в HTML:

<body ng-class = "{'high-contrast': vm.useHighContrast}">
    <button ng-click = "vm.useHighContrast = !vm.useHighContrast">Switch contrast</button>

он использует angular6, поэтому я предполагаю, что это будет ngClass вместо ng-class и (click) вместо ng-click.

SlimenTN 21.09.2018 09:39

@SlimenTN Извините, я все еще использую AngularJS, но идея та же

Justinas 21.09.2018 09:42

Да нет проблем, ваш ответ правильный, просто исправил синтаксис :)

SlimenTN 21.09.2018 09:44

Другие вопросы по теме