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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

842閲覧

HTML CSS 画面のサイズに関係なくレイアウトを固定できません

sinzinse1gou

総合スコア4

HTML5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/10/04 08:29

編集2021/10/05 06:01

前提・実現したいこと

画面のサイズが変更されてもレイアウトが崩れずに、そのままの画面が大きくしたりり、小さくしたりしたいです

position:'relative'で固定しておりadlessとmoneyとimg以外は画面に対応して変化するのですが、この3つだけ変化しません。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーは特にありません、思うような挙動をしません

該当のソースコード

javascript

1 result: { 2 position: 'relative', 3 top: '100px', 4 border: 'solid 2px', 5 width: '70%', 6 marginLeft: 'auto', 7 marginRight: 'auto', 8 }, 9 resultlist: { 10 backgroundColor: '#6495ED', 11 fontSize: '20px', 12 textAlign: 'left', 13 }, 14 15 guest: { 16 position: 'relative', 17 fontSize: '20px', 18 top: '-110px', 19 left: '60px', 20 }, 21 22 adless: { 23 position: 'relative', 24 top: '-90px', 25 left: '550px', 26 fontSize: '20px', 27 border: 'solid 1px', 28 }, 29 money: { 30 position: 'relative', 31 left: '330px', 32 top: '50px', 33 fontSize: '20px', 34 border: 'solid 1px', 35 }, 36 37 img: { 38 position: 'relative', 39 width: '200px', 40 height: '200px', 41 right:'440px', 42 marginTop:'30px' 43return( 44<div className={classes.result}> 45 <div className={classes.resultlist}>民宿一覧</div> 46<List> 47 {guesthouseList.map(guesthouse => 48 <ListItem key={guesthouse.guesthouseNumber} divider={true} className={classes.sen}> 49 50 <Link onClick={()=> history.push(`/Detail/${guesthouse.guesthouseNumber}`)} 51 className={classes.guest}> 52 {guesthouse.guesthouseName} 53 </Link> 54 55 <Typography className={classes.adless}>住所   {guesthouse.guesthouseAddress}</Typography> 56 57 <Typography className={classes.money}>料金   {guesthouse.price} 円</Typography> 58 59 <img className={classes.img} src={`data:image;base64,${guesthouse.image}`} 60 alt='写真' 61 > 62 </img> 63 64 </ListItem> 65 )} 66 </List> 67</div> 68</div> 69)

住所と金額のところが画面サイズに関係なく同じ場所にあり、小さくした場合は右端に大きくすると真ん中にレイアウトされます。2枚目は画像サイズを縮小したレイアウトです。

試したこと

adlessとmoneyの表示されている場所が画面の大きさを変えることでその大きさに合わせた、位置にレイアウトされず、常に固定の位置にあります。
position:relativeをabsoluteにしてみてもダメでした。何か良い方法ございましたら教えてください。
adlessとmoneyのCSSを何かしら変更すれば思い通りの挙動になると個人的には思っておりますが、全く思いつきません。

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

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

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

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

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

Lhankor_Mhy

2021/10/04 08:41

CSSの問題だと特定できているのであれば、レンダリングされたHTMLを提示した方が回答がつきやすいかもしれません。
sinzinse1gou

2021/10/04 13:36

CSS内に何か記述をすれば解決するという問題ではないということでしょうか? (例)adless:{margin:50%}などではないということでしょうか? お忙しいところ申し訳無いのですが、ご回答いただけると非常に助かります。よろしくお願いします。
Lhankor_Mhy

2021/10/05 01:00

いえ、「CSS内に何か記述をすれば解決する」ということはつまり、CSSの問題だと特定できているということだと思います。 そうであれば、レンダリングされたHTMLを提示した方が回答がつきやすいのではないかな、というコメントです。 なぜならば、コンポーネントがどのようなHTMLに展開されるのかがわからないからです。
sinzinse1gou

2021/10/05 01:58

アドバイスありがとうございます。写真を記載できるのですね、レイアウトを記載した方が視覚的に分かりやすいですね。今後活用させていただきます
guest

回答1

0

ベストアンサー

一般論的なお話になってしまいますが、px単位でCSSを書くとサイズの変化に対応するのは難しいです。

また、相対配置での配置は、要素自身の場所からの相対的な位置で置くことになりますので、たとえば「親要素の右端」などに配置する場合は、かなりトリッキーなコードを書く必要があると思います。
グリッドレイアウトやフレックスレイアウトをご検討された方がいいのではないかな、と感じました。

投稿2021/10/05 03:23

Lhankor_Mhy

総合スコア36960

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

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

sinzinse1gou

2021/10/05 06:02

解決しましたありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問