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

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

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

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

HTML5

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

HTML

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

CSS

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

Q&A

解決済

3回答

5189閲覧

flexの子要素の横並びの解除方法が分からない

sanset

総合スコア186

CSS3

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

HTML5

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/11/14 16:30

編集2018/11/14 16:39

flex属性を持った.innerの子要素は、flexを解除した要素として扱いたいのですが、それらの子要素も横並びになってしまいます。

下記のテストコードでは「テスト1」と「テスト2」が横並びとなってしまいますが、.innerの子要素のdivはデフォルトのものを扱いたいです。

.inner > divとして、子要素はブロック要素を指定、フロートを解除、などの設定も試してみましたが効きませんでした。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>テスト</title> 6 <style> 7 body { 8 padding: 0; 9 margin: 0; 10 } 11 12 main { 13 display: flex; 14 flex-direction: column; 15 height: 100vh; 16 } 17 18 .inner { 19 display: flex; 20 flex: 1; 21 align-items: center; 22 border: 1px solid black; 23 } 24 25 /*.inner直下のdivをリセット(効かなかった)*/ 26 .inner > div{ 27 display: block; 28 float: none; 29 } 30 </style> 31 </head> 32 <body> 33 <main> 34 <div class="inner"><div>テスト1</div><div>テスト2</div></div> 35 <div class="inner"><div>テスト3</div><div>テスト4</div></div> 36 <div class="inner"><div>テスト5</div><div>テスト6</div></div> 37 </main> 38 </body> 39</html>

親要素(main)に対して、.innerは縦並びかつ高さに対して均等に割り振られ、.inner内の中央に配置したいので、.innerそのもののflexは解除できないと思います。

どなたかご教示お願い致します。

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

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

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

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

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

yoshinavi

2018/11/16 03:06

質問内容と、回答者の方とのやりとりを見ると、どうしたいのか分かりにくいので、イメージ図を提示してみてください。
guest

回答3

0

質問内容の理解不足で間違っているかもですが、

flex属性を持った.innerの子要素は、flexを解除した要素として扱いたいのですが、それらの子要素も横並びになってしまいます。

子要素「.inner」にもflexが指定してあるので、「kei344」さんの回答のようにflex関連を外し、text-align: center;で求めている形になりませんか?

CSS

1.inner { 2 border: 1px solid black; 3 text-align: center; 4}

投稿2018/11/17 06:22

yoshinavi

総合スコア3523

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

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

sanset

2018/11/20 03:43

回答ありがとうございます。innerは画面に対して縦並びかつ均等かつ中央寄せにしたいので記述しておりました。
guest

0

ベストアンサー

.innnerの子要素たちをdivで囲ってください

html

1 <div class="inner"><div><div>テスト1</div><div>テスト2</div></div></div> 2 <div class="inner"><div><div>テスト3</div><div>テスト4</div></div></div> 3 <div class="inner"><div><div>テスト5</div><div>テスト6</div></div></div>

投稿2018/11/14 18:41

akihiro3

総合スコア955

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

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

sanset

2018/11/20 03:39

ありがとうございます。無事理想の動きになりました。
guest

0

CSS

1 .inner { 2 /*display: flex; 3 flex: 1; 4 align-items: center;*/ 5 border: 1px solid black; 6 }

投稿2018/11/14 16:34

kei344

総合スコア69407

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

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

sanset

2018/11/14 16:36

回答ありがとうございます。ごめんなさい、innerは画面に対して縦並びかつ均等かつ中央寄せにしたいのでそこの記述は変えられません…質問に追記しておきます。
kei344

2018/11/14 16:59

なら要素が足りません。
kei344

2018/11/14 17:00

mainが子要素を縦並び、その子要素である.innerが子要素の<div>テスト1</div>を横並びにしている状況ですよ。
sanset

2018/11/20 03:39

ありがとうございます。直下の要素に対してflexの横並びが働く、ということを恥ずかしながら初めて知りました・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問