コンテナの幅を画像のサイズに縮小したい。高さは、ブラウザ ウィンドウに対するパーセントで指定されます。
.img
{
width: auto;
height:100%;
}
.container
{
height:100%;
width:auto;
}
ここにフィドルがあります:
display:table
、同様のケースのように機能しません。これは、表のセルとして、画像が常に元のサイズの 100% パーセントで表示されるためです。
コンテナの幅を画像のサイズに縮小したい。高さは、ブラウザ ウィンドウに対するパーセントで指定されます。
.img
{
width: auto;
height:100%;
}
.container
{
height:100%;
width:auto;
}
ここにフィドルがあります:
display:table
、同様のケースのように機能しません。これは、表のセルとして、画像が常に元のサイズの 100% パーセントで表示されるためです。
その質問をして以来、私はある程度の進歩を遂げました。解決策は信じられないほど単純でした。float:left を追加するだけです。
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
height:100%;
width:100%;
}
.container {
background: green;
float: left;
height: 100%;
}
.img {
width:auto;
height:100%;
}
画像にパーセンテージの高さがある場合でも、コンテナーは期待どおりに縮小されます。 http://jsfiddle.net/EdgKr/74/
しかし、たとえばパディングを追加すると、非常に簡単に壊れてしまいます。 http://jsfiddle.net/EdgKr/72/
コンテナをその中身のサイズに一致させることを私が知っている(または現時点で考えることができる)唯一の方法は、それをfloat
ingすることです。それがオプションである場合、それはあなたが探しているものを得るかもしれません。(これがhttp://jsfiddle.net/EdgKr/61/float:left;
に追加された更新されたフィドルです).vertainer
コンテナを画像の高さと幅に一致させたいだけの場合、別名シュリンクラップにはいくつかのオプションがあります。
float:left/right, display:inline-block, display:table, position:absolute;
幅が指定されていない場合、これらのそれぞれはシュリンクラップ効果を引き起こします。
そのためにインラインブロックを使用することをお勧めします。
また、display:table は問題なく動作するようです:
http://jsbin.com/isayar/1/edit
ただし、IE7 ではサポートされていないため、個人的にはインライン ブロックを使用します。
とてもシンプル
display: inline-block
に追加.container
フィドルに緑色が表示される理由は、表示ブロックが幅全体に収まるようにするためです