2017-07-27 6 views
0

私のサイト(バナー)のセクションは、すべての幅に合ったイメージになり、イメージは全幅(ピクセル幅ではなく、パーセンテージで)。私は高さが低すぎることに気にしない、私は常にすべての幅の内容と高さを自動的に表示するためにイメージが必要です。CSS:background-imageと一致する要素の高さを自動計算

私はbackground-size: containを使用していますが、画像の全幅は保持されますが、高さは計算する必要があります。これは、コンテナの高さが画像の高さよりも高くなるためです。私はビューポートユニットを使用しようとしましたが、それは異なる解像度間で一貫していません(おそらく私はそれを間違っていますが、より高い解像度の値は低いものでは機能しません)。

私はどのように反応するでしょうか?

マークアップ:

<body> 
    <section class="feat-bottom"> 
     <h4>some title</h4> 
    </section> 
</body> 

我々はすべて、デザイン画像は、マークアップに属していない知っている(はずです)として、ので、私はこのイメージのCSSを使用しています。画像はすべての幅に収まる必要がありますが、100%と100vwの違いは何ですか?最初の1つは親の幅であり、本文は画面内のすべての幅を持ち、2つ目はデバイスの幅です(もう一度)。

この方法は、タブレットや携帯電話と互換性がありますか?これらの場合に最適化された2番目のイメージを使用する必要がありますか?

答えて

0

Iは、アスペクト比を維持したまま高さを算出する式を使用している要素の高さを計算する:

New height = New width/(Original width/Original height) 

だからCSSにこれを変換すると得られる:

section.feat-bottom { 
    height: calc(100vw/(1920px/800px)) 
} 

このアプローチ流体のスケーリングを提供するので、ブレークポイントは必要ありません。

関連する問題