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

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

ただいまの
回答率

90.51%

  • HTML

    11434questions

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

  • CSS

    7516questions

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

画面サイズを小さくした時のレイアウト崩れ

受付中

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 8,524

nasio777

score 4

現在html、cssでページ作成しているのですが、画面サイズを小さくするとレイアウトが下記のようにレイアウトが崩れてしまいます。

レイアウト

ちなみに、デフォルトサイズですと下のようにしっかりと収まります。
ページを縮小した際に元のレイアウトを保持することは可能なのでしょうか?

レイアウト

一部コードを載せておきます。
wrapperがtodays'pasutaとnewsを大枠で包んでいます。
subがtodays'pasuta、newがnewsの包みです。

/*-----------wrapper---------------*/
#wrapper{
  float:left;
  margin-top:20px;
}
#sub{
    width:500px;
    overflow:hidden;
    border:1px solid #EEEAE0;
    box-sizing:border-box;
}
#sub>.todayimg{
 margin: 20px 45px 20px 0px;
 float:right;
}
#sub .pesuca{
    float:left;
}
#sub .pesuca:hover{
  opacity:0.5;
}
#sub p{
  float:right;
  font-weight: bold;
  text-shadow:10px;
}
#sub p:first-of-type{
  margin:0 50px 10px 0;
}
/*---------new------------*/
#new{
  width:500px;
  height:128px;
  background:url(img/back.jpg);
  margin-top:30px;
  padding:15px;
  border:1px solid #EEEAE0;
  box-sizing:border-box;
}
#new .news{
  margin:0 0 20px 200px;
}
#new dt{
  float:left;
}
#new dd{
  margin-bottom:10px;
}

あと、全体大枠にcontainerをもたせています。
おそらくこのheigthが関係してるのかなと思いますが、適当にいじってみてもうまくいきません。
containerに高さ指定をしないで、それぞれのidに高さを持たせればうまくいくと思ったのですが、これもダメでした。
お手上げ状態なので、わかる方いましたらよろしくお願いしますよろしくお願いします。

/*-----------container-------------*/
    #container{
        width:980px;
             height:1200px;
        margin:0 auto;
        background-color:#fff;
        }
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

「レスポンシブデザイン」で調べてみると勉強になるかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

要素の大きさを画面サイズに合わせて変化させるためには通常、数値をpxではなくて%で指定するのではないかと思います。
今回は

#container


でwidth:980px;を指定しているため、画面サイズを小さくしたときに要素が可変にならなかったのかなあと思いました(それ以外にもいくつかありそうだけど)。
で、それを確認したうえで質問者さんのご希望の動作はこんな感じでできるのではないかと思います。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>タイトル</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        img {
            max-width: 100%;
            height: auto;
        }

        .wrapper::after {
            clear: both;
            display: block;
            content: '';
        }

        .sub {
            float: left;
            width: 50%;
            background-color: aqua;
        }

        .side {
            float: right;
            width: 50%;
            background-color: firebrick;
            height: 550px;
        }

        .new {
            background-color: gold;
        }
    </style>
</head>
<body>
<div class="container">
    <div class="wrapper">
        <div class="sub">
            <p>あかさたな</p>
            <img src="img/CxGC4ZnVIAAM3p2.jpg" alt="画像1">
            <div class="new">
                <p>あかさたな</p>
                <img src="img/CxGC1pzUkAAMSld.jpg" alt="画像2">
            </div>
        </div>
        <div class="side">
            <p>はまやらわ</p>
        </div>

    </div>
</div>
</body>
</html>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

要するにフッターが回り込んでしまうわけですね。
floatさせた要素の親要素にoverflow:hiddenを付けたらうまくかもしれません。

#container {
  ...
  overflow:hidden;
}


もしくは次の要素(footer)にclear:bothを付けてあげるか、ですね。

 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • HTML

    11434questions

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

  • CSS

    7516questions

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