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

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

詳細はこちら
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

HTML5

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

HTML

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

CSS

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

React.js

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

Q&A

1回答

495閲覧

position absoluteを使い画像とテキストを中央に表示したい。

kakedashidesu

総合スコア50

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

HTML5

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

HTML

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

CSS

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

React.js

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

0グッド

0クリップ

投稿2021/03/08 13:08

編集2021/03/10 13:00

divタグで画像とテキストを囲いabsoluteを使って中央に表示したいです。
画像だけにabsoluteをつけたときは画像が中央に表示されるのですがdivタグにabsoluteをつけたときは中央に表示されません。
わかる人いましたらご教授お願いしたいです。

画像にabsoluteをつけた時

import { FunctionComponent } from 'react'; const Index: FunctionComponent = () => { return ( <> <img src="profile.svg" style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, margin: 'auto', }} /> </> ); }; export default Index;

divにabsoluteをつけた時

const Index: FunctionComponent = () => { return ( <> <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, margin: 'auto', }} > <img src="profile.svg" /> <p>プロフィール</p> </div> </> ); }; export default Index;

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

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

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

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

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

guest

回答1

0

position: 'absolute'は要素を絶対位置で指定するものなので、
親要素のdivにつけるとdiv自体が絶対位置になり子要素であるimgやpには影響を与えません。
※ご提示のCSSの場合です。

親要素のdivにはposition: 'relative'をつけてあげましょう。
子要素であるimgやpにposition: 'absolute'をつけた時の基準が親要素のdivになります。
※親要素を基準として上下左右から0、余白を自動としてやることにより、中央配置になる仕組みです。

投稿2021/03/08 14:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kakedashidesu

2021/03/08 14:35

返信ありがとうございます。 なぜimgタグにabsoluteをつけたときは中央になるのにdivだと真ん中にならないのですか?
退会済みユーザー

退会済みユーザー

2021/03/08 14:53

えーっと…説明したのだけど期待されている回答と違ったようですね。 「同じことをしてるはずなのに、なぜ結果が違うのか?」という問いなんですね? 恐らく`bottom: 0,`が抜けてるからではないでしょうか。 上(画像)にはありますが、下(div)にはないですよね? 上下左右から0距離に配置し、余白(margin)を自動にすると、中央配置になる仕組みですので、 `bottom: 0;`が抜けていることにより上下方向が中央になっていない。 これで期待された回答になりましたでしょうか?
kakedashidesu

2021/03/10 13:01

返信遅れました。 bottomをつけてみましたが中央にはなりませんでした
退会済みユーザー

退会済みユーザー

2021/03/11 00:45

1.divの中で要素が中央配置になっていないため、divが中央配置になっていないように見える。 2.divの外の要素のサイズが画面幅よりも大きいため、divが中央配置になっていないように見える。 このどちらか、もしくは両方かと。 検証ツールを使って確認してみてください。 divに背景色を付けてもわかりやすくなります。
kakedashidesu

2021/03/11 12:15

やってみましたが解決策がよくわかりませんでした。
kakedashidesu

2021/03/11 12:21

1,2どちらでもなかったです
退会済みユーザー

退会済みユーザー

2021/03/11 22:55

検証ツール等でdiv,img,pに当たっているCSSを確認後、 実際に当たっているCSSをコードとして追加していただけますでしょうか。 ご提示のコード以外にHTML要素があるようでしたらそちらも追記してください。 それからコード実行時にどのように見えているのかキャプチャを載せていただけると助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問