Ist es möglich, den src
Attributwert in CSS festzulegen? Zur Zeit mache ich Folgendes:
<img src="pathTo/myImage.jpg"/>
und ich möchte, dass es so etwas ist
<img class="myClass" />
.myClass {
some-src-property: url("pathTo/myImage.jpg");
Ich möchte dies tun, ohne die Eigenschaften background
oder background-image:
in CSS zu verwenden.
getPropertyValue("--src")
siehe: jsfiddle.net/CustomElementsExamples/vjfpu3a2Antworten:
Verwenden Sie
content:url("image.jpg")
.Voll funktionsfähige Lösung ( Live Demo):
Getestet und funktionsfähig:
Geprüft und nicht arbeiten:
quelle
content
animg
, es sein Verhalten ändert. Das Bild beginnt, Größenattribute zu ignorieren, und in Chrome / Safari verliert es die Kontextmenüoptionen wie "Bild speichern". Dies liegt daran, dass das Zuweisen einescontent
effektivimg
von einem leeren ersetzten Element zu etwas konvertiert<span><img></span>
.Es gibt eine Lösung, die ich heute herausgefunden habe (funktioniert in IE6 +, FF, Opera, Chrome):
Wie es funktioniert:
background-size
beispielsweisebackground-size:cover;
Folgendes : Passt Ihr Bild in den zugewiesenen Bereich.Es funktioniert auch für Submit-Input-Bilder, sie bleiben anklickbar.
Siehe Live-Demo: http://www.audenaerde.org/csstricks.html#imagereplacecss
Genießen!
quelle
src
Attribut hat, ist dies die Technik, die Sie benötigen. +1 - hat mir sehr geholfenEine Sammlung möglicher Methoden zum Festlegen von Bildern aus CSS
CSS2 ‚s
:after
pseudo-Element oder die neuere Syntax::after
von CSS3 zusammen mit dercontent:
Eigenschaft:Erste W3C-Empfehlung: Cascading Style Sheets, CSS2-Spezifikation der Stufe 2 12. Mai 1998
Letzte W3C-Empfehlung: Selektoren W3C-Empfehlung der Stufe 3 29. September 2011
Diese Methode hängt den Inhalt direkt nach dem Dokumentbauminhalt eines Elements an.
Hinweis: Einige Browser rendern die Eigenschaft experimentell
content
direkt über einige Element-Selektoren, ohne die neueste W3C-Empfehlung zu berücksichtigen, die Folgendes definiert:CSS2-Syntax (vorwärtskompatibel):
CSS3-Auswahl:
Standard-Rendering: Originalgröße (hängt nicht von der expliziten Größendeklaration ab)
Aber selbst zum Zeitpunkt dieses Schreibens ist das Verhalten mit einem
<IMG>
Tag noch nicht definiert, und obwohl es gehackt und nicht standardkonform verwendet werden kann , wird die Verwendung mit<img>
nicht empfohlen !Tolle Kandidatenmethode, siehe Schlussfolgerungen ...
CSS1 -
background-image:
Eigenschaft:Erste W3C-Empfehlung: Cascading Style Sheets, Stufe 1, 17. Dezember 1996
Diese Eigenschaft gibt es schon seit Beginn von CSS und verdient dennoch eine glorreiche Erwähnung.
Standard-Rendering: Originalgröße (kann nicht skaliert, nur positioniert werden)
Allerdings ist
Die
background-size:
Eigenschaft von CSS3 wurde verbessert, indem mehrere Skalierungsoptionen zugelassen wurden:Letzter W3C-Status: Kandidatenempfehlung CSS-Hintergründe und Grenzen Modul Stufe 3 9. September 2014
Aber auch bei dieser Eigenschaft hängt es von der Containergröße ab.
Immer noch eine gute Kandidatenmethode, siehe Schlussfolgerungen ...
CSS2 's
list-style:
Eigenschaft von zusammen mitdisplay: list-item
:Erste W3C-Empfehlung: Cascading Style Sheets, CSS2-Spezifikation der Stufe 2, 12. Mai 1998
list-style-image:
Eigenschaft legt das Bild fest, das als Listenelementmarkierung (Aufzählungszeichen) verwendet wird.display: list-item
- Dieser Wert bewirkt, dass ein Element (z. B.<li>
in HTML) ein Hauptblockfeld und ein Markierungsfeld generiert.Kurzschrift CSS: (
<list-style-type> <list-style-position> <list-style-image>
)Standard-Rendering: Originalgröße (hängt nicht von der expliziten Größendeklaration ab)
Beschränkungen:
Diese Methode ist auch nicht für das
<img>
Tag geeignet, da die Konvertierung nicht zwischen Elementtypen durchgeführt werden kann eingeschränkte, nicht konforme Hack , der unter Chrome nicht funktioniert.Gute Kandidatenmethode, siehe Schlussfolgerungen ...
CSS3 -
border-image:
Eigenschaft Empfehlung :Letzter W3C-Status: Kandidatenempfehlung CSS-Hintergründe und Grenzen Modul Stufe 3 9. September 2014
Eine Methode vom Hintergrundtyp , die sich auf die Angabe von Größen auf eine ziemlich eigenartige Weise (für diesen Anwendungsfall nicht definiert) und bisherige Fallback-Randeigenschaften (z. B.
border: solid
) stützt :Dieses Beispiel zeigt das Bild, das nur als Dekoration in der unteren rechten Ecke erstellt wird :
Trotzdem kann es das Tag eines nicht ändern (aber hier ist ein Hack ), stattdessen können wir es dekorieren:
<img>
src
Code-Snippet anzeigen
Gute Kandidatenmethode, die nach der Verbreitung von Standards in Betracht gezogen werden muss.
CSS3 ‚s
element()
Notation Arbeitsentwurf ist eine Erwähnung wert auch:Wir werden die Verwendung gerenderte Inhalte von einem der beiden verborgenen Bildern um das Bild zu ändern Hintergrund in
#img1
basierend auf der ID - Auswahl über CSS:Hinweise: Es ist experimentell und funktioniert nur mit dem
-moz
Präfix in Firefox und nur überbackground
oderbackground-image
Eigenschaften. Außerdem müssen die angegebenen Größen angegeben werden.Schlussfolgerungen
Lassen Sie uns jedoch HTML-Tags untersuchen, die für die Bildanzeige geeignet sind:
Das
<li>
Element [HTML4.01 +]Perfekter Einsatz des
list-style-image
mitdisplay: list-item
Methode.Das
<li>
Element kann leer sein, ermöglicht den Flussinhalt und es ist sogar zulässig, das</li>
End-Tag wegzulassen .Code-Snippet anzeigen
Einschränkungen: schwer zu stylen (
width:
oderfloat:
helfen)Das
<figure>
Element [HTML5 +]Das Element ist ohne Inhalt gültig, es wird jedoch empfohlen, a zu enthalten
<figcaption>
.Standard-Rendering: Das Element ist rechtsbündig, mit links und rechts aufgefüllt!
Das
<object>
Element [HTML4 +]Das
data
Attribut ist erforderlich und kann einen gültigen MIME-Typ als Wert haben!Hinweis: Ein Trick, um das
<object>
Tag aus CSS zu verwenden, besteht darin, einen benutzerdefinierten gültigen MimeTypex-image/x
gefolgt von keinen Daten festzulegen (Wert enthält keine Daten nach dem erforderlichen Komma,
).Standard-Rendering: 300 x 150 Pixel, aber die Größe kann entweder in HTML oder CSS angegeben werden.
Das
<SVG>
TagBenötigt einen SVG- fähigen Browser und verfügt über ein
<image>
Element für RasterbilderDas
<canvas>
Element [HTML5 +].Das
<input>
Element mittype="image"
Einschränkungen:
welches Chrome folgt und ein leeres 4x4px-Quadrat rendert, wenn kein Text vorhanden ist
Teillösung, eingestellt
value=" "
:Achten Sie auch auf das bevorstehende
<picture>
Element in HTML5.1 , derzeit ein funktionierender Entwurf .quelle
Ich habe die leere Div-Lösung mit diesem CSS verwendet:
HTML:
quelle
Ich habe einen besseren Weg gefunden als die vorgeschlagenen Lösungen, aber es wird tatsächlich das Hintergrundbild verwendet. Konforme Methode (kann für IE6 nicht bestätigt werden) Credits: http://www.kryogenix.org/code/browser/lir/
Das CSS:
Das alte Bild wird nicht gesehen und das neue wird wie erwartet gesehen.
Die folgende saubere Lösung funktioniert nur für das Webkit
quelle
content
Eigenschaft nur für die Klassen:before
und:after
pseudo gilt. Wenn Sie IE7 oder früher unterstützen müssen, gibt es meines Erachtens keine Unterstützungcontent
. Trotzdem sehr verlockend.content
Eigenschaft gilt für alle Elemente. http://www.w3.org/TR/css3-content/#contentSie haben recht. IMG ist ein Inhaltselement und bei CSS geht es um Design. Aber wie wäre es, wenn Sie einige Inhaltselemente oder Eigenschaften für Designzwecke verwenden? Ich habe IMG auf meinen Webseiten, die sich ändern müssen, wenn ich den Stil (das CSS) ändere.
Nun, dies ist eine Lösung zum Definieren der IMG-Präsentation (nicht wirklich das Bild) im CSS-Stil.
Es wirkt wie ein Zauber :)
quelle
background*
Hier ist eine sehr gute Lösung -> http://css-tricks.com/replace-the-image-in-an-img-with-css/
Pro (s) und Con (s):
(+) funktioniert mit Vektor Bild , die relative Breite / Höhe (eine Sache , die haben Robau ‚s Antwort nicht behandelt)
(+) ist Cross - Browser (funktioniert auch für IE8 +)
(+) verwendet es nur CSS. Sie müssen das img src also nicht ändern (oder wenn Sie keinen Zugriff haben / das bereits vorhandene img src-Attribut nicht ändern möchten).
(-) Entschuldigung, es wird das Hintergrund-CSS-Attribut verwendet :)
quelle
Sie können 2 Bilder in Ihrem HTML-Code definieren und
display: none;
damit entscheiden, welches sichtbar sein soll.quelle
background-image
war dies keine Option. Ich wollteimg
Tags für SEO-Zwecke. Ihre Antwort ist so einfach, elegant und löst alle meine Hürden! Bravo! Außerdem muss der Benutzer nicht beide Bilder herunterladen. Außerdem kann ich beliebig viele Bilder hinzufügen.Nein, Sie können das Attribut image src nicht über CSS festlegen. Der nächste, den Sie bekommen können, ist, wie Sie sagen,
background
oderbackground-image
. Ich würde das sowieso nicht empfehlen, da es etwas unlogisch wäre.Es steht Ihnen jedoch eine CSS3-Lösung zur Verfügung, wenn die Browser, auf die Sie abzielen, diese verwenden können. Verwenden Sie
content:url
wie in Paceriers Antwort beschrieben . Weitere browserübergreifende Lösungen finden Sie in den anderen Antworten unten.quelle
Fügen Sie mehrere Bilder in einen "steuernden" Container ein und ändern Sie stattdessen die Klasse des Containers. Fügen Sie in CSS Regeln hinzu, um die Sichtbarkeit von Bildern abhängig von der Klasse des Containers zu verwalten. Dies hat den gleichen Effekt wie das Ändern
img src
Eigenschaften eines einzelnen Bildes.HTML:
CSS:
Beachten Sie, dass alle Bilder vorgeladen werden, wie bei CSS
backround-image
, jedoch im Gegensatz zum Ändernimg src
über JS.quelle
Alternativer Weg
quelle
Einige Daten würde ich in HTML belassen, aber es ist besser, den src in CSS zu definieren :
quelle
Soweit mir bekannt ist, können Sie nicht. Bei CSS geht es um Stil und die src des Bildes ist Inhalt.
quelle
Eine vorherige Lösung zu wiederholen und die reine CSS-Implementierung hier hervorzuheben, ist meine Antwort.
Eine reine CSS-Lösung ist erforderlich, wenn Sie Inhalte von einer anderen Website beziehen und daher keine Kontrolle über den bereitgestellten HTML-Code haben. In meinem Fall versuche ich, das Branding von lizenzierten Quellinhalten zu entfernen, damit der Lizenznehmer nicht für das Unternehmen werben muss, bei dem er die Inhalte kauft. Deshalb entferne ich ihr Logo, während ich alles andere behalte. Ich sollte beachten, dass dies im Vertrag meines Kunden liegt.
quelle
Ich weiß, dass dies eine wirklich alte Frage ist, aber keine Antworten liefern die richtige Begründung dafür, warum dies niemals möglich ist. Während Sie "tun" können, wonach Sie suchen, können Sie es nicht auf gültige Weise tun. Um ein gültiges img-Tag zu haben, muss es es die Attribute src und alt haben.
Alle Antworten, die eine Möglichkeit bieten, dies mit einem img-Tag zu tun, das das src-Attribut nicht verwendet, fördern die Verwendung von ungültigem Code.
Kurz gesagt: Was Sie suchen, kann innerhalb der Struktur der Syntax nicht legal ausgeführt werden.
Quelle: W3-Validator
quelle
Oder Sie könnten dies tun, was ich auf dem Interweb-Ding gefunden habe.
https://robau.wordpress.com/2012/04/20/override-image-src-in-css/
So verstecken Sie das Bild effektiv und füllen den Hintergrund auf. Oh, was für ein Hack, aber wenn Sie ein IMG-Tag mit Alternativtext und einem Hintergrund möchten, der ohne Verwendung von JavaScript skaliert werden kann?
In einem Projekt, an dem ich gerade arbeite, habe ich eine Heldenblock-Zweigvorlage erstellt
quelle
Wenn Sie keine Hintergrundeigenschaft festlegen möchten, können Sie das src-Attribut eines Bildes nicht nur mit CSS festlegen.
Alternativ können Sie JavaScript verwenden, um so etwas zu tun.
quelle
Mit CSS ist dies nicht möglich. Wenn Sie jedoch JQuery verwenden, reicht Folgendes aus:
quelle
Sie können es mit JS konvertieren:
quelle
Wenn Sie versuchen, ein Bild dynamisch basierend auf dem Kontext Ihres Projekts in eine Schaltfläche einzufügen, können Sie das? Nehmen Sie die Referenz basierend auf einem Ergebnis. Hier verwende ich mvvm design, um meinen Model.Phases [0] -Wert bestimmen zu lassen, ob meine Schaltfläche basierend auf dem Wert der Lichtphase mit Bildern einer Glühbirne gefüllt werden soll.
Ich bin mir nicht sicher, ob dies hilft. Ich verwende JqueryUI, Blueprint und CSS. Die Klassendefinition sollte es Ihnen ermöglichen, die Schaltfläche nach Ihren Wünschen zu gestalten.
quelle
Ich würde dies hinzufügen: Hintergrundbild könnte auch mit
background-position: x y;
(x horizontal y vertikal) positioniert werden . (..) Mein Fall, CSS:quelle
HTML Quelltext:
CSS-Code:
Ich habe nach der Schule einige Tage lang HTML gelernt und wollte wissen, wie das geht. Fand den Hintergrund heraus und setzte dann 2 und 2 zusammen. Dies funktioniert zu 100%. Ich habe es überprüft. Wenn nicht, stellen Sie sicher, dass Sie die erforderlichen Dinge ausfüllen !!! Wir müssen die Höhe angeben, denn ohne sie gäbe es nichts !!! Ich werde diese grundlegende Shell verlassen, die Sie hinzufügen können.
Beispiel:
PS Ja, ich bin ein Linux-Benutzer;)
quelle
Jede Methode, die auf dem Dokument basiert
background
oderbackground-image
wahrscheinlich fehlschlägt, wenn das Dokument mit deaktivierter Option " Hintergrundfarben und Bilder drucken" gedruckt wird . Welches ist leider typische Browser-Standardeinstellung.Die einzige druckfreundliche und browserübergreifende Methode ist die von Bronx vorgeschlagene.
quelle
Laden von IMG src aus der CSS-Definition mithilfe moderner CSS-Eigenschaften
src
Definition auf einem <IMG> löst die Funktion onerror handler: loadIMG ausJSFiddle: https://jsfiddle.net/CustomElementsExamples/vjfpu3a2/
Verwandte SO-Antworten: WCPROPS
quelle
Verwenden Sie einfach HTML5 :)
quelle