2つのサイドバイサイドdiv(小さな画面に積み重ねられている)、テキスト付きのdiv、画像全体が埋め込まれたdivを持つcss3対応テクニックを探しています。少なくとも、画像のアスペクト比は維持されなければならない。理想的には、両方のdivは常に同じサイズの正方形でなければなりません(スタックされている場合でも)。画像を反応的に埋め込む
編集 - フィドル:
https://jsfiddle.net/marekjedlinski/zdwdhLmg/
HTML:
<div class="outer outer-left">
<div class="inner inner-text inner-text-left block-orange">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pharetra lorem in ligula volutpat euismod. Nullam eu lorem tellus. Donec luctus lacus in felis blandit quis accumsan nulla imperdiet. Phasellus lorem quam, egestas et scelerisque ac, consequat nec diam. Nunc elit elit, venenatis at eleifend eget, feugiat eu elit.</p>
</div>
<div class="inner inner-img">
<img src="image-1-300.jpg" />
</div>
</div>
<div class="outer outer-right">
<div class="inner inner-img">
<img src="image-2-300.jpg" />
</div>
<div class="inner inner-text inner-text-right block-green">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pharetra lorem in ligula volutpat euismod. Nullam eu lorem tellus. Donec luctus lacus in felis blandit quis accumsan nulla imperdiet. Phasellus lorem quam, egestas et scelerisque ac, consequat nec diam. Nunc elit elit, venenatis at eleifend eget, feugiat eu elit.</p>
</div>
</div>
CSSは:
* {
box-sizing: border-box;
}
html, body {
width: 100%;
font-size: 18px;
margin: 0;
}
.outer {
display: flex;
flex-direction: row;
}
.outer-left {
flex-wrap: wrap-reverse; /* when wrapped, image must sit on top of text */
}
.outer-right {
flex-wrap: wrap;
}
.inner {
flex: 1 1 300px; /* grow, shrink, basis */
}
.inner-img {
background: #563D7C;
text-align: right;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden
}
.inner-img img {
flex-shrink: 0;
min-width: 100%;
min-height: 100%
}
/* below only text styling for text divs, not relevant */
私はフレキシボックスを使用して道の一部を取得することができます。
ブラウザウィンドウがしかし、成長
、画像が伸びます:は最低でも、私はアスペクト比がしたいこれは、理想的な状況の出発点であります維持された。画像が切り取られても問題ありませんが、理想的には四角形を四角形(画像とテキストの両方)として成長させ、画像を比例的にサイズ変更したいと考えています。
ここで私は、静止画像のdivとテキストのdivは完璧な正方形のままにしたい、しかしで:水平方向のスペースが縮小したdivを積層得るとき今、画像が再び引き伸ばされ
:最低限のアスペクト比は、次のように、理想的を維持しなければなりません
私はflexboxやこれまでの技術を使うことができますが、これはかなり互換性があり、出血性がないようにする必要があります(オブジェクトフィッティングはあまりにも未来的です)。
は、同様の質問hereとhereがあり、彼らは近くに来るが、(この特定の問題を解決しない。)ん
はフィドルで共有したり、codepenしてくださいテキストが長くなれば... –
はどのように彼らは、正方形のだろうか? –
@Dhaval:更新されました。 –