CSSは複数の要素をボックスの両端に揃える効果を実現します

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウトの --justify-content: space-between を使用すると簡単に実現できます。ただし、いくつかのシナリオでは互換性などを考慮する必要があり、フレックスレイアウトをあきらめなければなりません。したがって、同じ効果を実現したい場合は、タイプセッティングを研究する必要があります。インターネットで答えを検索した後、問題を解決できる本当にシンプルで実質的な答えはほとんどないことがわかりました。実際、実際のプロジェクトでこの種のレイアウトによく遭遇するため、コミュニケーションと共有のために、余暇を利用してここでその基本的な実装を共有します。

シナリオ要件

特定の幅のボックスで、ボックスの元のレイアウトに影響を与えずにアイテムの両端を揃えます。

<div class="コンテナ">
        <ul>
            <li>12</li>
            <li>2</li>
            <li>3</li>
            <li>12</li>
            <li>2</li>
            <li>3</li>
            <li>12</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>

ここにこれらのアイテムがあるとします

* {
        マージン: 0;
        パディング: 0;
    }
    
    。容器 {
        幅: 1200ピクセル;
        高さ: 500px;
        背景色: 水色;
        マージン: 0 自動;
    }
    
    ul {
        /* キーは要素の幅で、マージンを負の値にシフトすることでコンテナと重なります*/
        幅: 1220ピクセル;
        左マージン: -20px;
        リストスタイル: なし;
    }
    
    ul li {
        フロート: 左;
        /* 幅 = (ボックスの幅 - 余白の間隔 * 行内の項目数 - 1) / 行内の項目数*/
        /* (1200px - 20 * 2) / 3 */
        幅: 386.666px;
        高さ: 60px;
        マージン: 0px 0 20px 20px;
        背景色: 赤;
    }

CSSの鍵は、アイテムの幅を計算する必要があることです両端のメント、フローティングレイアウト、フロー方向の幅が十分ではない場合、フローの列が1つずつ折りたたまれていると想像してください最後に連続して、明らかにマージンを0に設定するのが最良のソリューションではありません。現時点では、外側のボックス、外側のボックスULの幅(ここではULタグを使用し、ブロックタグは問題ありません)、および-Margin値設定を扱うことができます。

外箱の幅が1220pxなのはなぜですか

これはコンテナの元の幅です

これは ul の幅です。はい、コンテナよりも大きく、右側が大きくなっています。その後、ul を -margin で処理すると、両端が視覚的に揃います。

ulの背景色をキャンセルすると、効果が得られます

要約する

CSS を使用してボックス内の複数の要素を整列させる方法については、これで終わりです。CSS 要素ボックス整列の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQLが中国語の文字を挿入する問題を永久に解決するコツを教えます

>>:  Bootstrap 3.0 学習ノートのボタンとドロップダウン メニュー

推薦する

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...

Ubuntu 18.04にmysql5.7をインストールする

Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...

Vueが初めて要素を取得できなかったときの解決記録

序文Vue で要素を初回取得できない問題の解決方法は、ポップアップ ウィンドウで要素を取得するために...

ウェブテーブルフレームを作成するためのヒント

<br />Web テーブル フレームを作成するためのヒント。 ------------...

Vue-Routerのインストールプロセスと原理の詳細

目次1. フロントエンドルーティングの実装原則2. vue-Routerの基本的な使い方2.1. イ...

Dockerコンテナが外部ネットワークにpingできない問題を解決する

今日、docker で redis 環境を構築していたところ、yum がリソースを取得できず、インタ...

MySQL 5.7.9 バージョンの sql_mode=only_full_group_by 問題を解決する

MySQL 5.7.9 バージョンの sql_mode=only_full_group_by の問題...

Nginx リバースプロキシの例の詳細な説明

1. リバースプロキシの例1 1. 効果を達成する(1)ブラウザを開き、www.123.comと入力...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

vue プロジェクトのデプロイと Nginx でのプロキシ設定の問題の分析

1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...

MySQL における exists、in、any の基本的な使い方

【1】存在するループを使用して外部テーブルを 1 つずつクエリし、各クエリの存在する条件ステートメン...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

Vueはプルダウンを実装してさらに読み込む

Element-UI に慣れた開発者なら、無限スクロールの InfiniteScroll が使いにく...

CSS3でよく使われるスタイルの詳しい解説[基本的なテキストとフォントのスタイル]

概要: Web ページをより美しく見せるために、ここでは CSS3 でよく使用されるスタイルをいくつ...

Vueモバイル端末の適応化問題の詳細説明

1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...