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

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

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

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

HTML5

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

Q&A

2回答

4760閲覧

inline-blockなのに縦に重なる

AmiI

総合スコア24

CSS3

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

HTML5

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

0グッド

1クリップ

投稿2020/03/16 08:21

編集2020/03/17 04:35

ネットやこのサイトで検索をかけてみたものの、意外と自分と同じ悩みを投稿している人が見当たらなかったため、質問します。

inline-blockを入れているはずなのに、なぜか縦に重なります。
サイトの方は載せられませんが、イメージ図としては、このような感じです。
イメージ説明
うまくいけば、一番上の見切れているブロックのように横並びになるはずなのですが…。

該当部分ではこういう感じのコードを書いているのですが、どうしてinline-blockなのに縦に重なるのでしょうか。

css

1 .inline-block_test12 { /*なんでこれ縦に重なるんだ…*/ 2 display: inline-block; /* インラインブロック要素にする */ 3 padding: 20px; /* 余白指定 */ 4 height: 100px; /* 高さ指定 */ 5}

html

1<div class="inline-block_test12"> 2 <br><font color=#00a69a>あああ</font> 3<br><img src="https://www.画像.jpg" alt="海の写真" title="空と海"> 4<br>ああああああああああ</div> 5 6 <div class="inline-block_test12"> 7 <br><font color=#00a69a>あああああ</font> 8 <br><img src="https://www.画像.jpg" alt="海の写真" title="空と海"> 9 <br>ああああ</div>

追記:html部分の<div class="inline-block_test12">を、<div class=".inline-block_test12">にすることで、重なりは解消されました。が、inline-blockが適用されません。

更に追記
別部分で

css

1.container { 2 display: inline-flex; 3}

html

1<div class="container"> 2テキスト 3</div>

をやってみたところ、高さに差がありますが、横並びにできました。(画像はなし。ボックスはあり。)

ただ、これを上記の質問部分に入れてみたところ、少し右に行ったもののまだ重なったままです。

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

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

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

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

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

marlboro_tata

2020/03/16 09:22

質問にあるコードで試してみましたが、「重なり」という点は再現ができませんでした。 https://codepen.io/ccc-labo/pen/NWqMvBO もし、上記のcodepenの動きがほぼ思い通りであるならば、 ここに書かれていないコードが、影響を与えている可能性が高いかと存じます。
AmiI

2020/03/16 10:27

例えばどんなコードが考えられますか?
marlboro_tata

2020/03/16 11:28

>例えばどんなコードが考えられますか? その質問にはとても答えにくいです。 うまくいかない時は、原因と思われるものを、ひとつひとつ試し、潰していく作業が必要ですが、ここに見えて与えられている情報は少なすぎて、私にとっては、答えられそうにありません。ごめんなさい。
AmiI

2020/03/16 11:47

具体的にはどんな情報を書けばいいんでしょうか。
marlboro_tata

2020/03/16 11:57

パッと思いつくのは、 ・div.inline-block_test12 要素の親要素と適用されているCSSルール ・親要素の直前にある要素と適用されているCSSルール ・div.inline-block_test12 要素に適用されている他のCSSルール ・div.inline-block_test12 要素内にある要素に適用されているCSSルール ぐらいでしょうか・・・・。
AmiI

2020/03/17 03:22

>・div.inline-block_test12 要素の親要素と適用されているCSSルール >・div.inline-block_test12 要素に適用されている他のCSSルール ・div.inline-block_test12 要素内にある要素に適用されているCSSルール すみません、CSSルールというのは、上に記したコード以外に何かあるのでしょうか。
guest

回答2

0

inline-block_test12height: 100pxを指定してるからです。

追記
私としてはこのような状態とみての解答ですが状況が異なっているということでしょうか。であれば、今の情報だけでは正確な修正案は出せません。
イメージ説明

投稿2020/03/16 08:29

編集2020/03/16 09:11
soliste16

総合スコア757

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

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

AmiI

2020/03/16 08:45 編集

どうしてそれを指定すると縦に重なってしまうのでしょうか。 あと、こちらを消去してみたものの、解決とはなりませんでした。
guest

0

なんだか最近同じような質問があった気がするので、こちらからコピーしつつの回答です!
https://teratail.com/questions/246482#reply-357171

①インラインブロック要素の横幅が設定されていない

現在display: inline-block;で指定されていますが、
インラインブロック要素は、横幅が設定されていないと子要素に応じて自動で横幅が決まります。
なので、画像やらテキストやらが幅をとっていると自動で段落ちしてしまうんです。

今回の場合、2つで横並びなのでwidth: 50%を追記してやればうまく動くかな?

CSS

1 .inline-block_test12 { 2 display: inline-block; /* インラインブロック要素にする */ 3 padding: 20px; /* 余白指定 */ 4 height: 100px; /* 高さ指定 */ 5 width: 50%; 6 box-sizing: border-box; /* padding含めて幅50%にさせる */ 7}

②タグ間の改行で余分な空白が入っている

inline-block_test12の閉じタグと、その次のinline-block_test12の開始タグの間をくっつけてやれば空白はなくなります。

HTML

1<div class="inline-block_test12"> 2 <br> 3 <font color=#00a69a>あああ</font> 4 <br><img src="https://www.画像.jpg" alt="海の写真"  title="空と海"> 5 <br>ああああああああああ 6</div><div class="inline-block_test12"> <!-- 改行を消去 --> 7 <br> 8 <font color=#00a69a>あああああ</font> 9 <br><img src="https://www.画像.jpg" alt="海の写真"  title="空と海"> 10 <br>ああああ 11</div> 12

③そもそもインラインブロックで横並びさせるのが面倒

横並びさせる場合、display: flex;のほうが自由度が結構高いので、
フレックスボックスで横並びさせるのが手っ取り早いかもしれません。

CSS

1.selector /* 親要素のセレクタを指定してください */ 2{ 3 display: flex; /* フレックスボックス要素にする */ 4} 5 6.inline-block_test12 { 7 /*display: inline-block;*/ /* いらないので、削除! */ 8 padding: 20px; /* 余白指定 */ 9 height: 100px; /* 高さ指定 */ 10 width: 50%; 11 box-sizing: border-box; /* padding含めて幅50%にさせる */ 12}

投稿2020/03/16 08:33

編集2020/03/16 08:41
TatamiSteak

総合スコア354

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

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

AmiI

2020/03/16 08:45 編集

この場合、<div>は.inline-block_test12のままでよろしいでしょうか。 ちなみに、1,2番は試して見たものの、両方とも解決しませんでした。
TatamiSteak

2020/03/16 08:53

質問でのコードのままだと、それで問題ございません! 実際にサイトへ組み込む際は多分class名も違うかと思うので、その場合はセレクターの指定を変更してください。 うーん、親要素に何らかの指定がなければ提示のコードでなんとかなるかと思ったんですが… 画像に`max-width: 100%`を指定していないと、親要素の幅に関係なく原寸が表示され続けたりとか…頂いた情報が少ないので、これ以上は推理になっちゃうかも。 inline-blockはちょっと使い勝手が悪いので、可能ならflexでの組み込みを推奨します。
AmiI

2020/03/16 09:10

すみません、とりあえずこのままコードを埋め込んだのですが、それでも縦になったままです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問