Esto es una especie de situación de Catch-22.
Por un lado, se puede añadir un bloque de la derecha el estilo antes de que se inserta el elemento en la página, pero Chris Pebble señala los problemas con eso. (Si decide hacerlo, asegúrese de elegir identificadores únicos para sus Elementos para que sus selectores no seleccionen ni personalicen nada accidentalmente).
Por otro lado, se podría hacer algo como esto:
<a href="#" onmouseover="this.style.color=red;" onmouseout="this.style.color='blue';">...</a>
Pero, eso es desagradable en sí mismo, ya que une el marcado, la presentación, comportamiento, y un montón de otras cosas.
También podría inyectar una hoja de estilos en la página escribiendo una etiqueta de enlace o manipular document.styleSheets, pero eso va a provocar una descarga.
Normalmente he visto el primer método (agregar un bloque de estilo) hecho en grande. Los portales "modulares" hacen este tipo de cosas, así que tal vez sea el estándar de facto (¿es al menos más legible y tal vez más fácil de mantener que incluir JavaScript aquí?). El método de JavaScript parece tener el menor impacto en el DOM y en la página general, ya que te estás reservando la presentación.
Este es uno de esos pantanos dev front-end, donde cada respuesta que elija está mal en alguna medida, por lo que sopesar las opciones y elegir lo que es más fácil para que usted pueda construir y mantener.
@robbotic: Supongamos que tiene una función foo (cadena u, cadena color1, cadena color2) cuya salida es Coding Horror El uso de estilos de desplazamiento en línea es más simple. ¿Es esta una buena idea? Prefiero tener una función que tenga un estilo ... pero esto obliga a las personas que usan mi clase a usar css, lo que hace que la implementación sea un poco más útil a corto plazo. – Brian
@Brian Intento evitar los estilos en línea siempre que sea posible. Sé que son más rápidos de configurar, pero creo que perderás si alguna vez necesitas duplicar el mismo estilo en otro lugar. Prefiero tener un gran archivo CSS (o múltiples archivos CSS) con todos los estilos en mi sitio. De esta forma, puedo acceder fácilmente a cualquiera que quiera y puedo hacer un cambio y afectar todo lo que quiero en todo mi sitio. –
¿Cuál es exactamente el propósito de esto? El estilo en línea es una violación tóxica de separación de preocupaciones. Déjalo en CSS. – annakata