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

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

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

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

React.js

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

Q&A

解決済

1回答

4697閲覧

[React]display:blockを指定しているのに縦に並んでくれない

aiai8976

総合スコア112

CSS

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

React.js

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

0グッド

0クリップ

投稿2020/05/27 11:59

編集2020/05/27 12:26

前提・実現したいこと

reactのレイアウトの問題です。
下のコードのようにUSERのdivとSUBMITのdivがあるのですが、それぞれdisplay:blockとしているのにも関わらず、後のSUBMITのコンポーネントの一部がUSERと同じところに残ってしまいます。
理想はこれらのdivを縦に並べたいです。
改善策はありますか?

該当のソースコード

import React from 'react'; import ImageAvatar from './ImageAvatar'; import SelectUser from './SelectUser'; import { makeStyles } from '@material-ui/core/styles'; import Typography from '@material-ui/core/Typography'; import { blue } from '@material-ui/core/colors'; import TextField from '@material-ui/core/TextField'; import Button from '@material-ui/core/Button'; import SimpleCard from './SimpleCard'; const useStyles = makeStyles((theme) => ({ title: { ...theme.typography.button, backgroundColor: theme.palette.background.paper, padding: theme.spacing(1), }, user: { float: 'left', }, userArea: { display: 'block', backgroundColor: blue[100], }, root: { display: 'block', }, submitArea: { display: 'block', }, })); export default function App() { const classes = useStyles(); return ( <div> <div className={classes.userArea}> <div className={classes.title}>{"USER"}</div> <div> <div className={classes.user}> <ImageAvatar /> <SelectUser /> </div> <div className={classes.user}> <Typography variant="h5" gutterBottom> </Typography> </div> </div> </div> <div className={classes.submitArea}> <div className={classes.title}>{"Submit"}</div> <div> <ImageAvatar /> <SelectUser /> </div> <form className={classes.root} noValidate autoComplete="off"> <TextField id="outlined-multiline-static" label="Message" multiline rows={4} defaultValue="Default Value" variant="outlined" /> <Button variant="contained" color="primary"> 投稿 </Button> </form> </div> </div> ); }

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

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

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

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

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

guest

回答1

0

ベストアンサー

classes.userfloat: leftを指定してるので、floatを解除しないと、その後の要素のレイアウトが崩れてしまうと思います。

floatの解除に関しては下記の記事を参考にしてみてください。userの2つ目(右側)のdivかuserの親要素にfloatを解除するスタイルを追加します。
https://qiita.com/mariofujisaki/items/2ad1de8432d7249afadc

また、div要素に対してdisplay: 'block'を指定していますが、div要素はもともとblock要素なのでこの指定は不要だと思います。

投稿2020/05/27 12:43

markey

総合スコア355

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問