質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

9217閲覧

縦横比の違う画像を同じ比率にて表示したい

Orejima

総合スコア20

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/01/04 13:29

WordPressを使用して、ポートフォリオ風に写真をたくさん並べるようなページを作成中です。

レスポンシブのテーマを使用しており、写真を格納している【div class="box"】のCSSに【width: 20%】を指定し、横に写真が5枚並ぶ校正としています。

しかし、載せたい写真のサイズが違うものが多く、大きさもそうですが、縦横比が3:2や4:3と異なっています。

これらの写真を少し歪んでしまうことは承知の上で、CSSにて強制的に4:3の比率にて表示させたいと考えております。

【.box】や【.box img】にどのような書き方をすれば、レスポンシブを維持したまま、4:3の比率にて表示させることができますでしょうか。

お手数をおかけいたしますが、お知恵を拝借できれば幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

css

1.box { 2 width: 20%; 3 display: inline-block; 4 padding-top: 15%; 5 position: relative; 6} 7.box img { 8 position: absolute; 9 top: 0; 10 width: 100%; 11 height: 100%; 12}

padding のパーセント指定は縦方向のpaddingでも横幅の100%が基準になることを利用して、縦paddingに15%を指定すると横の20%に当たる長さの3/4になります。
あとは中の画像を余白無視して範囲いっぱいに広げれば画像サイズが4:3になります。

ちなみに比率を保持する方法もあります。
http://jsdo.it/ksk1015/4EfD

また、リンク先のように頑張らなくても、IMGタグにこだわらない(background-imageでもいい)なら、普通にCSSのcover/containを使用できます。

投稿2016/01/04 15:49

tozjp

総合スコア790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

レスポンシブかつ比率を保ったままレイアウトをする方法は以下に成ります。

css

1.box{ 2 width:20%; 3 background-image:url(imageのパス); 4 backgroung-size:cover; 5 backgrounr-position:center; 6} 7.box::before{ 8 content:''; 9 display:block; 10 paddint-top:75%(4:3なので横幅を100%とすると75%; 11}

でいかがでしょうか。

なぜpadding-top:○%;にするかというと
paddingの%指定は自分を囲っている包含ブロックの横幅を基準にするからです。
つまり1:1にしたいときはpadding-top:100%;にすると1:1の比率固定レイアウトが可能です。

投稿2016/01/04 15:43

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

widthを%で設定している限りCSSのみでheightの比率を固定するのは不可能かと。
jQuery等の利用も検討してください。
縦横比固定サンプル(Codepenリンク)

jQuery

1$(function(){ 2function getBoxWidth(){ 3width=$(".box").width(); 4height=3*width/4; 5$(".box").height(height); 6} 7getBoxWidth(); 8$(window).resize(function() { 9 getBoxWidth(); 10}); 11});

投稿2016/01/04 15:03

編集2016/01/04 15:24
yuya3110

総合スコア89

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問