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

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

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

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

HTML5

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

Q&A

解決済

1回答

562閲覧

ブラウザを縮小しても変に崩れないで反映されるようにしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

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

HTML5

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

0グッド

0クリップ

投稿2019/03/04 14:25

編集2019/03/05 02:13

質問の要件が曖昧なのは承知ですが、
要は、ブラウザを縮小しても『変に崩れないで欲しい』という事です。
縦型に縮小すれば、横並びになった要素が縦に綺麗にそのまま表示されたりと。
例えばこのようなサイトのように

現在、Progateの道場コース初級をやり終えクリアはしたものの、
実際ブラウザで見ると、画面縮小した時に変に崩れます。

その私のソースコードがこちら↓

【HTML】

<!DOCTYPE html> <html lang="jp" dir="ltr"> <head> <meta charset="utf-8"> <title>テスト用</title> <link rel="stylesheet" href="css/test.css"> </head> <body> <header> <div class="logo">Progate</div> <div class="list"> <ul> <li>プログラミングとは</li> <li>学べるレッスン</li> <li>お問い合わせ</li> </ul> </div> </header> <div class="main"> <div class="top"> <h1>HELLO WORLD<span>.</span></h1> <h2>プログラミングの世界へようこそ</h2> </div> <div class="contents"> <div class="contents-title"> <h3>学べるレッスン</h3> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/html.svg"> <p>HTML & CSS</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/php.svg"> <p>PHP</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/ruby.svg"> <p>Ruby</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/swift.svg"> <p>Swift</p> </div> </div> <div class=form> <h3 class="form-title">お問い合わせ</h3> <div class="form-contents"> <div class="mail"> <p>メールアドレス(必須)</p> <input type="text"> </div> <div class="contact"> <p>お問い合わせ内容(必須)</p> <textarea></textarea> </div> <div class="btn"> <p>※必須項目は必ずご記入ください</p> <button>送信</button> </div> </div> </div> </div> <footer> <div class="left"> <p>Progate</p> </div> <div class="right"> <ul> <li>会社概要</li> <li>採用</li> <li>お問い合わせ</li> </ul> </div> </footer> </body> </html>

【CSS】

