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使用量を削減する方法

推薦する

フロントエンドエンジニアが作ったクールなインタラクティブウェブサイトを推薦します

ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...

JavaScript でローカル変数をグローバル変数に変換する方法

まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...

HTML の基礎必読 - CSS スタイルシートの包括的な理解

CSS (カスケーディング スタイル シート) は、HTML Web ページを美しくするために使用さ...

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...

ReactはExcelファイルのインポートとエクスポートを実装します

目次プレゼンテーション層ビジネスレイヤーコアプラグイン xlsx ExcelインポートExcelエク...

Navicatをサーバー上のdockerデータベースに接続する方法

dokekrでmysqlコンテナを起動するコマンドを使用します: docker run -p 330...

MySQLでSQLクエリ文がどのように実行されるかを分析する

目次1. MySQL論理アーキテクチャの概要2. コネクタクエリキャッシュ4. パーサー5. オプテ...

vueの実践的な応用におけるvuexの永続性の詳細な説明

目次vuex 永続性要約するvuex 永続性vuex: ブラウザを更新すると、vuexの状態は初期状...

DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する

Docker実行コマンドの使用docker run -d -p 9200:9200 -p 9300:...

Vue バックグラウンドでステータス ラベルをエレガントに記述する例

目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...

sbinディレクトリを生成せずにNginxをインストールするソリューション

エラーの説明: 1. Linux (CentOS 7 64) システムに Nginx (1.18.0...

MySQL 構成 SSL マスタースレーブ レプリケーション

MySQL5.6 SSLファイルの作成方法公式ドキュメント: https://dev.mysql.c...

CSS でデジタル ページング効果のコードと手順を実装する方法

かなりの数のウェブサイトがデジタルページング効果を使用しています。たとえば、このサイトのページングも...

Mybatis+mysqlはストアドプロシージャを使用してシリアル番号実装コードを生成します。

同時操作によるデータの重複を避けるために、データベースを操作するときにストアドプロシージャを使用して...