HTML で 2 つの div タグの間に垂直線を描く方法

HTML で 2 つの div タグの間に垂直線を描く方法

最近、インターフェースを描画しているときに、インターフェースに垂直線を描画し、この垂直線の高さが親 div 全体の高さに自動的に収まる必要がある (つまり、この垂直線の高さは 2 つの div のうち高い方の高さと同じ) という要件に遭遇しました。

通常、<hr> タグを使用して水平線を直接描画できますが、垂直線を描画しようとすると、タグが見つからないことがわかります。オンラインで情報を検索したところ、一般的には js を使用することを推奨しました。私は少し心配だったので、純粋な CSS を使用してこれを実行したいと考えていました。最終的に解決策を見つけました。以下に私のアプローチを共有します。

2 つの子 div の間に別の div を追加し、左 (右) の境界線が表示されるように設定し、padding-bottom | margin-bottom の正の値と負の値をオフセットするという原則を使用します。たとえば、 padding-bottom:1600px; margin-bottom:-1600px ; と設定すると、パディングは外側のレイヤータグを拡張するために使用され、マージンは外側のレイヤータグを拡張するために使用されないことがわかります。つまり、padding-bottom を使用すると、外側のラベルの高さが拡張され、外側のラベルは overflow:hidden; を使用して余分な高さを非表示にし、高さを最も高い列に揃えることができます。また、margin はモジュールのレイアウトに関連し、margin は padding によって拡張されたボックスをオフセットして、コンテンツ部分からレイアウトを開始することができます。

コードは次のとおりです:

体{  
    上マージン:100px;  
    左マージン:200px;  
}  
.maindiv{  
    幅:900ピクセル;  
    パディング:10px;  
    overflow:hidden; /*キー*/  
    border:1px 黒一色;  
}  
.leftdiv{  
    フロート:左;  
    幅:400ピクセル;  
    背景色:#CC6633;  
}  
.rightdiv{  
    フロート:右;  
    幅:400ピクセル;  
    背景色:#CC66FF;  
}  
.centerdiv{  
    フロート:左;  
    幅:50px;  
    border-right: 1px 破線の黒;  
    padding-bottom:1600px; /*キー*/  
    margin-bottom:-1600px; /*キー*/  
}  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<ヘッド>  
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=gb2312" />  
<title>縦線描画</title>  
<link href="../css/demo.css" rel="スタイルシート" type="text/css" />  
</head>  
<本文>  
    <div class="maindiv">  
        <div class="leftdiv"><br><br><br><br><br><br><br><br></div>  
        <div class="centerdiv"></div>  
        <div class="rightdiv"><br><br><br><br><br><br><br><br><br></div>  
    </div>  
</本文>  
</html>

効果画像:

ちなみに、jsのアイデアとキーコードをいくつか書いておきます

2 つの子 div の高さを比較して、どちらが高いかを確認します。背の高い div の隣接する境界線が表示されるように設定することでも、これを実現できます。

以下はjsコードです

関数myfun(){  
  var div1 = document.getElementById("コンテンツ");  
  var div2 = document.getElementById("side");  
  var h1 = div1.offsetHeight;  
  var h2 = div2.offsetHeight;  
    h1>h2の場合{  
        div1.style.borderRight="1px 破線 #B6AEA3";  
    }それ以外{  
        div2.style.borderLeft="1px 破線 #B6AEA3";  
  }  
}

要約する

上記は、HTML で 2 つの div タグの間に垂直線を描く方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

<<:  挿入前にレコードが既に存在するかどうかを確認するには、SQL ステートメントを使用します。

>>:  フロントエンドの面接の質問の最も包括的なコレクション

推薦する

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

JS ES 新機能テンプレート文字列

目次1. テンプレート文字列とは何ですか? 2. 複数行のテンプレート文字列2.1 式付きテンプレー...

VPSサーバーでよく使われるパフォーマンステストスクリプトの概要

これは、VPS サーバー用の一般的なワンクリック パフォーマンス テスト スクリプトです。マシンの構...

Docker を使用した SQL Server の実行の実装

現在、.net Core はクロスプラットフォームであり、誰もが Linux と Docker を使...

MySQL よく使われる関数の詳細な概要

目次MySQL 共通関数1. 数値関数文字列関数3. 時間機能4. システム機能5. 集計関数MyS...

Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...

vue3 を使用してマテリアル ライブラリを構築する方法

目次なぜマテリアルライブラリが必要なのでしょうか?材質は何ですか?素材の種類fuep、vue3 ベー...

MySQL のスローログ監視の誤報問題の分析と解決

以前は、さまざまな理由により、一部のアラームは真剣に受け止められませんでした。最近、休暇中に、すぐに...

Vueのコンポーネントの詳細な説明

目次1. コンポーネントの登録2. コンポーネントの使用3. 父から息子へ4. 息子から父へ5. ス...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

mysql-joinsの具体的な使用方法

目次結合構文: 1. InnerJOIN: (内部結合) 2. LeftJOIN: (左結合) 3....

MySQLは文字列関数のSQL文をインターセプトします

1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...

Linux xargsコマンドの使用

1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...

ワンクリックで雨や雪のエフェクトを実現する ThingJS パーティクルエフェクト

目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...