¿Es posible configurar el src
valor atributo en CSS? En la actualidad, lo que estoy haciendo es:
<img src="pathTo/myImage.jpg"/>
y quiero que sea algo como esto
<img class="myClass" />
.myClass {
some-src-property: url("pathTo/myImage.jpg");
Quiero hacer esto sin usar las propiedades background
o background-image:
en CSS.
getPropertyValue("--src")
ver: jsfiddle.net/CustomElementsExamples/vjfpu3a2Respuestas:
Uso
content:url("image.jpg")
.Solución de trabajo completa ( Live Demo):
Probado y funcionando:
Probado y no funciona:
fuente
content
aimg
, cambia su comportamiento. La imagen comienza a ignorar los atributos de tamaño, y en Chrome / Safari pierde las opciones del menú contextual como 'Guardar imagen'. Esto se debe a que asignar un elementocontent
convertido efectivamenteimg
de un elemento reemplazado vacío a algo parecido<span><img></span>
.Hay una solución que descubrí hoy (funciona en IE6 +, FF, Opera, Chrome):
Cómo funciona:
background-size
por ejemplo:background-size:cover;
que se ajuste a su imagen en el espacio asignado.También funciona para enviar-ingresar-imágenes, permanecen cliqueables.
Ver demostración en vivo: http://www.audenaerde.org/csstricks.html#imagereplacecss
¡Disfrutar!
fuente
src
atributo, esta es la técnica que necesita. +1 - me ayudó muchoUna colección de posibles métodos para configurar imágenes desde CSS
El
:after
pseudo-elemento de CSS2 o la sintaxis más nueva::after
de CSS3 junto con elcontent:
propiedad:Primera recomendación del W3C: Hojas de estilo en cascada, nivel 2, especificación CSS2 12 de mayo de 1998
Última recomendación del W3C: Selectores Nivel 3 Recomendación del W3C 29 de septiembre de 2011
Este método agrega contenido justo después del contenido del árbol de documentos de un elemento.
Nota: algunos navegadores procesan experimentalmente la
content
propiedad directamente sobre algunos selectores de elementos sin tener en cuenta incluso la última recomendación del W3C que define:Sintaxis CSS2 (compatible con reenvío):
Selector CSS3:
Representación predeterminada: Tamaño original (no depende de la declaración explícita de tamaño)
pero incluso en el momento de escribir estas líneas, el comportamiento con una
<IMG>
etiqueta aún no está definida y, aunque puede ser utilizado en una manera hackeado y no compatible con las normas , el uso con<img>
no se recomienda !Gran método candidato, ver conclusiones ...
CSS1 's
background-image:
propiedad:Primera recomendación del W3C: Hojas de estilo en cascada, nivel 1 17 de diciembre de 1996
Esta propiedad ha existido desde el comienzo de CSS y, sin embargo, merece una mención gloriosa.
Representación predeterminada: Tamaño original (no puede escalarse, solo colocarse)
Sin embargo ,
La
background-size:
propiedad de CSS3 mejoró al permitir múltiples opciones de escala:Último estado del W3C: Módulo de fondos y fronteras CSS de recomendación de candidatos Nivel 3 9 de septiembre de 2014
Pero incluso con esta propiedad, depende del tamaño del contenedor.
Sigue siendo un buen método candidato, vea las conclusiones ...
CSS2 's
list-style:
propiedad junto condisplay: list-item
:Primera recomendación del W3C: hojas de estilo en cascada, nivel 2, especificación CSS2 12 de mayo de 1998
list-style-image:
La propiedad establece la imagen que se utilizará como marcador de elemento de lista (viñeta)display: list-item
- Este valor hace que un elemento (por ejemplo,<li>
en HTML) genere un cuadro de bloque principal y un cuadro marcador.CSS abreviado: (
<list-style-type> <list-style-position> <list-style-image>
)Representación predeterminada: Tamaño original (no depende de la declaración explícita de tamaño)
Restricciones
Este método tampoco es adecuado para la
<img>
etiqueta, ya que no se puede realizar la conversión entre tipos de elementos, y aquí está el truco limitado y no conforme que no funciona en Chrome.Buen método candidato, ver conclusiones ...
CSS3 's
border-image:
propiedad recomendación :Último estado del W3C: Módulo de fondos y fronteras CSS de recomendación de candidatos Nivel 3 9 de septiembre de 2014
Un método de tipo de fondo que se basa en la especificación de tamaños de una manera bastante peculiar (no definida para este caso de uso) y las propiedades de borde de reserva hasta ahora (por ejemplo
border: solid
):Este ejemplo ilustra la imagen que se compone solo como una decoración de esquina inferior derecha :
Todavía no se puede cambiar una
<img>
etiqueta de 'ssrc
(pero aquí hay un truco ), en lugar podemos decorarlo:Mostrar fragmento de código
Buen método candidato para ser considerado después de la propagación de estándares.
El borrador de trabajo de
element()
notación de CSS3 también merece una mención:Usaremos el contenido renderizado de una de las dos imágenes ocultas para cambiar el fondo de la imagen en
#img1
función del selector de ID a través de CSS:Notas: Es experimental y solo funciona con el
-moz
prefijo en Firefox y solo sobrebackground
obackground-image
propiedades, también necesita tamaños especificados.Conclusiones
Dicho esto, exploremos las etiquetas HTML adecuadas para la visualización de imágenes:
El
<li>
elemento [HTML4.01 +]Caso de uso perfecto
list-style-image
con eldisplay: list-item
método.El
<li>
elemento, puede estar vacío, permite el flujo de contenido e incluso puede omitir la</li>
etiqueta final.Mostrar fragmento de código
Limitaciones: difícil de diseñar (
width:
ofloat:
podría ayudar)El
<figure>
elemento [HTML5 +]El elemento es válido sin contenido, pero se recomienda que contenga a
<figcaption>
.Representación predeterminada: el elemento está alineado a la derecha, con relleno izquierdo y derecho.
El
<object>
elemento [HTML4 +]¡El
data
atributo es obligatorio y puede tener un tipo MIME válido como valor!Nota: un truco para hacer uso de la
<object>
etiqueta desde CSS sería establecer un MimeType válido personalizadox-image/x
seguido de ningún dato (el valor no tiene datos después de la coma requerida,
)Representación predeterminada: 300 x 150 px, pero el tamaño se puede especificar en HTML o CSS.
La
<SVG>
etiquetaNecesita un navegador compatible con SVG y tiene un
<image>
elemento para imágenes rásterEl
<canvas>
elemento [HTML5 +].El
<input>
elemento contype="image"
Limitaciones:
que Chrome sigue y representa un cuadrado vacío de 4x4 px cuando no hay texto
Solución parcial, establecer
value=" "
:También tenga cuidado con el próximo
<picture>
elemento en HTML5.1 , actualmente un borrador de trabajo .fuente
Utilicé la solución div vacía, con este CSS:
HTML:
fuente
Encontré una mejor manera que las soluciones propuestas, pero sí utiliza la imagen de fondo. Método conforme (no se puede confirmar para IE6) Créditos: http://www.kryogenix.org/code/browser/lir/
El CSS:
La imagen anterior no se ve y la nueva se ve como se esperaba.
La siguiente solución ordenada solo funciona para webkit
fuente
content
propiedad solo se aplica a las:before
y:after
pseudo clases. Además, si tiene que admitir IE7 o anterior, creo que elcontent
soporte es inexistente. Aún así, muy tentador.content
propiedad se aplica a todos los elementos. http://www.w3.org/TR/css3-content/#contentEllos están en lo correcto. IMG es un elemento de contenido y CSS se trata de diseño. Pero, ¿qué tal cuando usa algunos elementos de contenido o propiedades para fines de diseño? Tengo IMG en mis páginas web que debe cambiar si cambio el estilo (el CSS).
Bueno, esta es una solución para definir la presentación IMG (realmente no es la imagen) en estilo CSS.
Funciona a las mil maravillas :)
fuente
background*
Aquí hay una muy buena solución -> http://css-tricks.com/replace-the-image-in-an-img-with-css/
Pro (s) y Con (s):
(+) funciona con vector imagen que tiene un ancho / alto relativo (algo que la respuesta de RobAu no maneja) (+) es un navegador cruzado (funciona también para IE8 +) (+) solo usa CSS. Por lo tanto, no es necesario modificar el img src (o si no tiene acceso / no desea cambiar el atributo img src ya existente). (-) lo siento, usa el atributo css de fondo :)
fuente
Puede definir 2 imágenes en su código HTML y usar
display: none;
para decidir cuál será visible.fuente
background-image
lo que no era una opción. Queríaimg
etiquetas para fines de SEO. ¡Tu respuesta es tan simple, elegante y resuelve todos mis obstáculos! ¡Bravo! Además, el usuario no tiene que descargar ambas imágenes. Además, puedo agregar cualquier cantidad de imágenes.No, no puede establecer el atributo src de la imagen a través de CSS. Lo más cercano que puede llegar es, como usted dice,
background
obackground-image
. No recomendaría hacerlo de todos modos, ya que sería algo ilógico.Sin embargo, hay una solución CSS3 disponible para usted, si los navegadores a los que se dirige pueden usarla. Use
content:url
como se describe en la respuesta de Pacerier . Puede encontrar otras soluciones para varios navegadores en las otras respuestas a continuación.fuente
Coloque varias imágenes en un contenedor "controlador" y, en su lugar, cambie la clase del contenedor. En CSS, agregue reglas para administrar la visibilidad de las imágenes según la clase del contenedor. Esto producirá el mismo efecto que cambiar
img src
propiedad de una sola imagen.HTML:
CSS:
Tenga en cuenta que precargará todas las imágenes, como con CSS
backround-image
s, pero a diferencia de cambiar aimg src
través de JS.fuente
Forma alternativa
fuente
Algunos datos los dejaría en HTML, pero es mejor definir el src en CSS:
fuente
Que yo sepa, NO PUEDES. CSS es sobre estilo y el src de la imagen es contenido.
fuente
Reiterar una solución previa y enfatizar la implementación pura de CSS aquí es mi respuesta.
Se necesita una solución CSS pura en los casos en que obtiene contenido de otro sitio y, por lo tanto, no tiene control sobre el HTML que se entrega. En mi caso, estoy tratando de eliminar la marca del contenido de origen con licencia para que el licenciatario no tenga que anunciar para la compañía a la que le compra el contenido. Por lo tanto, estoy eliminando su logotipo mientras mantengo todo lo demás. Debo señalar que esto está dentro del contrato de mi cliente para hacerlo.
fuente
Sé que esta es una pregunta muy antigua, sin embargo, ninguna respuesta proporciona el razonamiento adecuado de por qué esto nunca se puede hacer. Si bien puede "hacer" lo que está buscando, no puede hacerlo de manera válida. Para tener una etiqueta img válida, debe tener los atributos src y alt.
Entonces, cualquiera de las respuestas que dan una manera de hacer esto con una etiqueta img que no usa el atributo src promueve el uso de código no válido.
En resumen: lo que está buscando no se puede hacer legalmente dentro de la estructura de la sintaxis.
Fuente: Validador W3
fuente
O podrías hacer esto que encontré en la cosa interweb.
https://robau.wordpress.com/2012/04/20/override-image-src-in-css/
Así que efectivamente oculta la imagen y rellena el fondo. Oh, qué truco, pero si quieres una etiqueta IMG con texto alternativo y un fondo que se pueda escalar sin usar JavaScript?
En un proyecto en el que estoy trabajando ahora, creé una plantilla de ramita de bloque de héroe
fuente
Si no desea establecer una propiedad de fondo, no puede establecer el atributo src de una imagen usando solo CSS.
Alternativamente, puede usar JavaScript para hacer tal cosa.
fuente
Usando CSS, no se puede hacer. Pero, si está utilizando JQuery, algo así hará el truco:
fuente
Puedes convertirlo con JS:
fuente
Si está intentando agregar una imagen en un botón dinámicamente según el contexto de su proyecto, puede usar el? tomar como referencia la fuente en función de un resultado. Aquí estoy usando el diseño mvvm para permitir que mi valor Model.Phases [0] determine si quiero que mi botón se llene con imágenes de una bombilla encendida o apagada en función del valor de la fase de luz.
No estoy seguro si esto ayuda. Estoy usando JqueryUI, Blueprint y CSS. La definición de clase debería permitirle diseñar el botón según lo que desee.
fuente
Yo agregaría esto: la imagen de fondo también podría posicionarse con
background-position: x y;
(x horizontal y vertical). (..) Mi caso, CSS:fuente
Código HTML:
Código CSS:
He estado estudiando html después de la escuela durante unos días y quería saber cómo hacerlo. Descubrí el fondo y luego pon 2 y 2 juntos. ¡Esto funciona al 100%, lo comprobé, si no, asegúrate de completar las cosas necesarias! ¡Necesitamos especificar la altura, porque sin ella no habría nada! Dejaré este shell básico que puede agregar.
Ejemplo:
PD Sí, soy un usuario de Linux;)
fuente
Cualquier método basado en
background
obackground-image
es probable que falle cuando el usuario imprime el documento con "imprimir colores e imágenes de fondo " desactivado. Que es, por desgracia, el valor predeterminado típico del navegador.El único método compatible con la impresión y el navegador cruzado aquí es el propuesto por Bronx.
fuente
Cargando IMG src desde la definición de CSS, usando propiedades modernas de CSS
src
definición vacía en un <IMG> activa el controlador onerror: función loadIMGJSFiddle: https://jsfiddle.net/CustomElementsExamples/vjfpu3a2/
Respuestas SO relacionadas: WCPROPS
fuente
Solo usa HTML5 :)
fuente