CSSアダプティブレイアウトは、サブ要素項目の全体的な中央揃えと内部項目の左揃えを実現します。

CSSアダプティブレイアウトは、サブ要素項目の全体的な中央揃えと内部項目の左揃えを実現します。

日常業務では、次のようなレイアウトに遭遇することがあります。親要素のフレーム (ブラウザのサイズに応じて幅が調整されます) に多数のボタンが含まれ、これらのボタン (固定幅) を親要素の中央に配置する必要があり、ボタンの全体的なコンテンツは左から右に配置されるというものです。解決策は次のとおりです。

次のコードがあります:

<div class="wrap">
    <button class="btn">1</button>
    <button class="btn">2</button>
    <button class="btn">3</button>
    <button class="btn">4</button>
    <button class="btn">5</button>
    <button class="btn">6</button>
    <button class="btn">7</button>
</div>

対応する CSS は次のとおりです。

。包む {
    境界線: 2px 黒一色;
    マージン: 0 自動;
    パディング: 10px;
    幅: 40%;
}
.btn{
    アウトライン: なし;
    境界線: なし;
    幅: 180ピクセル;
    高さ: 30px;
    背景色: コーンフラワーブルー;
    マージン: 5px;
}

表示効果:

表示効果1

動的に変化する幅:

幅バリエーション1

ご覧のとおり、ブラウザ ウィンドウのサイズを縮小すると、親要素 (黒いボックス) の幅が動的に調整され、その子要素も親要素の幅に応じて動的に配置されます。ただし、ボタン グループは親コンテナー内で左揃えになっています。全体を中央揃えにしたい場合は、次のようにします。

CSSコード:

。包む {
    境界線: 2px 黒一色;
    マージン: 0 自動;
    パディング: 10px;
    幅: 40%;
    表示: グリッド;
    グリッドテンプレート列: repeat(自動入力、200px);
    コンテンツの中央揃え: 中央;
}
.btn{
    アウトライン: なし;
    境界線: なし;
    幅: 180ピクセル;
    高さ: 30px;
    背景色: コーンフラワーブルー;
    マージン: 5px;
}

親要素のdisplayプロパティをgridに設定し、グリッド列テンプレートを auto-fill に設定し、幅を200pxに設定し (ここでの幅は、単一のボタン要素よりもわずかに大きくすることができます)、 justify-contentプロパティ値をcenterに設定して、コンテンツを水平方向に中央揃えにします。効果は以下のとおりです。

表示効果2

動的に変化する効果:

幅バリエーション2

幅の変更プロセス中、サブ要素全体が常に中央に留まっていることがわかります。

CSSだけでこの効果を実現するには、グリッドを使うことしか思いつきませんでした。他の方法があれば、ぜひメッセージを残して一緒に学んでくださいね〜

ヒント: グリッドの互換性は現時点ではあまり良くありません。古いバージョンのブラウザをサポートする必要がある場合は、注意して使用してください。

互換性

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

<<:  MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

>>:  ウェブページのメモリ使用量とCPU使用量を削減する方法

推薦する

MySQL 5.7.17 のインストールと設定方法のグラフィック チュートリアル (Ubuntu 16.04)

公式 MySQL Web サイトから Ubuntu Linux 用の最新バージョンの MySQL を...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

ベスト HTML/CSS デザインおよび開発フレームワーク 15 選を紹介します

プロフェッショナルな Web デザインは複雑で時間がかかります。 HTML と CSS フレームワー...

Trash-Cli: Linux のコマンドラインごみ箱ツール

ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

H5ウェイクアップアプリの実装方法と注意点のまとめ

目次序文APPメソッドにジャンプURLスキームメタタグユニバーサルリンクさまざまな使い方URLスキー...

MYSQLは、ショッピングカートに追加する際に重複追加を防ぐためのサンプルコードを実装します。

序文最近、仕事の都合で、APP ショッピングカートの注文支払いに取り組んでいました。テスト中にバグが...

Nginx リバース プロキシを使用して go-fastdfs を実行する例

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

Vuex環境の詳細な説明

目次Vuex環境を構築する要約するVuex環境を構築するsrcディレクトリにフォルダstoreを作成...

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

MySQL エラー: ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションの解決策を再起動してください

問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...

Vue が価格カレンダー効果を実現

この記事では、価格カレンダー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

CocosCreatorを使ってシューティングゲームを作る方法

製造手順を分析します。 1. リソースを準備してシーンを構築するオンラインでリソースを探すか、私のリ...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

MySQL アクティブ-アクティブ同期レプリケーションの 4 つのソリューションの詳細な説明

目次MySQLネイティブレプリケーションに基づくマスター-マスター同期ソリューションGaleraレプ...