CSS でフロートとマージンを混合するサンプルコード

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れていない(とても不安)ことに気づきました。

これまでの勉強では、各属性の機能さえ覚えておけば CSS を使っても大丈夫だと感じていたのですが、実際はどうなのでしょうか?本当に恥ずかしいです。これ以上は言いません、悲しすぎるので、本題に入りましょう!

最近、フロート レイアウトとマージン レイアウトに取り組んでおり、これら 2 つを一緒に使用する方法についての理解が深まりました。 (新入生は見ることができますが、専門家は無視してください)

floatプロパティ

float: 左 | 右 | なし | 継承

もちろん、最もよく使われるのは最初の2つ、左フローティングと右フローティングです。

フローティングの最も重要な機能:ラベルの削除。

これは標準的なフローから外れ、より高度なレベルで、親要素と後続の要素のレイアウトに影響します。ここでは詳細には触れません。

マージンプロパティ

ここでは主にmargin-leftとmargin-rightについてお話します

margin-left: 要素の左余白を設定します。
margin-right: 要素の右余白を設定します。

一般的に、これら 2 つの属性の文字通りの意味を理解するのは簡単ですが、単純なものほど、過小評価すべきではありません。

要点

次のコード:

html:

<div class="box">
    <div class="zi_box1">1</div>
    <div class="zi_box2">2</div>
    <div class="zi_box3">3</div>
    <div class="clear"></div>
</div>

CS: ...

。箱 {
            背景色: #555555;
            幅: 600ピクセル;
            高さ: 200px;
        }
        .zi_box1 {
            フロート: 左;
            背景色: #c23232;
            幅: 200ピクセル;
            高さ: 100px;
        }
        .zi_box2 {
            フロート: 左;
            背景色:シャルトリューズ;
            幅: 200ピクセル;
            高さ: 100px;
        }

        .zi_box3 {
            フロート: 左;
            背景色: 青;
            幅: 200ピクセル;
            高さ: 100px;
        }
        。クリア {
            クリア: 両方;
        }

最終的な効果図:

3 つの子ボックスは親ボックスを埋めますが、その幅は親ボックス内で拡張できます。

親ボックスを展開できない場合はどうなりますか?

サブボックスの幅を広げる(ボックス番号3)

zi_box3 {
    幅: 300ピクセル;
}

効果図は以下のとおりです。

次に、3 番目のボックスが別の行で始まります。

マージンと組み合わせて使用​​する場合

最初のコードに基づいてマージン値を追加します

zi_box1 {
    左マージン: 20px;
}

このとき、3 つのボックスの幅に余白値を加えた値が親ボックスの幅よりも大きいため、ボックス 3 で新しい行が始まります。

逆に、ボックス 3 にマージン値を設定し、ボックス 1 とボックス 2 にマージンを設定しない場合、ボックス 3 も別の行で始まりますか?答えは「はい」です。幅が親ボックスの値を超えているためです。

3列レイアウトの実装

DOM の順序を変更せずに、ボックス 3、ボックス 1、ボックス 2 の順序を作成するにはどうすればよいでしょうか? margin属性を最大限に活用できますか?最初はバカでした(レイアウトの練習はほとんどしないので、批判しないでください、私はただの初心者です)

バカコード

.zi_box1 {
     左マージン: 200px;       
}
.zi_box2 {
     左マージン: 200px;       
}

.zi_box3 {
     margin0left: -400px;
}
//各要素が独立して動作すると考えるのは単純な考えです

効果図は次のように書きます。

その時は、これは一体何なのかと驚きました。

しかし、最終的な調査で、その理由が分かりました。最も重要なのは、DOM の実行順序です。

その理由は、ボックス 1 が最初に解析され、margin-left: 200px なので、ボックス 3 は 2 行目に移動します。次にボックス 2 が解析され、margin-left: 200px なので、ボックス 2 も 2 行目に移動します。これは、1 行目がすでに 600px の幅であるためです。最後に、ボックス 3 (margin-left: -400px) を分析します。ボックスは 400px 前方に移動し、次の効果が得られます。

このように考えるということは、全体像ではなく全体像を考慮することを意味します。

3列レイアウトを実装する最終コード

.zi_box1 {
     左マージン: 200px;       
}
.zi_box2 {
     左マージン: 0px;      
}

.zi_box3 {
     マージン0左: -600px;
}

レンダリング

簡単に言えばこうだ

ボックス1が右に200ピクセル移動すると、ボックス2とボックス3も右に200ピクセル移動します。具体的な効果の図は次のとおりです。

では、ボックス3が前面に移動する場合、600pxの距離が必要ですか?(分かりやすいと思いませんか?笑)もちろん、これは私の部分的な理解に過ぎず、完全に正しいわけではありません。

すると、float: right と margin-right は同じになります。

要約する

CSS の float と margin の混合使用に関するこの記事はこれで終わりです。CSS の float と margin の混合使用に関する関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Node-Redを使用してMySQLデータベースに接続する方法

>>:  JavaScript Three.js でテキストを作成する最初の経験

推薦する

mysql 更新ケース更新フィールド値が固定されていない操作

特定のデータの一括更新処理において、特定のステータスが固定値に更新されるなど、更新するフィールドの値...

Elementはスクリプトを使用して新しいコンポーネントを自動的に構築します

目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

HTMLのリストタグを数える

1. <dl>はリストを定義し、<dt>はリスト内の項目を定義し、<d...

Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

2 台のテスト マシンを見つけます。 [root@docker1 centos_zabbix]# d...

Node.jsはexpress-fileuploadミドルウェアを使用してファイルをアップロードします

目次プロジェクトを初期化するサーバーの作成クライアントを初期化するコンポーネントの記述ファイルアップ...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

ネイティブ JavaScript を使用した Web 計算機の実装

この記事では、参考までに、計算機のWebバージョンを実装するためのJavaScriptの具体的なコー...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

js はランダムロールコールを実装します

この記事では、ランダムロールコールを実装するためのjsの具体的なコードを参考までに共有します。具体的...

Docker-compose チュートリアルのインストールとクイックスタート

目次1. Compose の紹介2. ComposeとDockerの互換性3. Dockerをインス...

ウォーターフォールフローレイアウトを実装する3つの方法

序文今日、Xianyuを閲覧していたとき、各行の高さが同じではないことに気付きました。調べてみると、...

SQL で行の最大値または最小値を取得する方法

元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...