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

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

新規登録して質問してみよう
ただいま回答率
85.35%
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

解決済

1回答

1296閲覧

heightを指定しなかったらレイアウトが崩れた

syo--

総合スコア28

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クリップ

投稿2020/08/22 05:20

編集2020/08/23 01:36

イメージ説明### 前提・実現したいこと
Progateの道場コース初級編をやっていたのですが、お問い合わせフォームを作る際、lessonsのheightをきちんと500pxと指定しないと、画像のように「お問い合わせ」の文字が中央に寄ってしまいます その後、heightを指定してレイアウトを整えることができました
一体、どういう理由で上記のようなことが起こったのか気になります
教えていただきたいです

HTMLのコード

<!DOCTYPE html>

ヘディングのテキスト<div class="lessons">
### <h3>学べるレッスン</h3>

** <div class="lesson">**
<img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/html.svg" >
<p>HTML & CSS</p>
** </div>**

<div class="lesson">
<img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/php.svg" >
<p>PHP</p>
</div>
<div class="lesson">
<img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/ruby.svg" >
<p>Ruby</p>
</div>
** <div class="lesson">**
<img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/swift.svg" > **
<p>Swift</p>
</div>
ヘディングの閉じタグ</div>

</div> <div class="message"> ### <h3>お問い合わせ</h3> <p>メールアドレス(必須)</p> <input> <p>お問い合わせ内容(必須)</p> <textarea></textarea> <p>※必須項目は必ずご入力ください</p> <input class="submit" type="submit" value="送信"> </div> </body> </html>

CSSのコード

/* CSSのリセット(消さないでください) */
html, body,
ul, ol, li,
h1, h2, h3, h4, h5, h6, p,
form, input, div {
margin: 0;
padding: 0;
}

body {
font-family: "Avenir Next", "Hiragino Kaku Gothic ProN W3", sans-serif;
}

li {
list-style: none;
}

.lessons{}
.lessons h3{font-size:28px; padding-bottom:15px; border-bottom:2px #dee7ec solid; }
.lesson p{padding-top:30px; font-size:24px; } .lesson{float:left; padding-top:50px; padding-right:40px; padding-bottom:100px;}
.message {padding-left:80px; padding-right:80px; padding-bottom:100px;}
.message h3{font-size:28px; padding-bottom:15px; border-bottom:2px #dee7ec solid; margin-bottom:50px;}
input,textarea{width:400px; margin-top:10px; margin-bottom:30px; padding:20px; border:1px #dee7ec solid;}
.submit{font-size:18px; background-color:#dee7ec; color:#889eab;}

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

コードがマークダウンで書かれておらず、かなりグチャグチャなので推測で回答します。

.lesson が float で配置されており、かつ、親要素の .lessons にブロック整形コンテキストがないため、.lessons の高さが潰れています。
(.lessons の高さをデベロッパーツールなどで調べてみると確認できます)
そのため、「お問い合わせ」というテキストが回り込まれています。

さて、.lesson の内部にある svg について、HTML&CSS と PHP のサイズが、その他のサイズより 1px 大きいため、小さな段差ができています。
なので、回り込まれた「お問い合わせ」テキストは、その段差に引っかかって、中央付近に配置されています。
(PHPの .lesson の右端と「お問い合わせ」の左端の位置を比べてみると確認できます)

ここで、「lessonsのheightをきちんと500pxと指定」すると、潰れた .lessons の高さが指定されますから、テキストが回り込まれなくなり、段差に引っかからなくなり、指定通りに左寄せとして表示される、ということになります。


ただ、その解決方法はアドホックなものであり、あまりお勧めできません。
clearfixを使うか、display:flow-rootとするのがいいでしょう。

ご不明の点がございましたら、コメントでご質問ください。

投稿2020/08/25 07:48

Lhankor_Mhy

総合スコア36960

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問