私も同様の質問があることは知っていますが、それらはすべて古く、新しいテクニックがあるのかもしれません。画像のアスペクト比が容器にある
私は、次のHTML持っている:私は必要なもの
<figure class="main-slider__slide">
<img class="main-slider__image" src="http://smth.com/a.jpg" alt="test">
</figure>
は、それがまだロードされていないながらimg
のための部屋を保つfigure
コンテナです。スペースを保持しているコンテナなしでは、私はひどい気分になるコンテンツをつまむことになります。
は、これまでのところ私は、次のSASSのミックスインを思い付いてきました:
@mixin image-placeholder($x,$y, $image-wrapper-class,$image-class) {
.#{$image-wrapper-class} {
position: relative;
padding-bottom: percentage($y/$x);
}
.#{$image-class} {
position: absolute;
}
}
ビーイングが、それは問題は、私はのサイズをハードコア必要があるということです
.main-slider__slide {
position: relative;
padding-bottom: 34.61538%;
}
.main-slider__image {
position: absolute;
}
のようにCSSを生成@include image-placeholder(1170, 405, main-slider__slide, main-slider__image);
のように適用されますスタイルの私のイメージと、特定の次元のすべてのイメージのための別のクラスを持っています。 1つの一般的なプレースホルダークラスが問題を解決する良いソリューションを皆さんは知っていますか?
イメージの 'naturalWidth'と' naturalHeight'プロパティから推測されるので、イメージのアスペクト比が読み込まれるまでそれを知ることができないという理由が考えられます。できるだけ一般的なアスペクト比を指定するだけです(ほとんどのプレースホルダ/ワイヤフレームは不明なコンテンツに対して固定アスペクト比を使用します)。これは画像がロードされたときに調整されます。 – Terry
まだロードされていない画像のサイズをWebページに知らせたいと思うようです。これは物理的に不可能です。 –
要素がロードされる前に要素の次元(または縦横比)についての情報をまだ必要としているが、要素がまだロードされていない要素内にしか存在しないようにする必要があるため、一般的な解決策があるとは思えません。 – Flying