É possível definir o src
valor do atributo em CSS? No momento, o que estou fazendo é:
<img src="pathTo/myImage.jpg"/>
e eu quero que seja algo assim
<img class="myClass" />
.myClass {
some-src-property: url("pathTo/myImage.jpg");
Eu quero fazer isso sem usar as propriedades background
ou background-image:
em CSS.
getPropertyValue("--src")
consulte: jsfiddle.net/CustomElementsExamples/vjfpu3a2Respostas:
Use
content:url("image.jpg")
.Solução de trabalho completa ( Live Demo):
Testado e funcionando:
Testado e não está funcionando:
fonte
content
deimg
, muda seu comportamento. A imagem começa a ignorar os atributos de tamanho e, no Chrome / Safari, perde as opções do menu de contexto, como 'Salvar imagem'. Isso ocorre porque a atribuição de umcontent
efetivamente converteimg
do elemento substituído vazio para algo como<span><img></span>
.Existe uma solução que eu descobri hoje (funciona no IE6 +, FF, Opera, Chrome):
Como funciona:
background-size
por exemplo: obackground-size:cover;
que encaixa sua imagem no espaço alocado.Também funciona para enviar imagens de entrada e permanecer clicáveis.
Veja demo ao vivo: http://www.audenaerde.org/csstricks.html#imagereplacecss
Aproveitar!
fonte
src
atributo, esta é a técnica que você precisa. +1 - me ajudou muitoUma coleção de métodos possíveis para definir imagens de CSS
Pseudoelemento do CSS2
:after
ou a sintaxe mais recente::after
do CSS3, juntamente com acontent:
propriedade:Primeira recomendação do W3C: folhas de estilo em cascata, nível 2 Especificação CSS2 12 de maio de 1998
Última recomendação do W3C: seletores Nível 3 Recomendação do W3C 29 de setembro de 2011
Esse método anexa conteúdo logo após o conteúdo da árvore de documentos de um elemento.
Nota: alguns navegadores experimentalmente renderizam a
content
propriedade diretamente sobre alguns seletores de elementos, desconsiderando até a recomendação mais recente do W3C que define:Sintaxe CSS2 (compatível com a frente):
Seletor CSS3:
Renderização padrão: tamanho original (não depende da declaração explícita de tamanho)
mas mesmo no momento da redação deste texto, o comportamento com uma
<IMG>
tag ainda não está definido e, embora possa ser usado de maneira hackeada e não compatível com os padrões , o uso com<img>
não é recomendado !Ótimo método candidato, veja conclusões ...
CSS1 's
background-image:
propriedade:Primeira recomendação do W3C: folhas de estilo em cascata, nível 1 17 dez 1996
Esta propriedade existe desde o início do CSS e, no entanto, merece uma menção gloriosa.
Renderização padrão: tamanho original (não pode ser dimensionado, apenas posicionado)
No entanto ,
A
background-size:
propriedade do CSS3 foi aprimorada, permitindo várias opções de dimensionamento:Status mais recente do W3C: Nível 3 do Módulo 3 de Fundos e Fronteiras CSS de Recomendação do Candidato 9 de setembro de 2014
Mas mesmo com essa propriedade, isso depende do tamanho do contêiner.
Ainda é um bom método candidato, veja as conclusões ...
CSS2 's
list-style:
propriedade, juntamente comdisplay: list-item
:Primeira recomendação do W3C: folhas de estilo em cascata, nível 2 Especificação CSS2 12 de maio de 1998
list-style-image:
A propriedade define a imagem que será usada como marcador de item de lista (marcador)display: list-item
- Este valor faz com que um elemento (por exemplo,<li>
em HTML) gere uma caixa de bloco principal e uma caixa de marcador.CSS abreviado: (
<list-style-type> <list-style-position> <list-style-image>
)Renderização padrão: tamanho original (não depende da declaração explícita de tamanho)
Restrições:
Esse método também não é adequado para a
<img>
tag, pois a conversão não pode ser feita entre os tipos de elemento, e aqui está o hack limitado e não compatível que não funciona no Chrome.Bom método candidato, veja conclusões ...
CSS3 's
border-image:
propriedade recomendação :Status mais recente do W3C: Nível 3 do Módulo 3 de Fundos e Fronteiras CSS de Recomendação do Candidato 9 de setembro de 2014
Um método do tipo segundo plano que depende da especificação de tamanhos de uma maneira bastante peculiar (não definida para este caso de uso) e das propriedades da borda de fallback até o momento (por exemplo
border: solid
):Este exemplo ilustra a imagem sendo composta apenas como uma decoração de canto inferior direito :
Ainda não pode alterar uma
<img>
tag 'ssrc
(mas aqui está um hack ), em vez disso, pode decorá-lo:Mostrar snippet de código
Bom método candidato a ser considerado após a propagação dos padrões.
CSS3 s'
element()
minuta de trabalho da notação do também merece menção:Usaremos o conteúdo renderizado de uma das duas imagens ocultas para alterar o plano de fundo da imagem com
#img1
base no seletor de ID via CSS:Notas: É experimental e funciona apenas com o
-moz
prefixo no Firefox e apenas embackground
oubackground-image
propriedades, também precisa de tamanhos especificados.Conclusões
Dito isso, vamos explorar as tags HTML adequadas para a exibição da imagem:
O
<li>
elemento [HTML4.01 +]Caso de uso perfeito do método
list-style-image
withdisplay: list-item
.O
<li>
elemento, pode estar vazio, permite o fluxo de conteúdo e até é permitido omitir a</li>
tag final.Mostrar snippet de código
Limitações: difícil de estilizar (
width:
oufloat:
pode ajudar)O
<figure>
elemento [HTML5 +]O elemento é válido sem conteúdo, mas é recomendado que contenha a
<figcaption>
.Renderização padrão: o elemento está alinhado à direita, com preenchimento esquerdo e direito!
O
<object>
elemento [HTML4 +]O
data
atributo é obrigatório e pode ter um tipo MIME válido como um valor!Nota: um truque para usar a
<object>
tag do CSS seria definir um MimeType válido válido personalizado,x-image/x
seguido por nenhum dado (o valor não possui dados após a vírgula necessária,
)Renderização padrão: 300 x 150px, mas o tamanho pode ser especificado em HTML ou CSS.
o
<SVG>
tagPrecisa de um navegador compatível com SVG e possui um
<image>
elemento para imagens rasterizadasO
<canvas>
elemento [HTML5 +].o
<input>
elemento comtype="image"
Limitações:
que o Chrome segue e renderiza um quadrado vazio de 4x4px quando nenhum texto
Solução parcial, defina
value=" "
:Também fique atento ao próximo
<picture>
elemento no HTML5.1 , atualmente um rascunho de trabalho .fonte
Eu usei a solução div vazia, com este CSS:
HTML:
fonte
Encontrei uma maneira melhor do que as soluções propostas, mas ela usa a imagem de fundo. Método compatível (não é possível confirmar para o IE6) Créditos: http://www.kryogenix.org/code/browser/lir/
O CSS:
A imagem antiga não é vista e a nova é vista como esperado.
A seguinte solução pura funciona apenas para webkit
fonte
content
propriedade se aplica apenas às classes pseudo:before
e:after
. Além disso, se você precisar dar suporte ao IE7 ou anterior, acho que ocontent
suporte não existe. Ainda assim, muito tentador.content
propriedade se aplica a todos os elementos. http://www.w3.org/TR/css3-content/#contentEles estão certos. IMG é um elemento de conteúdo e CSS é sobre design. Mas e quando você usa alguns elementos ou propriedades de conteúdo para fins de design? Eu tenho IMG nas minhas páginas da web que devem mudar se eu mudar o estilo (o CSS).
Bem, esta é uma solução para definir a apresentação IMG (não realmente a imagem) no estilo CSS.
Ele funciona como um encanto :)
fonte
background*
Aqui está uma solução muito boa -> http://css-tricks.com/replace-the-image-in-an-img-with-css/
Pro (s) e Con (s):
(+) trabalha com vetor imagem que têm relação largura / altura (a coisa que Robau s' resposta de não lida com)
(+) é entre navegadores (funciona também para o IE8 +)
(+), usa apenas CSS. Portanto, não é necessário modificar o img src (ou se você não tem acesso / não deseja alterar o atributo img src já existente).
(-) desculpe, ele usa o atributo css em segundo plano :)
fonte
Você pode definir 2 imagens no seu código HTML e usar
display: none;
para decidir qual delas estará visível.fonte
background-image
não era uma opção. Eu queriaimg
tags para fins de SEO. Sua resposta é tão simples, elegante e resolve todos os meus obstáculos! bravo! Além disso, o usuário não precisa baixar as duas imagens. Além disso, posso adicionar qualquer número de imagens.Não, você não pode definir o atributo src da imagem via CSS. O mais próximo que você pode chegar é, como você diz,
background
oubackground-image
. Eu não recomendaria fazer isso de qualquer maneira, pois seria um pouco ilógico.No entanto, existe uma solução CSS3 disponível para você, se os navegadores que você está segmentando puderem usá-la. Use
content:url
como descrito na resposta do Pacerier . Você pode encontrar outras soluções para vários navegadores nas outras respostas abaixo.fonte
Coloque várias imagens em um contêiner "controlador" e altere a classe do contêiner. No CSS, adicione regras para gerenciar a visibilidade das imagens, dependendo da classe do contêiner. Isso produzirá o mesmo efeito que a alteração da
img src
propriedade de uma imagem única.HTML:
CSS:
Observe que ele pré-carregará todas as imagens, como CSS
backround-image
, mas diferente da alteraçãoimg src
via JS.fonte
Caminho alternativo
fonte
Alguns dados eu deixaria em HTML, mas é melhor definir o src no CSS:
fonte
Tanto quanto sei, VOCÊ NÃO PODE. CSS é sobre estilo e src da imagem é conteúdo.
fonte
Reiterar uma solução anterior e enfatizar a pura implementação de CSS aqui é a minha resposta.
Uma solução de CSS puro é necessária nos casos em que você está adquirindo conteúdo de outro site e, portanto, você não tem controle sobre o HTML que é entregue. No meu caso, estou tentando remover a marca do conteúdo de origem licenciado para que o licenciado não precise anunciar para a empresa da qual está comprando o conteúdo. Portanto, estou removendo o logotipo deles, mantendo todo o resto. Devo observar que isso está dentro do contrato do meu cliente para fazê-lo.
fonte
Eu sei que essa é uma pergunta muito antiga, mas nenhuma resposta fornece o raciocínio adequado para o porquê disso nunca ser feito. Enquanto você pode "fazer" o que está procurando, não pode fazê-lo de maneira válida. Para ter uma tag img válida, é necessário ter os atributos src e alt.
Portanto, qualquer uma das respostas que permitam fazer isso com uma tag img que não use o atributo src está promovendo o uso de código inválido.
Em resumo: o que você está procurando não pode ser feito legalmente dentro da estrutura da sintaxe.
Fonte: Validador W3
fonte
Ou você poderia fazer isso que eu encontrei na coisa da interweb.
https://robau.wordpress.com/2012/04/20/override-image-src-in-css/
Esconder a imagem de maneira tão eficaz e preencher o fundo. Ah, que truque, mas se você quiser uma tag IMG com texto alternativo e um plano de fundo que possa ser dimensionado sem usar JavaScript?
Em um projeto em que estou trabalhando agora, criei um modelo de galho de bloco de herói
fonte
Se você não deseja definir uma propriedade de plano de fundo, não pode definir o atributo src de uma imagem usando apenas CSS.
Como alternativa, você pode usar o JavaScript para fazer isso.
fonte
Usando CSS, isso não pode ser feito. Mas, se você estiver usando o JQuery, algo assim fará o truque:
fonte
Você pode convertê-lo com JS:
fonte
Se você estiver tentando adicionar uma imagem em um botão dinamicamente, com base no contexto do seu projeto, poderá usar o? tomar para referenciar a fonte com base em um resultado. Aqui estou usando o mvvm design para permitir que meu valor Model.Phases [0] determine se eu quero que meu botão seja preenchido com imagens de uma lâmpada ligada ou desligada com base no valor da fase da luz.
Não tenho certeza se isso ajuda. Estou usando JqueryUI, Blueprint e CSS. A definição da classe deve permitir que você estilize o botão com base no que quiser.
fonte
Eu acrescentaria o seguinte: a imagem de fundo também pode ser posicionada com
background-position: x y;
(x horizontal e vertical). (..) Meu caso, CSS:fonte
Código HTML:
Código CSS:
Estou estudando html depois da escola há alguns dias e queria saber como fazer isso. Descobriu o fundo e, em seguida, coloque 2 e 2 juntos. Isso funciona 100% eu verifiquei, se não tiver certeza de preencher as coisas necessárias !!! Precisamos especificar a altura, porque sem ela não haveria nada !!! Vou deixar esse shell básico que você pode adicionar.
Exemplo:
PS Sim, eu sou um usuário Linux;)
fonte
Qualquer método baseado em
background
oubackground-image
provavelmente falhará quando o usuário imprimir o documento com "imprimir cores e imagens de plano de fundo " desativadas. Infelizmente, esse é o padrão típico do navegador.O único método compatível com a impressão e compatível com vários navegadores é o proposto pelo Bronx.
fonte
Carregando IMG src da definição de CSS, usando propriedades modernas de CSS
src
definição vazia em um <IMG> aciona o manipulador onerror: função loadIMGJSFiddle: https://jsfiddle.net/CustomElementsExamples/vjfpu3a2/
Respostas SO relacionadas: WCPROPS
fonte
Basta usar HTML5 :)
fonte