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

推薦する

Linux 時間サブシステムの時間表現例の詳細な説明

序文Linux カーネルでは、元のコードとの互換性を保つため、または特定の仕様に準拠するため、また現...

実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析

準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...

ウェブサイトデザインに関するヒント

実は、最近はウェブデザインについてよく耳にするようになりました。インターネット業界は今とても発展して...

HTML の長いテキストは、タグの幅を超えると自動的に切り捨てられます。

長いテキストを表示する場合、C# 側で文字をインターセプトする必要があることがよくありますが、長いテ...

MySQL の current_timestamp の落とし穴とその解決策を共有する

目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...

MySQLがトランザクション分離を実装する方法の簡単な分析

目次1. はじめに2. RC および RR 分離レベル2.1. RRトランザクション分離レベルでのク...

ベースリンクタグの使用の紹介ベース

<br />リンクをクリックすると、ポップアップ表示される Web ページ アドレスは ...

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...

数千万データを持つMySQLテーブルを最適化する実践記録

序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...

Linuxテキスト処理ツールの詳細な説明

1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...

VueはOSSを使用して画像や添付ファイルをアップロードします

OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...

Windows で MySQL 5.7.17 圧縮バージョンをインストールするときに遭遇する落とし穴

まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...

CSS3 を使用した SVG パス ストロークのアニメーション化入門チュートリアル

JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

トップナビゲーションバー機能を実現するCSS+HTML

ナビゲーション バー、固定トップ ナビゲーション バー、およびセカンダリ メニューの実装効果図の実装...