2017-11-06 11 views
0
<div style="height: auto"> 
    <img style='position: absolute; left:0; right:0; margin: -115px auto 0; overflow: hidden;' src='img_url' /> 
</div> 

<div style="background: #ea9027; height: 150px;"> 
    etst text 
</div> 

ブラウザのサイズを変更すると、イメージもサイズ変更されています(これは、私が望むもので、高さと幅を特定したくないので、ブラウザ画面の幅の100%)。しかし、ブラウザのサイズを変更すると、2つのdiv間の距離が大きくなります。どうすれば修正できますか?私はこれにjavascriptを使用する必要がありますか?最初のdivのheight:autoは機能しません。親のdivのサイズ変更可能な画像の高さを設定する

+1

あなたのケースでは、おそらくビューポート単位が役に立つでしょうか? https://css-tricks.com/fun-viewport-units/ – sol

+0

インラインスタイルではなく、CSSクラスを使用してください。私たちに役立つ概要を教えていただければ、私たちがあなたを助けてくれるようになります。 – rblarsen

+0

画像上で絶対位置を設定すると、親divの高さを計算するときに高さが考慮されていません。あなたはこれを解決するためにJavaScriptを使うことができました –

答えて

0

私はJavaScriptを使用してかなり簡単にそれを解決した:

<script> 
    function resize() { 
     var img = document.getElementById('imageId'); 
     document.getElementById("imageIdDiv").style.height = img.clientHeight + "px"; 
    } 
    resize(); 
    window.onresize = function() { 
     resize(); 
    }; 
</script> 
0

あなたはJavaScriptを使用したくない場合は、あなたは、単にvh: 100%; を使用することができます。これは、CSSでのビューポートの高さのプロパティであり、それは本当に良い作品。

関連する問題