Еще один способ сделать это - переключить класс на родительский элемент html, например <body>
. Преимущество в том, что для загрузки не требуется дополнительная таблица стилей.
Для этого требуется, чтобы у вас были разные стили для разных тем, загруженных с самого начала, но в большинстве случаев относительно мало изменений в правилах стиля для разных тем, и большая часть полезной нагрузки CSS используется при сбросе стили и другие общие стили, применимые ко всем темам (из этого, конечно, есть исключения, но в общем случае это имеет место). Поскольку затраты времени загрузки дополнительного CSS-ресурса очень высоки, а увеличение полезной нагрузки (особенно при обслуживании сжатых ресурсов) невелико, вы не понесете никакого снижения производительности, включив дополнительные темы с самого начала, и фактически скорее всего будет иметь производительность усиление по сравнению с помещением стилей темы в отдельный файл. Кроме того, темы переключаются намного быстрее, поскольку нет дополнительных ресурсов для загрузки.