ここは難しいものです。可能であれば、CSSのみでこれが達成できるかどうか本当に分かります。最大幅と最大高さを持ち、比率を保持しているDiv(CSSのみ)
私は、親コンテナに基づいてイメージのサイズと配置を必要とする独自のレイアウトを持っています。イメージが親の高さまたは幅を超えている場合は、サイズを小さくする必要があります。現時点では、max-widthとmax-heightを一緒に使用していますが、うまくいきます。画像はサイズに合わせてサイズが変更され、もちろんアスペクト比が維持されます。
ここでは難しい部分があります。 CSSボックスのシャドウでは実現できない特別な影をこの画像に追加する必要があります。影はPNG画像を使用します。シャドーは画像のサイズと位置を合わせる必要があります。つまり、シャドーはイメージの下部にあり、イメージの幅と同じです。
通常、私は影を達成するであろう::後、大きさや位置、それはそれに比べて、それは親の除いて完全にを働く親要素、だ画像と画像が許可していない::前または::の後であります。
私が知る限り、これを達成する唯一の方法は、別のコンテナにイメージをラップすることです。そのコンテナを親要素として使用し、シャドウレイヤの位置決め参照を使用できます。 しかし私は、そのコンテナdivが画像のアスペクト比を維持したままmax-widthとmax-heightサイジングの点で画像と同じように動作するようにする方法を見つけることができません。
アスペクト比を維持するための最良の方法は、幅が唯一の重要な要素であるときにすばやく動作するパディングトップを使用します。しかし、パディングトップ技術は、コンテナが最大高さを有することを可能にしない。
私はブロック要素がアスペクト比を維持し、同時に最大幅と最大高さを持つことを可能にするCSSテクニックを探しています。この状況で画像がどのように振る舞うかと同様です。
私は解決策のためにインターネットを精査しましたが、誰もこの正確な状況を説明していません。助けることができる誰にも非常に感謝しています。追加された2017年9月1日
:
私はそれが私がイメージへの相対的な位置する必要があるだけの影よりもだということを言及する必要があります。このように配置する必要がある他の要素もありますが、他の要素は単純な背景画像ではありません。 Lightbenderのソリューションはシャドーには最適ですが、大きな問題は解決していません。画像の周りに他の子要素を配置するための参照として使用できるコンテナが必要です。
シンプルなソリューション。私はこれが私の場合に働くかどうかを確認することができるとすぐにこれを試してみます。 –
これは影の良い解決策になるようです。私は今、私がこのソリューションを必要としていることは分かっていますが、それだけではありません。いくつかのページでは、画像に対して配置される必要のある他の要素が存在する(例えば、画像が相対親要素であるかのように絶対的に配置される)。そのためには、これらの要素を配置するためにコンテナを使用することができるように、それらのイメージを囲むコンテナをラップするソリューションが本当に必要です。だから、私はこの解決策に拍手喝采をかけていますが、残念ながら問題全体を解決するわけではありません。 –
最高の高さが画像の高さに影響しないので、想像しているように純粋なCSSでこれを行うことはできません。代わりに、画像は幅とオーバーフローを尊重します。私はこれを試したことはありませんが、実行可能なアプローチを提供するかもしれません。 https://stackoverflow.com/a/10804311/8533154申し訳ありませんが、私の解決策で問題が完全に解決されなかったのです。 – LightBender