CSS を使用して複数の方法で下揃えを実装するサンプル コード

CSS を使用して複数の方法で下揃えを実装するサンプル コード

会社のビジネス要件により、次の図の赤い領域の効果を達成する必要があります。

効果の説明:

1. 赤い領域のデータを反転し(つまり、下から数えて、数字は1、2、3、4、5)、下部に表示する必要があります。
2. データが多すぎる場合は、スクロールバーを表示し、スクロールバーを一番下まで引っ張る必要があります。
3. データはWebSocketからプッシュされ、プッシュ間隔は数十ミリ秒です。
4. IE10以降のブラウザと互換性がある必要がある

フレックスレイアウトを使用して実装

<スタイル>
    *{
        マージン: 0;
        パディング: 0;
        ボックスのサイズ: 境界線ボックス;
    }
    。容器{
        位置: 相対的;
        幅: 300ピクセル;
        高さ: 500px;
        マージン: 10px 自動;
        境界線: 1px 実線 #f60;
        色: #fff;
    }
    。トップ、
    。底{
        高さ: 50%;
        パディング: 20px;
    }
    。トップ{
        背景色: #da2e22;
    }
    .トップ>ul{
        幅: 100%;
        高さ: 100%;
        オーバーフロー:自動;
    }
    。底{
        オーバーフロー:自動;
        背景色: #1e1e1e;
    }
</スタイル>
<div class="コンテナ">
    <div class="top">
        <ul style="padding-top: 104px;">
            <li>私は最初の li 要素です</li>
            <li>私は2番目のli要素です</li>
            <li>私は3番目のli要素です</li>
            <li>私は4番目のli要素です</li>
            <li>私は5番目のli要素です</li>
        </ul>
    </div>
    <div class="bottom">
        <ul>
            <li>私は最初の li 要素です</li>
            <li>私は2番目のli要素です</li>
            <li>私は3番目のli要素です</li>
            <li>私は4番目のli要素です</li>
            <li>私は5番目のli要素です</li>
        </ul>
    </div>
</div>

現時点では、フレックス レイアウトを使用するのが最善の解決策です。サブ要素は、1、2、3、4、5 の順序でレイアウトされます。レンダリング時にブラウザーは自動的に反転し、スクロール バーも反転します。つまり、自動的に下に配置されます。しかし、IE10 はまだ ~ をサポートしていないため、私が取り組んでいるこのプロジェクトでは使用できず、別の方法を見つける必要があります。

padding-topを使用して達成する

<スタイル>
    *{
        マージン: 0;
        パディング: 0;
        ボックスのサイズ: 境界線ボックス;
    }
    。容器{
        位置: 相対的;
        幅: 300ピクセル;
        高さ: 500px;
        マージン: 10px 自動;
        境界線: 1px 実線 #f60;
        色: #fff;
    }
    。トップ、
    。底{
        高さ: 50%;
        パディング: 20px;
    }
    。トップ{
        背景色: #da2e22;
    }
    .トップ>ul{
        幅: 100%;
        高さ: 100%;
        オーバーフロー:自動;
    }
    。底{
        オーバーフロー:自動;
        背景色: #1e1e1e;
    }
</スタイル>
<div class="コンテナ">
    <div class="top">
        <ul style="padding-top: 104px;">
            <li>私は最初の li 要素です</li>
            <li>私は2番目のli要素です</li>
            <li>私は3番目のli要素です</li>
            <li>私は4番目のli要素です</li>
            <li>私は5番目のli要素です</li>
        </ul>
    </div>
    <div class="bottom">
        <ul>
            <li>私は最初の li 要素です</li>
            <li>私は2番目のli要素です</li>
            <li>私は3番目のli要素です</li>
            <li>私は4番目のli要素です</li>
            <li>私は5番目のli要素です</li>
        </ul>
    </div>
</div>

padding-top を使用するのが最も簡単な実装方法ですが、純粋な CSS では実装できません。JS を使用して計算する必要もあります。プロジェクトの開始時には、padding-top+js 計算を使用して実装しました。この方法は実装が快適ではありません。Websocket によってデータがプッシュされるたびに、計算を実行する必要があります。では、もっと良い方法はあるのでしょうか?答えは間違いなく「はい」です。CSS の世界では、常に予期せぬサプライズがあります。重要なのは、強力な社内スキルを持つことです。

