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 ステートメントを使用します。

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

推薦する

n 個のコンテナ要素による無限スクロールの実装コード

シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...

Vue でよく使われる高階関数と包括的な例

1. 配列のよく使われる高階関数配列があり、その配列に対して次の操作を実行したいとします。 100 ...

MySQLクエリが遅い原因と解決策

クエリ速度が遅くなる理由は多数ありますが、最も一般的な理由は次のとおりです。 1. インデックスがな...

iconfontアイコンライブラリをvueに導入するエレガントな実践記録

目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...

入力タイプとは何を意味し、入力を制限する方法

入力を制限する一般的な方法1. ボタンが押されたときに点線のボックスを消すには、入力に属性値hide...

Js でオブジェクトのディープ オブジェクトを安全に取得するメソッドの例

目次序文文章パラメータ例Lodash 実装:トーキー機能: castPath関数: stringTo...

新しい CSS :where および :is 疑似クラス関数とは何ですか?

:is と :where とは何ですか? :is()と:where()は、セレクターを作成するとき...

JavaScript で一意の ID を生成するいくつかの方法

考えられる解決策1. Math.randomは[0,1)の範囲の乱数を生成します。 //今回は生成さ...

あまり使われていない、または誤解されている HTML タグ 10 個

ここでは、あまり使われていない、または誤解されている 10 個の HTML タグを紹介します。あまり...

ウェブページをデザインするには?ウェブページを作成するには?

Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...

Echarts 凡例コンポーネントのプロパティとソース コード

凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...

初心者向けBootstrap 3.0学習ノート

この学習ノートの最初の記事として、シリーズの他の記事と同様に、Bootstrap の紹介から始め、そ...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...