🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Brackets

Bracketsは、オープンソースで開発されているHTML/CSS/JavaScriptのコードエディターです。

Q&A

解決済

1回答

1006閲覧

画像を目標の通りに配置したい

mitrasi

総合スコア49

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Brackets

Bracketsは、オープンソースで開発されているHTML/CSS/JavaScriptのコードエディターです。

0グッド

0クリップ

投稿2021/03/08 01:42

編集2021/03/08 06:22

前提・実現したいこと

画像(女性と赤ちゃんの写真)を目標のように配置したいです。
最初は幅や高さをpxで指定していましたが、vwやvhで指定しようとすると画像の位置がずれたりしているようです。
スマホ版に関してはタブレット版が崩れる前はできていたのですが、タブレット版に戻ると崩れていたので修正を加えたところ、またスマホ版に戻るとスマホ版も崩れていました。
私の考えでは、タブレット版の幅を修正したりしたためにスマホ版も基準がまた変わり崩れたのかと考えています。

2~3日くらい幅ができたら画像の拡大具合が崩れたり、拡大具合をいじったら幅が崩れたりと試行錯誤を重ねましたが、なかなか解決できず困っています。ご教授よろしくお願い致します。

vwやvhの参考にはこちらを参考にしました。
例えばスマホが[375×667]の場合は、全体の幅を[375px]、要素の幅(今回だと該当の写真)を[287px]と入力し、出てきた[76.53vw]をwidthとして設定。
というようにやっています。

該当のソースコード

HTML

1 <section id="fv"> 2 3 <div class="wrapper"> 4 <div class="fv-wrapper"> 5 <img src="img/the-honest-company-uM-WXMr0YXc-unsplash.png" alt="" class="fv-img"> 6 </div> 7 8 <div class="fv-black"></div> 9 <div class="copy"> 10 <p class="sub-copy">デザインで人を笑顔にする会社</p> 11 <p class="company">DIGSMILE INC.</p> 12 <p class="main-copy">DESIGN<br>FOR <br>SMILE.</p> 13 </div> 14 15 </div> 16 </section>

該当のソースコード

CSS

1/*fv*/ 2#fv { 3 position: relative; 4 height: 1367px; 5} 6#fv .wrapper { 7 display: flex; 8} 9#fv .fv-wrapper { 10 width: 76.39vw; 11 text-align: left; 12 z-index: 2; 13} 14#fv .fv-wrapper .fv-img { 15 16 background-position: center; 17 object-fit: none; 18 filter: brightness(60%); 19} 20#fv .fv-black { 21 width: 780px; 22 height: 740px; 23 background-color: #333333; 24 z-index: 0; 25 position: absolute; 26 right: 0; 27 margin-bottom: 120px; 28} 29 30 31/*fv タブレット*/ 32 33@media screen and (max-width: 1100px) { 34 #fv { 35 position: relative; 36 height: 1024px; 37 } 38 #fv .wrapper { 39 display: flex; 40 width: 100%; 41 } 42 #fv .fv-wrapper { 43 text-align: left; 44 z-index: 2; 45 width: 30vw; 46 height: 100vh; 47 overflow: hidden; 48 position: relative; 49 } 50 #fv .fv-wrapper .fv-img { 51 transform: scale(1.4); 52 top: 0; 53 } 54 #fv .fv-black { 55 width: 73.18vw; 56 height: 100vh; 57 background-color: #333333; 58 z-index: 0; 59 position: absolute; 60 right: 0; 61 62 }} 63 64/*fv スマホ版*/ 65@media screen and (max-width: 767px) { 66 #fv { 67 position: relative; 68 height: 100vh; 69 } 70 #fv .wrapper { 71 display: flex; 72 width: 100%; 73 } 74 #fv .fv-wrapper { 75 text-align: left; 76 z-index: 1; 77 overflow: hidden; 78 position: relative; 79 } 80 #fv .fv-wrapper .fv-img { 81 object-position: top; 82 transform: scale(1); 83 } 84 #fv .fv-black { 85 width: 75.47vw; 86 height: 667px; 87 background-color: #333333; 88 z-index: 0; 89 position: absolute; 90 right: 0; 91 /*margin-bottom: 80px;*/ 92 /* margin-bottom: 120px;*/ 93 } 94}

試したこと

①pxで指定してみる
→最初はpxだけだったのでできていたようですが、vwが混在するためかできないところだけ直しても特に変化がないように見えます。

②検証ツールを見ながら、該当箇所のものをひとつずつ指示を消してみて、どこを触ったら目標の配置になりそうか試してみる

補足情報(FW/ツールのバージョンなど)

OS:Windows
エディタ:Brackets
ブラウザ:クローム

目標(上から、タブレット版、スマホ版)

タブレット版
スマホ版

現状(上から、タブレット版、スマホ版)