テーブルセルを使用して実装する

<スタイル>
    *{
        マージン: 0;
        パディング: 0;
        ボックスのサイズ: 境界線ボックス;
    }
    。容器{
        位置: 相対的;
        幅: 300ピクセル;
        高さ: 500px;
        マージン: 10px 自動;
        境界線: 1px 実線 #f60;
        色: #fff;
    }
    。トップ、
    。底{
        高さ: 50%;
        パディング: 20px;
        オーバーフロー:自動;
    }
    。トップ{
        背景色: #da2e22;
    }
    .トップコンテナ{
        表示: テーブル;
        幅: 100%;
        高さ: 100%;
    }
    .トップコンテナ>ul{
        表示: テーブルセル;
        垂直方向の位置合わせ: 下;
        幅: 100%;
        高さ: 100%;
    }
    。底{
        背景色: #1e1e1e;
    }
</スタイル>
<div class="コンテナ">
    <div class="top">
        <div class="トップコンテナ">
            <ul>
                <li>私は最初の li 要素です</li>
                <li>私は2番目のli要素です</li>
                <li>私は3番目のli要素です</li>
                <li>私は4番目のli要素です</li>
                <li>私は5番目のli要素です</li>
            </ul>
        </div>
    </div>
    <div class="bottom">
        <ul>
            <li>私は最初の li 要素です</li>
            <li>私は2番目のli要素です</li>
            <li>私は3番目のli要素です</li>
            <li>私は4番目のli要素です</li>
            <li>私は5番目のli要素です</li>
        </ul>
    </div>
</div>

テーブルセルを使用して下揃えを実現するのが現在のところ最後の解決策であり、IE8 とも互換性があります。下揃え問題は解決しました。「スクロールバーを下に引っ張る必要がある」という問題は、table-cell では実現できません。js を使用して制御するしかありません。偉大な神様は他に解決策を持っているのでしょうか?

CSS テーブルとテーブルセルのレイアウトは、多くの特殊効果を実現できます。詳細については、私が知っている Zhang Xinxu の display: table-cell のアプリケーションを参照してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  WeChatミニプログラムQRコード生成ツール weapp-qrcode 詳細説明

>>:  Linux DockerでSpringbootプロジェクトを実行するための詳細な手順

推薦する

MySQL で URL タイムゾーンの罠を回避する方法

序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

MySQLでの少し複雑な使用例コード

序文MySQL の構文は誰にとっても難しいものではないと思いますが、この記事では主に MySQL の...

Docker を使用して開発環境を構築する方法 (Windows および Mac)

目次1. Dockerを使用する利点2. Dockerをインストールする1) LinuxにDocke...

HTML のメタタグの簡単な比較

メタ タグは、ファイル情報を定義し、検索エンジンによる検索を容易にするために Web ページ ファイ...

iconfontアイコンライブラリをvueに導入するエレガントな実践記録

目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...

Nginx の break と last の違いの詳細な分析

まずは違いについて話しましょう最後に、書き換えられたルールは、次の場所と一致させるために書き換えられ...

CentOS 8 に Postfix メール サーバーをインストールして設定する方法

Postfix は、Linux システム上で電子メールをルーティングまたは配信するために使用される無...

CSS は、モバイル端末でクリックされたときに生成された要素の背景色を削除します (推奨)

クリック時に背景色を生成する要素の CSS スタイルに次のコードを追加します。 -webkit-ta...

MySQLデータのバックアップとリカバリの実装方法の分析

この記事では、例を使用して MySQL データのバックアップと復元の方法について説明します。ご参考ま...

MYSQLパターンマッチングREGEXPの使用に関する一般的な話など

のようにLIKE ではデータ全体が一致する必要がありますが、REGEXP では部分的な一致のみが必要...

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

div の水平レイアウトを両側に揃える 3 つの方法

この記事では、主に、div の水平レイアウトの両側の配置を実装する 3 つの方法を紹介し、それらを共...

VMWare 仮想マシン 15.X LAN ネットワーク構成チュートリアル図

最近、分散型およびビッグデータ技術について学ぶために、いくつかの仮想マシンに取り組んでいます。まず、...

カルーセル効果を実現するjQueryプラグイン

毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...