Ich habe versucht, Svg im Bootstrap-Medienobjekt zu verwenden und festgestellt, dass es nicht die minimale Breite braucht, wenn die Breite nicht explizit festgelegt ist. Z.B. Sehen Sie den einfachen Fall mit einem PNG-Bild:Warum funktioniert Svg nicht im Bootstrap-Medienobjekt?
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="media">
<div class="media-left">
<a href="#">
<img class="media-object" src="https://www.tutorialspoint.com/bootstrap/images/64.jpg" alt="...">
</a>
</div>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
sample text. This is some sample text. This is some sample text. This is some sample text. This is some s
</div>
</div>
Das PNG-Bild verwendet wird, hat von 64px Standardbreite, so dass es als 64px breites Bild zeigt. Betrachten wir nun das gleiche Beispiel mit einem svg img:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="media">
<div class="media-left">
<a href="#">
<img class="media-object" src="http://www.iconninja.com/files/93/412/839/social-online-media-pay-paypay-pal-icon.svg" alt="...">
</a>
</div>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
The random text that shows that the text that was suypposed to be the text.
</div>
</div>
Wir können in zweiten Beispiel sehen, dass die svg nicht dauert es Mindeststandardbreite wie ein png oder jpg tut. Auf der anderen Seite, wenn ich einfach zwei Bild-Tags im body-Tag habe und das erste Bild png ist und das zweite ist svg und beide Bilder haben keine explizit eingestellte Breite, dann nehmen beide Bilder ihre Standardbreite an.
Meine Frage ist, warum in Bootstrap Media-Objekt die Svg nehmen Sie die Standardbreite?
Aber wenn ich zwei Bilder im body-Tag habe als: '
'. Nun habe ich die Attribute width und height auf keinem img-Tag erwähnt, aber beide haben ihre minimale Breite. Was ist im Bootstrap-Medienobjekt, das es so anzeigt, dass Svg diese minimale Breite nicht annimmt? – user31782Der Browser zeigt das Bild basierend auf der Standardbreite/-höhe oder der Breite/Höhe des Containers im Falle von SVG an, das "display: block" ist (was für Sie der Fall ist). Da der Container keine Breite hat, hat das Svg-Image auch keine Breite. – Dekel
[@ user31782] (http://stackoverflow.com/users/3429430/user31782). Es ist sehr wahrscheinlich, dass 'example.svg', (in Ihrem Kommentar erwähnt) explizit die Eigenschaften' width' und 'height' angibt, also kein Problem. Wenn Sie das "img" -Tag überprüfen, das mit der 'media-object'-Klasse in Ihrem ursprünglichen Gist, können Sie sehen, dass es keine explizite css' width'-Eigenschaft hat. [@Dekel] (http://stackoverflow.com/users/5037551/dekel) Die Antwort ist der beste Weg, um es zu beheben. Wenn Sie jedoch eine Verbindung zu der extern gehosteten '.svg' herstellen müssen und keine Möglichkeit haben, das Svg-Asset zu reparieren, können Sie inline' style = "width: 64px; height: 64px; float: left;" zu 'img' tag . – RobC