2016-10-01 7 views
0

は、私は次のHTMLを持っている:スクロールバーを使用せずにビューポートで拡大縮小されたイメージとテキストを表示するにはどうすればよいですか?

<div class="wrapper"> 
    <img class="img" src="img.png"> 
    <div clas="text"> 
     This is sample text.<br/> 
     This is sample text. 
    </div> 
</div> 

私も次のCSSを持っている:

.wrapper { 
     width: 1200px; 
     margin: 0 auto; 
    } 

画像は非常に大きなものとなります(4000PX幅、高さ3000px)。 div.wrapperの高さを設定することはできません。私は、テキストの量を仮定することはできません。 CSSを使用して、垂直スクロールバーを使用せずに完全に縮小された画像とテキストをビューポートに表示するにはどうすればよいですか?

あなたも、あなたがこれを使用することができjavascriptの関与溶液でOKの場合にはこれはjsfidilleにhttps://jsfiddle.net/c2q1w1tq/2/

+0

あなたはCSSベースの唯一のソリューションをお探しですか? – Dekel

+0

どのブラウザのバージョンをサポートする必要がありますか? – patrickhawley

+0

Dekel、はい、私はCSSのみのソリューションを探しています。でチーミングありがとう! – curious1

答えて

1

例です。

function updateImageHeight() { 
    textHeight = $('.wrapper').height() - $('.wrapper img.img').height() 
    imgMaxHeight = $('.container').height() - textHeight 
    $('.wrapper img.img').height(imgMaxHeight) 
} 
$(function() { 
    updateImageHeight(); 
}); 
$(window).on('resize', function() { 
    updateImageHeight(); 
}) 

私はここに

をjqueryのを使用

$(window).on('resize'は、ウィンドウサイズを変更するためのソリューションも提供します。ここで

は作業jsfiddleです:
https://jsfiddle.net/Ly8sac3v/

(私はHTML/body要素のマージン/パディングを削除し、コンテナ内のすべてを包んだ場合、あなたは上記のコードを使用できることを行うことはできません。 body要素がありますが、そこに変更が必要な場合があります)。

+0

ご協力ありがとうございます!私はあなたのコードを変更してイメージを反応させる方法を考えています。私はやってみたが働いていなかったこれは私のコードです:$( '。wrapper img.img')。css( 'max-height'、 'calc(100% - ' + textHeight + 'px)'); – curious1

+1

私の例で 'height'行の代わりに' $( '。wrapper img.img').css( 'max-height'、imgMaxHeight) 'を使うことができます。 – Dekel

+0

が動作しますが、高さの場合のみです。窓を大きくしてもらうと、高さは本当に反応します。しかし、幅はありません。私はCSSを試しました: '.wrapper img.img {max-width:100%;}'動作しません。これはJavascriptソリューションを使用しているためですか? – curious1

関連する問題