両側に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

推薦する

HTMLでvueとel​​ement-uiを直接参照する方法

コードは次のようになります。 <!DOCTYPE html> <html> ...

VMware vSphere 6.5 インストール チュートリアル (画像とテキスト)

vmware vSphere 6.5 は vSphere ソフトウェアのクラシック バージョンであ...

異なるブラウザ間で互換性のあるテキスト配置を実現する CSS

フォームのフロントエンド レイアウトでは、テキスト ボックスのプロンプト テキストを両端に揃える必要...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

インライン要素スパンの最小高さの定義

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

JavaScript の useRef と useState の紹介

目次1. useStateフック2. useRefフック3. useRef と useState 4...

MySQLユーザー削除バグを解決する

著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに...

axios を使用してプロジェクト内の複数の繰り返しリクエストをフィルタリングする方法

目次1. はじめに:この場合、通常は 2 つのアプローチがあります。 2. CancelToken ...

XMLとCSSスタイルの組み合わせ

学生.xml <?xml バージョン="1.0" エンコーディング=&qu...

ServerManager の起動時にデータベースに接続できないエラーを解決する方法

Servermanager 起動時の接続データベース エラーmgrstart.batを実行しますエラ...

MySQL 5.7.18 でパスワードを変更する方法

MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...

Linux で txt を mysql にインポートする方法

序文昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベ...

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...

mysql mycat ミドルウェアのインストールと使用

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...