/* CSSのリセット(消さないでください) */ html, body, ul, ol, li, h1, h2, h3, h4, h5, h6, p, form, input, div { margin: 0; padding: 0; } li { list-style: none; } /* ここからCSSを記述してください */ body { font-family: "Avenir Next", "Hiragino Kaku Gothic ProN W3", sans-serif; } header{ background-color:#26d0c9; color:white; height:90px; } .logo{ float:left; font-size:36px; padding:20px 40px; } header li{ float:left; padding:33px 20px; } /*header li{*/ /* display: inline-block;*/ /* float: left;*/ /* padding:33px 20px;*/ /*}*/ span{ color:red; } .main{ /*margin-top:100px;*/ /*margin-left:80px;*/ margin:100px 0px 100px 80px; } .top h1{ font-size:140px; } .top h2{ font-size:60px; } .contents{ margin-top:100px; height:500px; } .contents-title{ border-bottom: 2px solid #dee7ec; padding-bottom:15px; font-size:28px; } .contents-item{ display:inline-block; margin:50px 40px 0 0; } .contents-item p{ font-size:24px; padding-top:30px; } .form h3{ font-size:28px; } .form-title{ padding:100px 0 15px; border-bottom:2px solid #dee7ec; margin-bottom:50px; } .form-contents{ width:400px; } input,textarea{ width:400px; margin-top: 10px; margin-bottom: 30px; padding: 20px; } button{ width:400px; padding:20px; font-size:18px; margin-top: 10px; background-color:#dee7ec; color:#889eab; } footer{ background-color:#2f5167; height:120px; color:white; padding:40px ; } .left{ float:left; font-size:32px; } .right{ float:right; } .right li{ padding-bottom:20px; }

Progateでの正解と言われる模範回答のソースコードはこちら↓
【HTML】

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Progate</title> <link rel="stylesheet" href="css/syokyu_dojo.css"> </head> <body> <!-- ここからHTMLを書き始めてください --> <div class="header"> <div class="header-logo">Progate</div> <div class="header-list"> <ul> <li>プログラミングとは</li> <li>学べるレッスン</li> <li>お問い合わせ</li> </ul> </div> </div> <div class="main"> <div class="copy-container"> <h1>HELLO WORLD<span>.</span></h1> <h2>プログラミングの世界へようこそ</h2> </div> <div class="contents"> <h3 class="section-title">学べるレッスン</h3> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/html.svg"> <p>HTML & CSS</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/php.svg"> <p>PHP</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/ruby.svg"> <p>Ruby</p> </div> <div class="contents-item"> <img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/html/study/swift.svg"> <p>Swift</p> </div> </div> <div class="contact-form"> <h3 class="section-title">お問い合わせ</h3> <p>メールアドレス(必須)</p> <input> <p>お問い合わせ内容(必須)</p> <textarea></textarea> <p>※必須項目は必ずご入力ください</p> <input class="contact-submit" type="submit" value="送信"> </div> </div> <div class="footer"> <div class="footer-logo">Progate</div> <div class="footer-list"> <ul> <li>会社概要</li> <li>採用</li> <li>お問い合わせ</li> </ul> </div> </div> </body> </html>

【CSS】

/* CSSのリセット(消さないでください) */ html, body, ul, ol, li, h1, h2, h3, h4, h5, h6, p, form, input, div { margin: 0; padding: 0; } li { list-style: none; } /* ここからCSSを記述してください */ body { font-family: "Avenir Next", "Hiragino Kaku Gothic ProN W3", sans-serif; } .header { background-color: #26d0c9; color: #fff; height: 90px; } .header-logo { float: left; font-size: 36px; padding: 20px 40px; } .header-list { float: left; } .header-list li { float: left; padding: 33px 20px; } .main { padding: 100px 80px; } .copy-container h1 { font-size: 140px; } .copy-container h2 { font-size: 60px; } .copy-container span { color: #ff4a4a; } .contents { height: 500px; margin-top: 100px; } .section-title { border-bottom: 2px solid #dee7ec; font-size: 28px; padding-bottom: 15px; margin-bottom: 50px; } .contents-item { float: left; margin-right: 40px; } .contents-item p { font-size: 24px; margin-top: 30px; } .contact-form { padding-top: 100px; } input, textarea { width: 400px; margin-top: 10px; margin-bottom: 30px; padding: 20px; font-size: 18px; border: 1px solid #dee7ec; } .contact-submit { background-color: #dee7ec; color: #889eab; } .footer { background-color: #2f5167; color: #fff; height: 120px; padding: 40px; } .footer-logo { float: left; font-size: 32px; } .footer-list { float: right; } .footer-list li { padding-bottom: 20px; }

Progateの道場コースは独自でやる為、完璧なコピペが正解では無く、
見た目がだいたい合っていればクリアになります。
ですのでクラス名など他表記が違うので検証しづらいと思いますが、ご了承ください。

【質問】
私のコードで「ココをこうすればこうなる」など教えて頂きたいのです。
根本から全て、模範回答のように書き換えてしまえば同じになりますが、それでは学べ無く、反省できません。

・何故縮小したら崩れるのか(模範回答は崩れないのに)
・どこをどうすれば良いのか

以上、よろしくお願いします。

※追記 スクショ
私のコードだと、以下のように画面を縮小した際、
要素が重なります。
これを模範回答のように縮小しても見辛くならないようにする為に、
私のコードで修正する場合、どのようにすれば良いのかを教えて頂きたいだけです。
イメージ説明

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

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

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

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

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

yoshinavi

2019/03/05 00:12

意図するデザインは人によりけりです。 質問者さんが「崩れている」と思う所はどこですか?また、それを、どのようにしたいのですか? それがないと、回答はつきにくいかと思います。
退会済みユーザー

退会済みユーザー

2019/03/05 02:08

「崩れている」とは、質問文にあります通り、「ブラウザを縮小した時」です。 一度、私のコードでブラウザ反映してから、画面を右から左へ縮小して頂くとわかります。 ぐちゃぐちゃになりますから。 「ぐちゃぐちゃ」のと言う意味は言葉では上手く表現できない為、 実際見て頂ければ、言ってる事がわかるかと思います。 ・私のコードと模範回答のコードをそれぞれブラウザ反映してください。 ・次にそれぞれブラウザを縮小してください。 「デザインは人によりけり」云々という概念の次元の話ではございません。
yoshinavi

2019/03/05 02:38

>ぐちゃぐちゃになりますから。 → ヘッダーからフッターまですべてですか?問題の部分を抜き取って、との意味合いです。 また、「模範」の「学べるレッスン」部分は最初から「カラム落ち」を起こしています。
yoshinavi

2019/03/05 04:04

「viewport」の設定はどうなっていますか?
退会済みユーザー

退会済みユーザー

2019/03/05 04:13

viewport.... 初めて聞いた言葉ですが...。 ググると表示領域ですかね。 そのviewportとやらの確認方法も設定方法もわかりません。 今知った言葉で、ググっても情報ありすぎて、どれが最適な情報かも判断できないです。 ちなみに、他の回答者の「height: 500px;を削除する」で解決はしました。
yoshinavi

2019/03/05 04:23

>画面(ブラウザ)縮小 → デスクトップ画面の大小や各種デバイス(PC・タブレット・スマホ)に対応させる「レスポンシブ対応」が、この後の問題かと思います。 今回の提示問題でも「viewport」の設定で表示は異なります。そのためにも、今のうちから「viewport」を理解しておく必要があります。
退会済みユーザー

退会済みユーザー

2019/03/05 04:39

レスポンシブと絡んでくるのですね。レスポンシブはこれから学ぶ段階です。 レスポンシブを学び、今回のような問題に悩む事は無くなるのといいです。
yoshinavi

2019/03/05 04:50

今回の崩れる原因に「viewportの設定」が直接関わるモノではないですが、表示には違いが一部出てきます。 レスポンシブを視野に入れると、解決方法も異なる場合が今後は出てくるかと思います。まずは、HTMLとCSSの使い方をしっかり頑張って覚えてください。
guest

回答1

0

ベストアンサー

模範のほうも崩れていますけど。(Chromeで見ると、画像の右にお問い合わせと表示される)
.contentsheight: 500px;は削除
これのせいでdivの高さが変わらないため画像がdivからはみ出してしまい、この問題が起こっています。

模範の方は.contentsheight: 500px;を削除したうえで、overflow:hidden;を追加
.contents-itemにfloatがついているので、divの高さ計算が行えないことが問題なので、float要素の高さを計算できるよう、overflow:hiddenを付けるか、clearfixを使う必要があるかと思います。

p.s. HTMLの質問をするときは動作確認しているブラウザを明記しましょう。ブラウザにより、各CSSの挙動が異なる場合があります。なお、上記はGoogle Chromeで動作確認しています。

投稿2019/03/05 02:31

moredeep

総合スコア1507

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

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

退会済みユーザー

退会済みユーザー

2019/03/05 04:08

「模範も崩れている」やはりそうですよね。 height: 500px; を削除したらまさに解決しました。ありがとうございます。 何故、Progateはheightを500pxにする事を模範としたのだと思いますか? 何らかの意図はあるのでしょうが、今の状況、そして削除した事で解決されましたが、 それなら最初から必要ないのでは...と思ってしまいます。
退会済みユーザー

退会済みユーザー

2019/03/05 04:14

ブラウザを明記する事! なるほどですね。 次回以降、ブラウザは明記して質問します。
moredeep

2019/03/05 06:12

>何故、Progateはheightを500pxにする事を模範としたのだと思いますか? 模範解答のように`float:left`で横並びにしている場合、縦方向の領域をきちんと確保しておかないと、問題が発生することがあります。(模範解答では、`height:500px`を削除するだけだと、ブラウザの横幅を広げたときに、画像の右に問い合わせフォームが来ると思います。)そこで私の回答の`overflow:hidden`なのですが、これは一部のブラウザ(確か古いIEとか)では使用できません。高さ500もあれば横一列に並ぶしOKでしょ?ってノリなのかなと思います。 この辺りは、`display: inline-block`を使っているならば特に気にする必要はなかったと思います。
退会済みユーザー

退会済みユーザー

2019/03/05 07:54

>`float:left`で横並びにしている場合、縦方向の領域をきちんと確保しておかないと、問題が発生することがあります。 なるほどですね、非常に勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問