Есть ли способ создать класс, который удаляет наведение CSS из элемента?

Скажем, у меня есть два элемента:

<div class="orange noHover">Whatever</div>
<div class="blue noHover">Whatever2</div>

.orange {
    color:orange;
}
.orange:hover {
    color:red;
}
.blue {
    color:blue;
}
.blue:hover {
    color:green;
}
.noHover:hover {
    //Remove all hover css applied
}

Я хочу, чтобы класс noHover вел себя так, как будто оранжево-синий CSS никогда не применялся ни к одному элементу. Таким образом, оранжевый всегда будет оранжевым, а синий - синим.

-5
uesports135 4 Дек 2014 в 00:54
3
Точно так, как вы написали? Я имею в виду, что, по сути, вы просите людей сделать сброс для вас, не зная, что вам нужно для сброса.
 – 
Josh Burgess
4 Дек 2014 в 00:57
Неизвестный ховер? Файлы CSS показывают :hover
 – 
Christina
4 Дек 2014 в 00:57
2
Что такое «нормальное» поведение при наведении? Просто примените любой стиль наведения, который вы хотите, прямо там, где у вас есть комментарий...
 – 
CaldwellYSR
4 Дек 2014 в 00:57
Непонятно, о чем вы спрашиваете.
 – 
Etheryte
4 Дек 2014 в 00:57
1
– Нет такой вещи, как то, о чем вы просите. Вам нужно сбросить определенные стили, применяемые к элементу при наведении. Это требует знания того, что применяется. «По умолчанию» нельзя применить, поскольку стили не определены и часто зависят от носителя (программного/аппаратного обеспечения) устройства, на котором к ним осуществляется доступ.
 – 
Josh Burgess
4 Дек 2014 в 01:03

2 ответа

Лучший ответ

Насколько я могу судить, вы хотите, чтобы элементы ничего не делали при наведении курсора. Другими словами, они сохраняют те стили, которые у них обычно были бы, когда они не зависали. Например, если у них оранжевый фон, когда они не наведены, вы хотите, чтобы они оставались оранжевыми.

К сожалению, с чистым css это невозможно сделать.

1
dave mankoff 4 Дек 2014 в 01:06

Хорошо, может быть, это не совсем то, что вы имели в виду, но это сработает:

.orange,
.orange.noHover:hover {
    color:orange;
}

.orange:hover {
    color:red;
}

.blue,
.blue.noHover:hover {
    color:blue;
}

.blue:hover {
    color:green;
}

Другой метод, но не совместимый с IE8 и ниже:

.orange {
    color:orange;
}
.orange:not(.noHover):hover {
    color:red;
}
.blue {
    color:blue;
}
.blue:not(.noHover):hover {
    color:green;
}
0
MrCarrot 4 Дек 2014 в 03:46
В этом случае это сработает, но я надеялся, что класс переопределит любой класс. Так что мне не нужно было бы писать крайний случай css для любого элемента, к которому я применяю hover css.
 – 
uesports135
4 Дек 2014 в 19:46