タブレット版
スマホ版

現状コード

CSS

1@charset "UTF-8"; 2/*カラーコード*/ 3/*mixin*/ 4html { 5 font-size: 62.5%; 6} 7html body { 8 line-height: 1.8; 9 font-size: 16px; 10 font-family: "Montserrat", "Noto Sans JP", sans-serif; 11 width: 100%; 12} 13html body img { 14 max-width: 100%; 15 vertical-align: bottom; 16} 17html body h2 { 18 font-size: 3.2rem; 19 font-weight: bold; 20} 21html body a { 22 text-decoration: none; 23 color: #FFFFFF; 24} 25html body section { 26 margin: 0 auto; 27 text-align: center; 28} 29/*ヘッダー*/ 30header { 31 position: absolute; 32 width: 100%; 33 /*共通部とここでwidth:100pxで広がる*/ 34 z-index: 10; 35} 36header .header-wrapper { 37 padding: 30px 58px; 38 display: flex; 39 justify-content: space-between; 40} 41header .header-wrapper .header-nav { 42 display: flex; 43} 44header .header-wrapper .header-nav .header-list { 45 padding-right: 7px; 46} 47 48/*fv*/ 49#fv { 50 position: relative; 51 height: 1367px; 52} 53#fv .wrapper { 54 display: flex; 55} 56#fv .fv-wrapper { 57 width: 76.39vw; 58 text-align: left; 59 z-index: 2; 60} 61#fv .fv-wrapper .fv-img { 62 background-position: center; 63 object-fit: none; 64 filter: brightness(60%); 65} 66#fv .fv-black { 67 width: 780px; 68 height: 740px; 69 background-color: #333333; 70 z-index: 0; 71 position: absolute; 72 right: 0; 73 margin-bottom: 120px; 74} 75 76/*レスポンシブ*/ 77/*タブレット版*/ 78@media screen and (max-width: 1000px) { 79 html body h2 { 80 font-size: 3.9rem; 81 } 82 83 /*ヘッダー タブレット*/ 84 header .header-wrapper { 85 padding: 30px 30px; 86 display: flex; 87 justify-content: space-between; 88 height: 20px; 89 } 90 header .header-wrapper .header-log .site-log { 91 height: 20px; 92 } 93 header .header-wrapper .header-nav { 94 display: flex; 95 } 96 header .header-wrapper .header-nav .header-list { 97 padding-right: 7px; 98 } 99 100 /*fv タブレット*/ 101 #fv { 102 position: relative; 103 height: 1024px; 104 } 105 #fv .wrapper { 106 display: flex; 107 width: 100%; 108 } 109 #fv .fv-wrapper { 110 text-align: left; 111 z-index: 2; 112 width: 78.13vw; 113 height: 86.94vh; 114 overflow: hidden; 115 position: relative; 116 } 117 #fv .fv-wrapper .fv-img { 118 transform: scale(1.4); 119 } 120 #fv .fv-black { 121 width: 73.18vw; 122 height: 100vh; 123 background-color: #333333; 124 z-index: 0; 125 position: absolute; 126 right: 0; 127 /*margin-bottom: 80px;*/ 128 /* margin-bottom: 120px;*/ 129 } 130} 131/*スマホ版*/ 132@media screen and (max-width: 767px) { 133 html body h2 { 134 font-size: 2.8rem; 135 width: 44.8vw; 136 } 137 138 /*ヘッダー*/ 139 header .header-wrapper { 140 padding: 15px 19px; 141 display: flex; 142 justify-content: space-between; 143 z-index: 10; 144 } 145 header .header-wrapper .header-log { 146 width: 189px; 147 height: 20px; 148 } 149 header .header-wrapper .header-nav { 150 display: flex; 151 } 152 header .header-wrapper .header-nav a { 153 font-size: 1.2rem; 154 } 155 header .header-wrapper .header-nav .header-list { 156 padding-right: 7px; 157 } 158 159 /*fv*/ 160 #fv { 161 position: relative; 162 height: 100vh; 163 } 164 #fv .wrapper { 165 display: flex; 166 width: 100%; 167 } 168 #fv .fv-wrapper { 169 text-align: left; 170 z-index: 1; 171 overflow: hidden; 172 position: relative; 173width:76.53vw; 174 } 175 #fv .fv-wrapper .fv-img { 176 object-position: top; 177 transform: scale(1); 178 } 179 #fv .fv-black { 180 width: 75.47vw; 181 height: 667px; 182 background-color: #333333; 183 z-index: 0; 184 position: absolute; 185 right: 0; 186 } 187}

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

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

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

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

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

Lhankor_Mhy

2021/03/08 02:03

メディアクエリは使わないのですか?
mitrasi

2021/03/08 02:09

すみません????メディアクエリは使用しております。 SCSSで書いているものをcssからとってきたので失念しておりました。すぐに修正致します。
Lhankor_Mhy

2021/03/08 02:42

ご提示のコードを試してみましたが、スクリーンショットのようなレイアウトにはなりませんでした。 ご提示いただいていない部分に原因があると思われます。
mitrasi

2021/03/08 02:56

すみません全文だと文字量オーバーで投稿できないようなのですがどのようにしたらよいでしょうか? コードだけを載せるトピック立てるとややこしくなるでしょうし、、
Lhankor_Mhy

2021/03/08 03:09

>最も良いのは、現象を再現するためのミニマムなプログラムを改めて作ることです。そうすれば、貴方自身が現象と問題をより良く理解することにもつながるからです。 ソースコードを書きましょう https://teratail.com/help/question-tips#questionTips3-5-1 --- 「現象を再現するためのミニマムなプログラム」をどうやって作るかですが、たとえば、以下の様な手順はどうですか? ① HTMLからフッターを削除してみて、それでも問題が再現するかどうか確認する。 ② ①で問題が再現しないのであればフッターに原因がある可能性があるので、フッター以外を削除してみる。 以下、①に戻って別の部分を削除するを繰り返す。 ③ ①で問題が再現するのであればフッターは関係ないので「現象を再現するためより小さいプログラム」ができたことになる。以下、①に戻って別の部分を削除するを繰り返す。
mitrasi

2021/03/08 05:52

情報ありがとうございます。 早速最低限不要な個所までは減らして再掲いたしました。 どうぞよろしくお願い致します。
guest

回答1

0

ベストアンサー

コードからスクリーンショットが再現できないため、具体的な回答はできません。
とりあえず、一般論的な回答をします。


例えばスマホが[375×667]の場合は、全体の幅を[375px]、要素の幅(今回だと該当の写真)を[287px]と入力し、出てきた[76.53vw]をwidthとして設定。

それは間違っていなさそうですが、そのサイズ指定をPC用(1100px超)に設定しているのが原因ではないでしょうか。(値も微妙に違っているし)

CSS

1/*fv*/ 2#fv .fv-wrapper { 3 width: 76.39vw; 4} 5 6/*fv タブレット*/ 7@media screen and (max-width: 1100px) { 8 #fv .fv-wrapper { 9 width: 30vw; 10 } 11} 12 13/*fv スマホ版*/ 14@media screen and (max-width: 767px) { 15 #fv .fv-wrapper { 16 } 17}

質問の追記に合わせて追記

とりあえず、高さが足りない件については、高さを指定してみてはどうでしょうか。

css

1#fv .fv-wrapper .fv-img { 2 height: 100%; 3}

投稿2021/03/08 04:51

編集2021/03/08 07:09
Lhankor_Mhy

総合スコア36930

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

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

mitrasi

2021/03/08 05:57

ご回答ありがとうございます! 一応タブレットを1000pxに落としてみました。 間違っている値というのは「width:30vw」でしょうか? どちらも改めてみて状況は変化しましたが、目標とはまだ違ようです。
Lhankor_Mhy

2021/03/08 06:07

いえ、そもそも 76.53vw という値がないですよね?
mitrasi

2021/03/08 06:21

申し訳ありません。 widthを設定して試してみても効かなかったので削除していました。 戻して加えてみましたがやはり目標にはなりませんでした。
Lhankor_Mhy

2021/03/08 06:24

まあ、一般論の回答であって、解決策ではないですからね。 試行錯誤するしかないと思いますよ。
mitrasi

2021/03/08 06:33

かしこまりました。 ご教授ありがとうございました。
mitrasi

2021/03/08 07:46

ご回答ありがとうございます! 試してみたところ、height:100%は変わらずでした。。
Lhankor_Mhy

2021/03/08 08:06

当方の環境では高さが変わりましたので、ご提示いただいていない部分に原因があると思われます。
mitrasi

2021/03/10 04:41 編集

サンプルのご提示ありがとうございます。 先日いじっていて、たまたま形だけはできたけれど、相変わらず原因はわからなかった状況でした。 しかし、ご提示いただいたサンプルと今までのご教授を受けて、照らし合わせて確認をするとやはり原因は「fv-img:100vh」だと判明しました。 おかげさまで無事解決しました。ありがとうございます。
Lhankor_Mhy

2021/03/10 04:39

ご解決されて何よりです。 解決したのであれば、自己解決かBAの選出をしてください。
Lhankor_Mhy

2021/03/10 04:44

ご対応ありがとうございます。 その内容であれば、当方の回答は役に立たなかったでしょうから、自己解決の方がよかったのでは……
mitrasi

2021/03/10 20:32

そんなことないです!直せたのはたまたまですが、Lhankor_Mhy様の「height:100vh」が原因ではないかとのご教授と、サンプルのご提供のおかげで照らし合わせて確認ができましたので! 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問