両側にCSS固定レイアウト、中央に適応レイアウトを実装

両側にCSS固定レイアウト、中央に適応レイアウトを実装

フローティング、フローティング埋め込み div、配置、フレックスという 4 つの一般的な方法と原則を分析します。

フロート

<スタイル タイプ="text/css">
    .wrap {背景: #eee; パディング: 20px; }
    p {マージン: 0; }
    .left {幅: 200px; 高さ: 200px; フロート: left; 背景: coral; }
    .right {幅: 200px; 高さ: 200px; フロート: right; 背景: lightblue; }
    .middle {余白: 0 200px; 背景: ライトピンク; }
</スタイル>

<div class="wrap">
    <p class="left">私は左側です</p>
    <p class="right">私は右側にいます</p>
    <p class="middle">私は列の最後尾にいましたが、真ん中まで走りました</p>
</div> 

原理:

  • フローティング要素と非フローティング要素は同じ 3 次元空間にありません。フローティング要素が明確でない場合、その下の要素が浮き上がります。
  • フローティング要素の高さは 0 です。フローティング ボックス レベルはblockレベルの水平ボックスよりも高く、 inline/inline-block水平ボックスよりも低くなります。

フローティングインラインdiv

<スタイル タイプ="text/css">
    .wrap {背景: #eee; パディング: 20px; }
    p {マージン: 0; }
    .left {幅: 200px; 高さ: 200px; フロート: left; 背景: コーラル; 左余白: -100%;}
    .right {幅: 200px; 高さ: 200px; フロート: 左; 背景: ライトブルー; 左余白: -200px;}
    .middle {幅: 100%; 高さ: 200px; フロート: 左; 背景: ライトピンク; }
    スパン{
        表示: インラインブロック;
        マージン: 0 200px;
    }
</スタイル>

<div class="wrap">
    <p class="middle">
        <span class="inner">
            私は真ん中です 
    </p>
    <p class="left">私は左側です</p>
    <p class="right">私は右側にいます</p>
</div> 

原理:

  • 3 つの要素はすべてフロートされており、テーマ要素は行の 100% を占め、負のmarginを使用して要素を左右に配置します。
  • テーマ要素内にmargin: 0 200pxの別の子要素を追加して、コンテンツが左右の 2 つのフローティング要素によって覆われないようにします。

位置

<スタイル タイプ="text/css">
    .wrap {背景: #eee; 位置: 相対;}
    p {マージン: 0; }
    .left {幅: 200px; 高さ: 200px; 背景: コーラル; 位置: 絶対;左: 0; 上: 0;}
    .right {幅: 200px; 高さ: 200px; 背景: 水色; 位置: 絶対; 右: 0; 上: 0;}
    .middle {高さ: 200px; 背景: ライトピンク; 余白: 0 200px;}
</スタイル>

<div class="wrap">
    <p class="middle">私は真ん中にいるので、マージンを使用して、左右に配置された 2 つの要素が占めるスペースをオフセットします</p>
    <p class="left">私は左側にいます。私は位置指定された要素です</p>
    <p class="right">私は右側にいます。私は配置された要素です</p>
</div> 

原理:

  • 左と右の要素はどこにでも配置できます。
  • 中央の要素ではmargin: 0 200pxを使用して、コンテンツが左右に配置された 2 つの要素の下に隠れないようにします。

フレックス

<スタイル タイプ="text/css">
    .wrap {背景: #eee; 表示: flex}
    p {マージン: 0; }
    .left {幅: 200px; 高さ: 200px; 背景: コーラル; }
    .right {幅: 200px; 高さ: 200px; 背景: ライトブルー; }
    .middle {高さ: 200px; 背景: ライトピンク; flex: 1;}
</スタイル>

<div class="wrap">
    <p class="left">私は左側です</p>
    <p class="middle">私は真ん中にいます。flex: 1 は残りのスペースを自動的に占有します</p>
    <p class="right">私は右側にいます</p>
</div>

原理:

  • flexレイアウトでは、子要素はデフォルトで水平に配置されます。
  • flex: 0 1 auto -> デフォルト、占有スペースは親の拡大には従わず、縮小に従います。元の幅
  • flex: 1 1 auto -> auto、占有スペースは親に従って拡大縮小し、元の幅は
  • flex: 0 0 auto -> none、占有スペースは親の拡大に追従せず、縮小にも追従せず、元の幅のままです
  • flex: 1 1 1 -> auto、占有スペースは親の拡大に従い、同時に縮小に従い、残りのスペースを自動的に埋めます

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

<<:  202 無料の高品質 XHTML テンプレート (2)

>>:  検索データ表示を実装するJavaScript

推薦する

Vueはタブ切り替えの虫眼鏡効果を実装します

この記事では、タブ切り替えの虫眼鏡効果を実現するためのVueの具体的なコードを例として紹介します。具...

Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習

目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...

mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法

mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

JSONObject の使用方法の詳細な説明

JSONObject は単なるデータ構造であり、JSON 形式のデータ構造 ( key-value構...

TypeScript 学習ノート: 型の絞り込み

目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...

Docker で Nginx イメージ サーバーを構築する方法

序文一般的な開発では、画像をディレクトリにアップロードし、ディレクトリとファイル名を連結してデータベ...

Navicat for MySQLのスケジュールされたデータベースバックアップとデータ復旧の詳細

データベースの変更または削除操作によってデータ エラーが発生したり、データベースがクラッシュしたりす...

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.12のインストールと設定方法を記録してみんなで共有します。 1. インストール1...

vue-cli でレスポンシブ レイアウトを実装する方法

フロントエンド開発を行うと、PCとモバイル端末の適応に必然的に直面することになります。このような問題...

MySQLのMVCCマルチバージョン同時実行制御の実装

1 MVCCとは何かMVCC の正式名称は、マルチバージョン同時実行制御です。データベースへの同時ア...

HTML ウェブページのブラウザタイトルバーに小さなアイコンを表示する方法

この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...

ネイティブ js を使用してライブ バレット スクリーンのスクロール効果をシミュレートします。

目次1. 基本原則2. 特定のコード要約する1. 基本原則まず、生放送エリアを10の部分に分割し(個...

MySQL テーブルタイプ ストレージエンジンの選択

目次1. 現在のデータベース支出のストレージエンジンを表示する方法1:方法2: 2. ENGINE=...

nginxサーバーのダウンロード、インストール、使用方法の詳細な説明

ダウンロードhttp://nginx.org/en/download.html解凍ダウンロードしたn...