Показать сообщение отдельно
  #5 (permalink)  
Старый 22.04.2019, 15:40
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Dilettante_Pro, ваш скрипт работает правильно только для этого конкретного случая... попробуйте
@media all {
  .buttonRED:hover, .test {
    background-color: #ee5f5b;
  }

  .buttonRED {
    background-color: #B61E29;
    border: 1px solid #000;
    width:100px;
  }
  
  .buttonRED:active {
    background: #ff6;
  }
}


UPD
<style>
.buttonRED {
	background-color: #B61E29;
	border: 1px solid #000;
	width:100px;
}
.buttonRED:hover {
	background-color: #ee5f5b;
}
 
.buttonRED:active {
	background: #ff6;
}

@media all {
	.buttonRED:hover, .test {
		background-color: #ee5f5b;
	}

	.buttonRED {
		background-color: #B61E29;
		border: 1px solid #000;
		width:100px;
	}

	.buttonRED:active {
		background: #ff6;
	}
}

</style>
<div class="buttonRED">Красная кнопка</div>
<button id="clear">Удалить стили</button>
<script>

clear.onclick = function () {
	for(const styleSheet of document.styleSheets) {
		process(styleSheet.cssRules)
	}

	function process(cssRules) {
		for(const rule of cssRules) {
			if(rule instanceof CSSStyleRule) {
				rule.selectorText = rule.selectorText.replace(/\.buttonRED:(hover|active)/g, "#a:not(#b)");
			}

			if(rule instanceof CSSMediaRule) {
				process(rule.cssRules)
			}
		}
	}
}

</script>


Замена на a:not(b) является способом не поломать составной селектор!
Замена на #a:not(#b) является способом не поломать составной и сложный селекторы!

Последний раз редактировалось Malleys, 22.04.2019 в 16:31.
Ответить с цитированием