1. ホーム
  2. Web制作
  3. CSS

[CSSチュートリアル]overflow:autoの使い方解説

2022-02-02 08:50:14

本文に入る前に、オーバーフローとフレックスレイアウトの使い方を紹介します。
overflow: auto; コンテンツが切り取られている場合、ブラウザは残りのコンテンツを見るためにスクロールバーを表示します。
フレックスでのプロパティ
display: フレックス。
flex-direction: column; スピンドルは上端を起点に垂直方向です。
オーバーフローとフレックスレイアウトを併用

コードは以下の通りです。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>usage of overflow:auto</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
    <link rel="stylesheet" type="text/css" href="css/reset.css" />

    <style type="text/css">
        html,body{
            width: 100%;
            height: 100%;
        }
        .container{
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
        }
        .header{
            width: 100%;
            height: 100px;
            background: #f99;
        }
        .content{
            width: 100%;
            height: 100%;
            overflow: auto;
            background: yellow;
            flex: 1;
        }
        .footer{
            width: 100%;
            height: 100px;
            background: #99f;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">

        </div>
        <div class="content">
            <ul>
                <li>111111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>111111</li>
                The li here should be written more so that it will show the effect, I am trying to save space here.
            </ul>
        </div>

        <div class="footer">
        </div>
    </div>
</body>
</html>

overflow: auto;の効果を得るには、まずレイアウトし、次にスタイルを書きます。
一番外側の親ボックスであるcontainerにスタイルを付けるには、以下のようなスタイルを追加します。

.container{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

また、html と body の幅と高さは必ず 100% にしてください。

html,body{
    width: 100%;
    height: 100%;
}

ヘッダーとボトムは固定の高さが与えられており、WeChatのようなアプリでは一般的なものです。

.header{
    width: 100%;
    height: 100px;
    background: #f99;
}

.footer{
    width: 100%;
    height: 100px;
    background: #99f;
}

真ん中のコンテンツにはflex: 1が与えられ、私たちのリードのoverflow: autoで、overflowは自動的にクロップされます。

.content{
    width: 100%;
    height: 100%;
    overflow: auto;
    background: yellow;
    flex: 1;
    }

レンダリングは次のようになります。

中央のコンテンツエリアは上下にスライドさせることができ、余分な部分は自動的に切り取られます。
以下は、私がreactで書いた、WeChatのチャットウィンドウを模した小さなプロジェクトです。

overflow:autoの使い方についての記事は以上です。overflow:autoの使い方については、Script Houseの過去の記事を検索するか、以下の記事を引き続き閲覧してください。