相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合のdivソリューション

概要: 一般的に、絶対幅を使用する場合は px を使用し、相対幅を使用する場合は % を使用しますが、絶対幅と相対幅の両方を同時に使用する場合はどうすればよいでしょうか。

今日の内容を説明するために例を挙げてみましょう。

1. 画像の質問に答えてください
2. 幅が画面の幅と等しくなり、レイアウトが 1 とほぼ同じになるようなソリューションを提供するようにしてください。ブラウザの幅をどのように調整しても、中央のレイアウトの相対的な幅が変わらず、グリッド間の間隔が 10 px であることを確認します。

質問1は非常に簡単で、解決策もたくさんあるので、詳細には触れません。

質問 2 を分析すると、2 つの重要な要件があることがわかりました。
相対幅: グリッドの相対幅 (比率) は変更されません。絶対幅: グリッド間の絶対距離は変更されません。

相対的な幅だけを気にするのであれば、非常に簡単です。左のグリッドの幅を 30% (たとえば) に設定し、右側の各グリッドの幅を 70% に設定するだけです。絶対的な幅だけを気にするのであれば、さらに簡単で、中央の距離を 10 ピクセルに設定するだけです。しかし、両方を同時に満たしたい場合はどうすればよいでしょうか? width: (inherit-10px)*30% と記述する必要がありますか?
明らかにそうではありません。私の解決策についてお話ししましょう (私は初心者なので、抜けている部分があったり、もっと良い解決策があれば、コメント欄で訂正してください!)

まず、一般的なボックスフレームワークを書き出します

<!-- タイガーのコードワールド-->
<!doctypehtml>
<html>
<ヘッド>
    <title>相対幅と絶対幅に関する議論</title>
    <メタ文字セット="utf-8">
    <link rel="スタイルシート" href="style.css">
</head>
<本文>
    <div id="top">
    </div>
    <div class="wrapper">
        <div id="左">
        </div>
        <div id="right">
        </div>
    </div>
    <div id="下">
    </div>
</本文>
</html>

上部のコンテナと下部のコンテナの詳細については説明しません。真ん中の部分についてだけお話しします。

まず、相対幅と絶対幅の問題は同時に解決できないことは明らかです(1. この質問に関する限り 2. 訂正は大歓迎です)
次に、問題を分割します。まず相対幅を解決してから絶対幅を解決します。または、まず絶対幅を解決してから相対幅を解決します。この質問に関する限り、前者の方が簡単です。問題をどのように「分割」するのでしょうか? ——もちろんコンテナ div です!

まず相対的な幅を解決しましょう:
A と C を結合し、相対的な幅を使用して B で記述します。

これは非常に単純で、左の幅は30%、右の幅は70%です
では、左側のコンテナのレイアウトをどのように解決すればよいでしょうか?
まず、次のことを考えてみましょう。左側に固定幅のグリッドがあり、右側に可変幅のグリッドがあるコンテナーを作成できますか?もちろん、これはナビゲーションバーです。これは非常に簡単です。以下に貼り付ける方法を見つけました。

#左{
    高さ: 300px;
    フロート: 左;
    幅: 150ピクセル;
}

#右{
    高さ: 300px;
    幅: 自動;
    左マージン: 150px;
}

そうすれば問題はすぐに解決するのではないでしょうか?
したがって、次に相対と絶対の間で競合が発生した場合は、強力なツールとして div を必ず使用してください。

もちろん、境界線の問題への対処方法など、いくつかの細かい点にも注意を払う必要があります。これには、外側のコンテナーと内側のコンテナーの高さを調整する必要があり (差は 2 * border-width)、右側のコンテナーを左側に適合させるには、右側に別の div を配置する必要があります。

ボックス モデルは CSS レイアウトの基本的なスキルです。さまざまな変換に適用する前に、誰もがボックス モデルを深く理解する必要があります。この質問を完了するには、margin、padding(この質問では使用されませんが)、border、divの関係をよく理解している必要があります。今日は詳しくは話しませんので、次回時間があるときに話します。

参考までに、私のコードをすべて以下に貼り付けました。より良い解決策があれば、コメント欄で共有してください。

HTML:

<!タイガーのコードワールド>
<!doctypehtml>
<html>
<ヘッド>
    <title>CSS レイアウト演習</title>
    <メタ文字セット="utf-8">
    <link rel="スタイルシート" href="style.css">
</head>
<本文>
    <div id="top">
    </div>
    <div class="wrapper">
        <div id="左">
            <div class="innerright"></div>
            <div class="inner"></div>
        </div>
        <div id="right">
            <div class="inner"></div>
        </div>
    </div>
    <div id="下">
    </div>
</本文>
</html>

CS: ...

/*タイガーのコードの世界*/

/*タイトルの幅は、境界線と余白のある幅なのか、境界線と余白のない幅なのか不明です。以下は境界線と余白のない幅をデフォルトとします*/


*{
    マージン: 0px;
    パディング: 0px;
    境界線の幅: 3px;
    境界線のスタイル: solid;
    境界線の色: 黒;
}

html{
    マージン: 0;
    パディング: 0;
    境界線の幅: 0;
    幅: 100%;
}

体{
    マージン: 0;
    パディング: 0;
    境界線の幅: 0;
}

#トップ{
    マージン: 10px;
    高さ: 150px;
}

.ラッパー{
    マージン: 10px;
    高さ: 300px;
    幅: 継承;
    境界線の幅: 0;
}

#左{
    高さ: 300px;
    幅: 30%;
    フロート: 左;
    境界線の幅: 0;
}

#左 .inner{
    高さ: 294px;
    幅: 自動;
    右マージン: 10px;

}

#左 .内右{

    高さ: 294px;
    幅: 10px;
    フロート: 右;
    境界線の幅: 0;
    左マージン: 10px;
}


#右{
    高さ: 300px;
    幅: 70%;
    フロート: 右;
    境界線の幅: 0;

}

#右 .inner{
    高さ: 294px;
    幅: 自動;
}


#底{
    マージン: 10px;
    高さ: 150px;
}

これで、HTML+CSS で相対幅と絶対幅が競合する場合の div 問題を解決する方法についての記事は終了です。HTML+CSS での相対幅と絶対幅の競合の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  モバイルページで縦画面を強制する方法

>>:  Reactを使用して画像認識アプリを実装する方法

推薦する

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...

全画面ページのスクロール効果を実現するJavaScript

JavaScript DOM を読み終えた後、解釈型 JavaScript スクリプト言語に対する...

JavaScript 即時実行関数の使用状況分析

一般的に、関数は実行する前に呼び出す必要があることはご存じのとおりです。以下に示すように、関数を定義...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...

Linux での MySQL マルチインスタンスの展開とインストール ガイド

MySQLマルチインスタンスとは簡単に言うと、MySQL マルチインスタンスとは、サーバー上で複数の...

全文検索とキーワードスコアリング方式のMySQL実装例

1. はじめに今日、同僚から、MySQL を使用して ElasticSearch に似た全文検索機能...

MySQL 接続クエリを本当に学びましたか?

1. 内部結合クエリの概要内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォ...

MySQL pt-slave-restart ツールの使い方の紹介

目次MySQL マスター スレーブ レプリケーション環境を設定する場合、マスター データベースとスレ...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション

1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

ウェブページのフォント設定についての簡単な説明

サイト全体のフォントを設定することは、常にシンプルでありながら難しい作業です。深く掘り下げていくと、...

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...