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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Q&A

解決済

2回答

603閲覧

ブラウザ毎のCSSの切り替え片(IEとChrome等)

innjera

総合スコア132

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

0グッド

0クリップ

投稿2017/06/27 00:32

編集2017/06/27 00:41

画像を歪ませず丸く表示するCSSを書いています。
google chromeでは問題無く綺麗に表示されるのですが、Internet Exploreでは歪んでしまいます。同じCSSファイル内でブラウザによって切り替える様にしたいのですが、うまく動かず間違いご指摘頂けますと幸甚です。

  • chrome

イメージ説明

  • IE(ちょっと分かり難いかもですが、歪んでいます)

イメージ説明

元データ : web site

css

1##SCSSを利用しています 2icon-top{ 3 width: 1.5rem; 4 height: 1.5rem; 5 border-radius: 50%; 6 -moz-border-radius: 50%; 7 -webkit-border-radius: 50%; 8 object-fit: cover; /* ADD */ 9 } 10 @media all and (-ms-high-contrast:none){ 11 .icon-top { 12 width: 1.5rem; 13 height: 1.5rem; 14 border-radius: 50%; 15 overflow: hidden; 16 position: relative; 17 } 18 .icon-top img { 19 min-width: 100%; 20 min-height: 100%; 21 position: absolute; 22 left: 50%; 23 top: 50%; 24 -webkit-transform: translate(-50%, -50%); 25 -ms-transform: translate(-50%, -50%); 26 transform: translate(-50%, -50%); 27 } 28}

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

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

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

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

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

guest

回答2

0

ベストアンサー

object-fitプロパティはIEやEdgeには対応していません。
なのでTak_Matzさんのようにbackgroundで処理するか、JSで処理するかになります。

bfred-it/object-fit-images

投稿2017/06/27 01:53

gin

総合スコア2722

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

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

innjera

2017/06/27 02:07

コメント有難う御座います。object-fitがIEで対応していないことは理解しておりまして、IEでは次のコードで綺麗に表示できるはずなのですが、CSSファイル内でIEとnon IEで適用されるCSSを変えることができません .icon-top { width: 10rem; height: 10rem; border-radius: 50%; overflow: hidden; position: relative; } .icon-top img { min-width: 100%; min-height: 100%; position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);
gin

2017/06/27 02:19

<meta http-equiv="X-UA-Compatible" content="IE=edge"> をviewportの下あたりに書いてみましょう
innjera

2017/06/28 00:18

いろいろと有難う御座いました!ご協力感謝です! いろいろ試してみたのですが、結局、ご教示頂いたJSのライブラリ (bfred-it/object-fit-images)が一番楽で確実でした。引き続き宜しくお願い致します。
guest

0

興味があったので再挑戦してみました。
ただし、以下のコードは画像が横長の場合はうまくいきますが、縦長の場合期待する結果とならないと思われます。
※縦長画像の場合、.icon-top imgwidthheightの値を入れかえると上下が見切れた画像として表示されます。

html

1<div class="icon-top"> 2 <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt=""> 3</div>

css

1.icon-top img { 2 width: 5rem; 3 height: 5rem; 4 border-radius: 50%; 5 object-fit: cover; 6} 7 8@media all and (-ms-high-contrast: none) { 9 .icon-top { 10 width: 5rem; 11 height: 5rem; 12 border-radius: 50%; 13 overflow: hidden; 14 position: relative; 15 } 16 17 .icon-top img { 18 width: auto; 19 height: 100%; 20 min-width: 100%; 21 min-height: 100%; 22 position: absolute; 23 left: 50%; 24 top: 50%; 25 transform: translate(-50%, -50%); 26 } 27}

期待される回答とは異なるかもしれませんが、以下のように.icon-topの背景画像扱いとする方法はどうでしょうか?

html

1<div class="icon-top" style="background-image: url(img.jpg);"></div>

css

1.icon-top { 2 width: 1.5rem; 3 height: 1.5rem; 4 border-radius: 50%; 5 6 background-position: center center; 7 background-repeat: no-repeat; 8 background-size: contain; 9}

投稿2017/06/27 01:01

編集2017/06/27 05:48
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

innjera

2017/06/27 01:52

コメント有難う御座います。Ruby(Rails)でコードを書いているのですが、できれば、cssの「直書き(styleの利用)」を避けたいのと、styleを利用しないとなると、cssファイルにbackground-imageを入れることにまるかと思いますが、そうすると、ユーザー毎に写真を埋め込むコードを書けなくなってしまいます。。。。
退会済みユーザー

退会済みユーザー

2017/06/27 05:49

中途半端な対応となりますが、CSSのみのものを追記してみました。
innjera

2017/06/28 00:18

いろいろと有難う御座いました!ご協力感謝です! いろいろ試してみたのですが、結局、ginsさんにご教示頂いたJSのライブラリ (bfred-it/object-fit-images)が一番楽で確実だったので、それにて解決しました!引き続き宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問