Я пытаюсь манипулировать svg-изображениями с помощью css, и на самом деле у меня не было ни малейшего успеха, я думаю, это какая-то деталь, которую я не делаю, поскольку в Интернете есть много примеров этого, которые я пытаюсь, и я представляю это потому, что это работает для всех, но я не смог разместить svg в html напрямую, ни через тег img, ни с помощью css в html или в svg как внутри, так и снаружи, я действительно не смог к, если кто-то знает, как это сделать, я был бы признателен. Вот мой код:
вектор.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Vector</title>
<style type="text/css">
*
{
margin: 0px;
padding: 0px;
}
html, body
{
height: 100%;
}
body
{
background-color: red;
}
</style>
</head>
<body>
<img src="img/drawing.svg" alt="svg">
</body>
</html>
drawing.svg — файл был создан с помощью inkscape, я просто хочу изменить цвет окна, но я даже не смог этого сделать. class="cuadrado"
Я помещаю атрибут вручную, и, как вы можете видеть во второй строке кода, я вставляю CSS в изображение svg извне.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="epa.css"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
id="svg2"
viewBox="0 0 744.09448819 1052.3622047"
height="297mm"
width="210mm">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<rect
y="233.69289"
x="102.70579"
height="270.90512"
width="315.55981"
id="rect3336"
style="fill:#00ff00;fill-opacity:1"
class="cuadrado"/>
</g>
</svg>
epa.css — этот файл находится в той же папке, что и изображение svg, и, как вы можете видеть, он очень, очень прост.
#rect3336
{
fill: blue;
fill-opacity:1;
}
Файл "svg" и файл "css" находятся в папке "img", файл "vector.html" находится в основной папке, т.е. "img" является подпапкой. Надеюсь, вы мне поможете.
Вы совсем рядом, чтобы не модифицировать свой SVG, добавьте в него неудачный
!important
, чтобы он переопределял встроенный стиль:В зависимости от того, как вы хотите обрабатывать свой SVG, вы можете сделать это по-другому:
Изменить для использования внешних таблиц стилей:
Обычно для использования внешних таблиц стилей я обычно группирую svg в один файл и ссылаюсь на них там:
изображения.svg
index.html
стиль.css
Что бы я сделал, так это преобразовал SVG в шрифт, который намного проще изменить с помощью css.
проверить это расширение Chrome
https://icooon.io/app/#/выбрать
Я думаю, это из-за использования внешнего svg, будучи внешними, его части не являются частью DOM, и поэтому css не может их прочитать, если вы вырезаете и вставляете svg в html, он работает, я также смотрю, как решить это с помощью внешнего svg
Вы можете изменить атрибуты в файле SVG без использования CSS. Для этого вам нужно вставить изображение на страницу, загрузив его из каталога, который у вас есть в приложении. Код для размещения изображения будет таким:
Затем вы создаете функцию, в которой вы ищете элемент в SVG, чтобы изменить цвет.
На странице вы создаете функцию, которую вы вызываете для изменения цвета, которая будет иметь:
Я надеюсь, что это работает для вас.
Ваше здоровье