2016-04-20 9 views
1

私はdivの背景として巨大なイメージを使用します。この画像は、アスペクト比を維持しながらコンテナが許容する最大サイズで1回だけ表示する必要があります。画像は任意のアスペクト比を持つことができます。コンテナのサイズはサイズ変更可能で、アスペクト比も任意です。私は、背景画像と共にどんどん小さくなる8×8テーブルのレイアウトを必要とする画像「オーバー」テーブルまたはdivの高さと幅を背景イメージのサイズに調整しました

background-size:contain; 
background-repeat:no-repeat; 
background-position: center center; 
width:100%; 
height:100%; 
background-image: url("path/to/img"); 

であることを達成するために管理しました。

私のjsfiddleの例では、正しく動作しているイメージ(出力ウィンドウのサイズを変更してみてください)がありますが、テーブルを常にそのイメージの上に直接スケーリングする方法はありません(Ideaは、この問題のCSS/HTMLのオプションはありません場合は、特定の画像上のスポット、どんなにサイズ、画像アスペクト比、コンテナのアスペクト比、...)

https://jsfiddle.net/15uovq7L/4/

、jQueryの/ JavaScriptのソリューションを適用することが可能です。

+1

です。ここにplunkrがあります:https://plnkr.co/edit/gM2amcTOWa9Abc91imS2?p=preview – Spluf

+0

jQueryを使って可能なことを考えました。私はその例を上に行きました、そして私は私の問題のためにそれを使うことができると思います。誰かが純粋なCSSソリューションを思い付くことができるなら、私はそれに着くつもりです。ありがとう! – McCuz

+0

純粋なCSSソリューションは、画像の高さに合わせてテーブルの高さを変更する必要があるためほとんど不可能に思えますが、実際には、画像がレンダリングされる前に画像の高さを知ることができません。 'それは予測不可能なプロパティです。私は恐れています。この場合、JavascriptやJQueryの助けが必要です。 –

答えて

1

https://jsfiddle.net/15uovq7L/5/

.tlorisOgledNacrtapadding-top: 46%;を設定します。

46%は、このためのjQueryを使用して開いている場合、私は今日別の質問に答えていますが、私が言うことができるものから、そのここに簡単に適用することができ、画像の高さ* 100 /画像の幅

+0

これは近いですが、いくつかの欠点があります。私の画像はすべて同じアスペクト比ではありません。私が垂直の画像を使用した場合、パディングトップをパディングの左にフリップする必要がありますか?このバージョンでは、コンテナの高さを小さくするとイメージが小さくなりません。 – McCuz

+0

JavaScriptを使用すると画像の高さと幅を知る –

関連する問題