Bueno, esa es realmente una pregunta bastante interesante. Estoy tratando de pensar cómo harías un punto de referencia en algo como esto, especialmente porque la mayoría de las veces ni CSS ni JavaScript harán cosas realmente computacionalmente intensivas en una página web.
Mi instinto me dice que use CSS tanto como sea posible, pero no lo convierta en una regla difícil y rápida.
a:hover {
background-color: green;
}
es mejor semánticamente entonces
$('a').onmouseover(function() {
$(this).css('background-color','green');
})
PERO
$('a').onmouseover(function() {
if (somethingelsehappened) {
$(this).css('background-color','green');
}
})
Sería difícil (aunque no imposible) en CSS. Podrías hacerlo de esta manera.
$('a').onmouseover(function() {
if (somethingelsehappened) {
$(this).addClass('Green');
}
})
a.green {
background-color: green;
}
Esta sería realmente una forma un poco más incómoda de hacer lo que podría haberse hecho directamente en JavaScript, pero lo he estado pensando durante un par de minutos, e incluso aquí, la solución correcta podría ser un CSS, por ejemplo si estabas estableciendo muchos atributos al hacer el desplazamiento.
** Tenga en cuenta que no se espera que ninguno de este código funcione, estos son solo para fines de demostración. **