私はブートストラップメディアオブジェクトにsvgを使用しようとしていますが、幅が明示的に設定されていない場合、最小幅を取らないことがわかりました。例えば。 PNG形式の画像との単純なケースを考えてみましょう。それは64px広いイメージとして示してsvgがブートストラップメディアオブジェクトで動作しないのはなぜですか?
<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>
使用PNG画像は64pxのデフォルトの幅を持っています。今、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>
我々は第二の例でSVGはそれがないPNGまたはJPGなどの最低限のデフォルトの幅です取らないことがわかります。一方、bodyタグに2つの画像タグがあり、最初の画像がpngで2番目がsvgで、両方の画像の幅が明示的に設定されていない場合、両方の画像はデフォルトの幅になります。
私の質問は、なぜブートストラップメディアオブジェクトでsvgがデフォルトの幅になるのですか?
bodyタグに2つの画像がある場合は、「
」と表示されます。ここでは、imgタグのwidth属性とheight属性については言及していませんが、どちらも最小幅を取っています。 svgがそのminmumの幅をとらないような方法でそれを表示するブートストラップメディアオブジェクトには何が入っていますか? – user31782ブラウザはデフォルトの幅/高さ、または 'display:block'(あなたの場合)であるSVGの場合のコンテナの幅/高さに基づいてイメージを表示します。コンテナには幅がないので、svg-imageにも幅はありません。 – Dekel
[@ user31782](http://stackoverflow.com/users/3429430/user31782)。 'example.svg'(あなたのコメントに記載されています)は明らかに' width'と 'height'プロパティを明示しているので、問題はありません。あなたがオリジナルの要点に 'media-object'クラスを持つ' img'タグを調べると、明示的なCSSの 'width'プロパティがないことがわかります。 [@Dekel](http://stackoverflow.com/users/5037551/dekel)の答えは、それを修正するための最良の方法です。しかし、外部でホストされている '.svg'にリンクし、svgアセットを修正する方法がない場合は' style = "width:64px; height:64px; float:left;" '' 'img'タグにインライン展開できます。 – RobC