Tengo un caso en el que debo escribir código CSS en línea, y quiero aplicar un estilo de desplazamiento en un ancla.
¿Cómo puedo usar a:hover
CSS en línea dentro del atributo de estilo HTML?
Por ejemplo, no puedes usar clases CSS de manera confiable en correos electrónicos HTML.
html
css
inline-styles
Amr Elgarhy
fuente
fuente
Respuestas:
Respuesta corta: no puedes.
Respuesta larga: no deberías.
Déle un nombre de clase o una identificación y use hojas de estilo para aplicar el estilo.
:hover
es un pseudo-selector y, para CSS , solo tiene significado dentro de la hoja de estilo. No hay ningún equivalente de estilo en línea (ya que no define los criterios de selección).Respuesta a los comentarios del OP:
Vea Totally Pwn CSS con Javascript para un buen script sobre cómo agregar reglas CSS dinámicamente. También vea Cambiar la hoja de estilo para obtener información sobre la teoría sobre el tema.
Además, no olvide que puede agregar enlaces a hojas de estilo externas si es una opción. Por ejemplo,
Precaución: lo anterior supone que hay una sección de la cabeza .
fuente
style="{color:green;} :hover { color: red; }"
y Firefox logró colorear el enlace en verde, pero ignoré el cursor. Chrome ignoró a ambos. Las pruebas continuas serían bastante inútiles.Puede obtener el mismo efecto cambiando sus estilos con JavaScript en los parámetros
onMouseOver
yonMouseOut
, aunque es extremadamente ineficiente si necesita cambiar más de un elemento:Además, no puedo recordar con certeza si
this
funciona en este contexto. Puede que tenga que cambiarlo condocument.getElementById('idForLink')
.fuente
<div onMouseOver="this.style.backgroundColor='#F8F8F8'" onMouseOut="this.style.backgroundColor='#FFFFFF'"> ...
Podrías hacerlo en algún momento en el pasado. Pero ahora (según la última revisión del mismo estándar, que es la Recomendación del candidato) no puede.
fuente
<a href="http://www.w3.org/" style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
Llego extremadamente tarde a contribuir a esto, sin embargo, me entristeció ver que nadie sugirió esto, si realmente necesita un código en línea, esto es posible. Lo necesitaba para algunos botones de desplazamiento, el método es este:
En este caso, el código en línea: "background-color: red;" es el color del interruptor al pasar el mouse, coloque el color que necesita allí y luego esta solución funciona. Me doy cuenta de que esta puede no ser la solución perfecta en términos de compatibilidad, sin embargo, esto funciona si es absolutamente necesario.
fuente
No puede hacer exactamente lo que está describiendo, ya que
a:hover
es parte del selector, no las reglas CSS. Una hoja de estilo tiene dos componentes:Los estilos en línea solo tienen reglas; el selector está implícito como el elemento actual.
El selector es un lenguaje expresivo que describe un conjunto de criterios para unir elementos en un documento similar a XML.
Sin embargo, puede acercarse, porque un
style
conjunto técnicamente puede ir a casi cualquier lugar:fuente
<html> </html>
etiquetausando Javascript:
a) Agregar estilo en línea
b) o un método un poco más difícil: agregar "mouseover"
Nota: los estilos de varias palabras (es decir,
font-size
en Javascript) se escriben juntos :element.style.fontSize="12px"
fuente
Este es el mejor ejemplo de código:
Sugerencia del moderador: mantenga su separación de preocupaciones.
HTML
JS
fuente
Las declaraciones de pseudoclase en línea no son compatibles con la iteración actual de CSS (aunque, por lo que entiendo, puede venir en una versión futura).
Por ahora, su mejor opción es probablemente definir un bloque de estilo directamente encima del enlace que desea diseñar:
fuente
Como se señaló, no puede establecer estilos en línea arbitrarios para el desplazamiento, pero puede cambiar el estilo del cursor de desplazamiento en CSS utilizando lo siguiente en la etiqueta apropiada:
fuente
Hover es una pseudo clase y, por lo tanto, no se puede aplicar con un atributo de estilo. Es parte del selector.
fuente
Puedes hacerlo. Pero no en estilos en línea. Puedes usar
onmouseover
yonmouseout
eventos:fuente
Según sus comentarios, de todos modos está enviando un archivo JavaScript. Haz el rollover en JavaScript. El método de jQuery lo
$.hover()
hace fácil, al igual que cualquier otro contenedor de JavaScript. Tampoco es demasiado difícil en JavaScript directo.fuente
No hay forma de hacer esto. Sus opciones son usar un bloque JavaScript o CSS.
Quizás haya alguna biblioteca de JavaScript que convierta un atributo de estilo propietario en un bloque de estilo. Pero entonces el código no será compatible con el estándar.
fuente
Acabo de encontrar una solución diferente.
Mi problema: tengo una
<a>
etiqueta alrededor de algunas diapositivas / visor de contenido principal, así como<a>
etiquetas en el pie de página. Quiero que vayan al mismo lugar en IE, por lo que todo el párrafo estará subrayadoonHover
, aunque no sean enlaces: la diapositiva en su conjunto es un enlace. IE no sabe la diferencia. También tengo algunos enlaces reales en mi pie de página que necesitan el subrayado y el cambio de coloronHover
. Pensé que tendría que poner estilos en línea con las etiquetas de pie de página para cambiar el color, pero los consejos anteriores sugieren que esto es imposible.Solución: le di a los enlaces de pie de página dos clases diferentes, y mi problema se resolvió. Pude tener el
onHover
cambio de color en una clase, hacer que las diapositivasonHover
no tengan cambio de color / subrayado, ¡y aún así puedo tener los HREFS externos en el pie de página y las diapositivas al mismo tiempo!fuente
Estoy de acuerdo con la sombra . Puede usar el evento
onmouseover
yonmouseout
para cambiar el CSS través de JavaScript.Y no digas que las personas necesitan tener JavaScript activado. Es solo un problema de estilo, por lo que no importa si hay algunos visitantes sin JavaScript;) Aunque la mayor parte de la Web 2.0 funciona con JavaScript. Vea Facebook por ejemplo (mucho JavaScript) o Myspace .
fuente
Esto es bastante tarde en el juego, pero ¿cuándo usarías JavaScript en un correo electrónico HTML? Por ejemplo, en la empresa para la que trabajo actualmente (rima con Abodee), utilizamos el mínimo común denominador para la mayoría de las campañas de marketing por correo electrónico, y JavaScript simplemente no se está utilizando. Siempre. A menos que se refiera a algún tipo de preprocesamiento.
Como se menciona en una publicación relacionada: "Lotus Notes, Mozilla Thunderbird, Outlook Express y Windows Live Mail parecen admitir algún tipo de ejecución de JavaScript. Nada más lo hace".
Enlace al artículo del que se tomó esto: [ http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients]
Además, ¿cómo se traduciría el desplazamiento a dispositivos móviles? Por eso me gusta la respuesta de arriba:
Long answer: you shouldn't.
Si alguien tiene más información sobre este tema, no dude en corregirme. Gracias.
fuente
Entonces, esto no es exactamente lo que el usuario estaba buscando, pero encontré esta pregunta buscando una respuesta y se me ocurrió algo relacionado. Tenía un montón de elementos repetidos que necesitaban un nuevo color / desplazamiento para una pestaña dentro de ellos. Utilizo manillares, que es clave para mi solución, pero otros lenguajes de plantillas también pueden funcionar.
Definí algunos colores y los pasé a la plantilla del manillar para cada elemento. En la parte superior de la plantilla, definí una etiqueta de estilo y puse mi clase personalizada y el color de desplazamiento.
Luego usé el estilo en la plantilla:
Es posible que no necesite el
!important
fuente
puedes escribir un código en varios tipos
primero puedo escribir esto
html
css
puedes intentarlo de otra manera
html
css
también puedes intentar flotar en jquery
script java
html
en este código tiene una función tres en jquery primero prepara una función que es la función básica de jquery, luego tiene una función de desplazamiento en esta función cuando coloca el puntero en el texto, el color cambiará y luego el siguiente cuando sueltes el puntero al texto, será de un color diferente y esta es la tercera función
fuente
Ahora es posible con Hacss .
fuente
Tuve que evitar JavaScript, pero podría ir con el código del lado del servidor.
así que generé una identificación, creé un bloque de estilo, generé el enlace con esa identificación. Sí, es HTML válido.
fuente
Puede usar la pseudoclase solo
a:hover
en hojas de estilo externas. Por lo tanto, recomiendo usar una hoja de estilo externa. El codigo es:fuente
style
etiqueta.Puede hacer id agregando una clase pero nunca en línea.
2 líneas pero puedes reutilizar la clase en todas partes.
fuente
Mi problema fue que estoy construyendo un sitio web que utiliza muchos íconos de imágenes que tienen que ser intercambiados por una imagen diferente al pasar el mouse (por ejemplo, las imágenes azules se vuelven rojas al pasar el mouse). Produje la siguiente solución para esto:
Introduje un contenedor que contiene el par de imágenes. El primero es visible y el otro está oculto (pantalla: ninguno). Al pasar el cursor por el contenedor, el primero se oculta (pantalla: ninguno) y el segundo vuelve a aparecer (pantalla: bloque).
fuente