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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

1回答

1651閲覧

object-fit: cover;でトリミングが適応されない写真がある

tomtom1

総合スコア168

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2020/08/12 10:23

編集2020/08/12 15:21

###知りたいこと
object-fit: cover;でトリミングが適応されない写真があるため、その原因と解決方法を知りたいです
まず三つの縦長写真があります。(全て縦長です)
イメージ説明
しかし、唯一2.jpgだけ、object-fit: cover;でうまくトリミングされません。
以下のように、2.jpgの一枚だけ縦がトリミングされずめいいっぱい表示されるが、サイズに収めるために、ぎゅっと縮小する感じになっています。
一方で、他の写真は横が基準となり、横がめいいっぱい表示され、縦の綺麗にトリミングされます。
イメージ説明
・同じ縦長サイズ写真なのに、なぜこのような違いが起きるのでしょうか?
また、この現象がiPhoneでは綺麗にトリミングされますが、PCとアンドロイド携帯にて発生します。

html

1<div class="post-left"> 2 <img src="/2.jpg"> 3</div> 4<div class="post-left"> 5 <img src="/3.jpg"> 6</div> 7<div class="post-left"> 8 <img src="/4.jpg"> 9</div>

css

1.post-left { 2 float: left; 3} 4.post-left img { 5 width: 170px; 6 height: 110px; 7 border-radius: 5%; 8 box-shadow: 0 2px 6px #c1ced7; 9 object-fit: cover; 10}

ぜひアドバイス宜しくお願い致します。
###追記2
以下のように、background-imageとして表示すると、無事トリミングされ、表示することができました。

html

1<div class="post-left image1"></div> 2<div class="post-left"><img src="/3.jpg"></div> 3<div class="post-left"><img src="/4.jpg"></div>

css

1#追加 2.image1 { 3 width: 170px; 4 height: 110px; 5 border-radius: 5%; 6 background-image:url(/2.jpg); 7 background-size:cover; 8}

しかし、以下のようにRubyのeachメソッドで繰り返した場合、background-imageからurlの取得は厳しかったです。

ruby

1<% @posts.each do |post| %> 2 <div class="post-left"> 3 <%= image_tag post.image_name.url %> 4 </div> 5<% end %>

Controller

1def index 2 @posts = Post.all 3end

上記のような状況で、画像のトリミングがうまく行かない場合の方法についてアドバイスを頂ければ幸いです。

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

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

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

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

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

guest

回答1

0

特定の画像だけに症状がでるとは興味深い現象ですね。

CSSの方で背景画像を設定した場合はどうなりますか。

HTML

1<div class="post-left image1"> 2</div>

css

1.post-left { 2 float: left; 3 width: 170px; 4 height: 110px; 5 border-radius: 5%; 6 box-shadow: 0 2px 6px #c1ced7; 7} 8.image1 { 9 background-image:url(/2.jpg); 10 background-size:cover; 11}

追記

object-fit は比較的新しく実装されたものなので、ブラウザによって完全対応できていない部分があるのかもしれませんね。(IEは非対応ですし)

rubyに関しては分からないのですが、HTMLの方にインラインスタイルで埋め込めば対応できませんか。

HTML

1<div class="post-left" style="background-image:url(/2.jpg);"> 2</div>

投稿2020/08/12 14:54

編集2020/08/12 15:38
hatena19

総合スコア33699

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

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

tomtom1

2020/08/12 15:25

ご回答ありがとうございます!アドバイス通り、うまく行きました! しかしながら、実はrubyのeachメソッド(取得したデータを繰り返しさせる)で各写真を表示しておりますため、background-imageの起用は難しいと感じました。 (rubyで分かりにくくするより、簡単にご質問した方が宜しいかと感じましたが、裏目に出てしまいました。後からの状況追加になり申し訳ありません) もし、何かお気づきな点などございましたらご教示頂ければ幸いです。
hatena19

2020/08/12 15:41

回答に追記しましたので参照ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問