Dies Antwort basiert auf Antwort https://stackoverflow.com/a/24933495/3890888, aber mit einer reinen JavaScript-Version des dort verwendeten Skripts.
Du musst das SVG zu einem inline SVG machen. Du kannst dieses Skript verwenden, indem du der Abbildung eine Klasse svg
hinzufügst:
/*
* Ersetze alle SVG-Bilder durch Inline-SVG
*/
document.querySelectorAll('img.svg').forEach(function(img){
var imgID = img.id;
var imgClass = img.className;
var imgURL = img.src;
fetch(imgURL).then(function(response) {
return response.text();
}).then(function(text){
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(text, "text/xml");
// Holen Sie das SVG-Tag, den Rest ignorieren
var svg = xmlDoc.getElementsByTagName('svg')[0];
// Füge die ID des ersetzten Bildes dem neuen SVG hinzu
if(typeof imgID !== 'undefined') {
svg.setAttribute('id', imgID);
}
// Füge die Klassen des ersetzten Bildes dem neuen SVG hinzu
if(typeof imgClass !== 'undefined') {
svg.setAttribute('class', imgClass+' replaced-svg');
}
// Entferne alle ungültigen XML-Tags gemäß http://validator.w3.org
svg.removeAttribute('xmlns:a');
// Überprüfe, ob der Viewport festgelegt ist, ohne Viewport wird das SVG nicht skaliert.
if(!svg.getAttribute('viewBox') && svg.getAttribute('height') && svg.getAttribute('width')) {
svg.setAttribute('viewBox', '0 0 ' + svg.getAttribute('height') + ' ' + svg.getAttribute('width'))
}
// Ersetze das Bild durch das neue SVG
img.parentNode.replaceChild(svg, img);
});
});
Und dann, jetzt wenn du das tust:
.logo-img path {
fill: #000;
}
Oder vielleicht:
.logo-img path {
background-color: #000;
}
JSFiddle: http://jsfiddle.net/erxu0dzz/1/