При загрузке страницы смотрим в localStorage на предмет выбранного типа оформления и грузим соответствующий css (имхо лучше куки для этого использовать и отдавать с сервера страницу с уже вставленным стилем).
При нажатию на кнопку меняем файл стилей и пишем значение в localStorage.
Фахриддин Абдурахимов: Ну ваш костыль можно решить распарсив URL, чтобы брать из него только path, откидывая имя файла (novost.html). Вот крутая библиотека для работы с URLами на js: medialize.github.io/URI.js Правда имхо для одного такого костыля её тащить излишне. Поищите, может какой регуляркой получится решить. По сути то нужно чтобы новость попадала в case '/game/'.
Так в откройте инспектор кода и смотрите что и как перебивает ваши стили. Кроме того - зачем вам jQuery UI? Для тех же табов полно современным легких кастомизиремых решений. На том же гитхабе: https://github.com/search?l=JavaScript&o=desc&q=jq...
!important не обязателен, скорее всего класса .plugin-name бует достаточно чтобы определить свойства правильно. Почитайте : https://css-tricks.com/specifics-on-css-specificity/
Единственно что конечно стоит более чётко прописать стили, и возможно для каких-то критичных моментов использовать !important. Посмотрите исходники популярных jquery плагинов, например.
Майк:
Что мешает вам прежде чем писать - проверить свои идеи?
Нет, не меняется положение текста (label) из-за указания vertical-align:top;
Оно БЫЛО изменено из-за того что у radio был задан margin сверху при vertical-align по умолчанию, а теперь пришло в норму. https://jsfiddle.net/DTcHh/13411/
Так же рабочее решение обернуть input и label в блок с position:relative с padding-left, а для input указать position:absolute и разместить в области того самого padding;
Ваш вариант с display: table-cell для того чтобы был рабочим потребует ещё обертку с display:table;
Ну а городить span с float:left и в нем абсолютно-позиционированный инпут... Не хочу больше тратить время на эту тему и проверять, но что-то мне подсказывает что в таком случае придется все элементы строки делать плавающими, а самой строке добавлять clearfix. Иначе у нас сначала будут 2 span с радио внутри, а затем 2 label от них.
При нажатию на кнопку меняем файл стилей и пишем значение в localStorage.