Ich baue eine Portfolio-Website auf.
HTML Quelltext
<div id = "hero">
<div id = "social">
<img src = "facebook.svg">
<img src = "linkedin.svg">
<img src = "instagram.svg">
</div>
</div>
CSS-Code (mit SASS)
#hero {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 300px;
#social {
width: 50%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
img {
width: 2em;
}
}
}
Das Problem ist, dass ich die Größe von SVGs mithilfe der CSS- width
Eigenschaft nicht ändern kann . Folgendes erhalte ich in verschiedenen Fällen:
img { width: 2em; }
img { width: 3em; }
img { width: em; }
Bitte beachten Sie, wie Symbole in der Mitte des hero
Div zusammenfallen.
Wenn ich stattdessen die CSS- height
Eigenschaft verwende:
img { height: 2em; }
img { height: 3em; }
img { height: 4em; }
Dieses Verhalten ist das, was ich brauche, aber ich bin mir nicht sicher, ob dies der richtige Weg ist. Warum passiert das? Kennen Sie bessere Möglichkeiten zur Größenänderung von SVG-Bildern (insbesondere mit dem Flexbox-Modell )?
width
und dasheight
der SVG nicht spezifiziere , kann ich es ohne Probleme skalieren.width
in CSS spezifizierten . Dasheight
kam von der SVG.Ich musste es selbst herausfinden, aber einige SVGs müssen mit der ViewBox & Breite + Höhe übereinstimmen.
ZB wenn es schon
width="x"
height="y"
dann = = hathinzufügen
<svg ... viewBox="0 0 [width] [height]">
und das Gegenteil.
Danach wird es mit skalieren
<svg ... style="width: xxx; height: yyy;">
quelle
width="100" height="100"
in der SVG-Datei definiert ist, fügen Sie diese hinzu,x="0px" y="0px" width="100" height="100" viewBox="0 0 100 100"
während Sie die bereits definierte beibehaltenwidth="100" height="100"
.img
damit Sie dies tun können:img{height: 20px; width: 20px;}
Das Bild wird skaliert.quelle
Sie müssen die
viewBox
Eigenschaft ändern, um die Höhe und Breite mit einem SVG korrekt zu ändern. Es befindet sich im<svg>
Tag des SVG.https://developer.mozilla.org/en/docs/Web/SVG/Attribute/viewBox
quelle
Sie können die
transform: scale("")
Option auch verwenden .quelle
So können Sie die
transform: scale(2.5);
Option ganz einfach verwenden, um beispielsweise das 2,5-fache zu skalieren.quelle