HTMLとCSSを使用して、水平の100%積み上げ棒グラフを作成しようとしています。グラフ化したい値に応じて、背景色と幅のパーセンテージを設定したDIVを使用してバーを作成します。また、グラフに沿った任意の位置を示すグリッド線が必要です。
私の実験では、CSSプロパティfloat: left
を割り当てることで、バーを水平に積み重ねるようにしました。ただし、実際には混乱を招くようにレイアウトを混乱させているように見えるため、それを避けたいと思います。また、バーがフロートしている場合、グリッド線はあまりうまく機能しないようです。
CSSポジショニングでこれを処理できるはずだと思いますが、その方法はまだわかりません。コンテナの左上隅を基準にして、いくつかの要素の位置を指定できるようにしたいと思います。私はこの種の問題に定期的に遭遇します(この特定のグラフプロジェクト以外でも)。
あなたは、CSSポジショニングが進むべき道であることは正しいです。以下に簡単に説明します。
position: relative
は、要素をitself。に相対してレイアウトします。つまり、要素は通常のフローでレイアウトされ、通常のフローから削除され、指定した値(上、右、下)によってオフセットされます。 、左)。フローから削除されているため、周囲の他の要素は移動しないことに注意してください(この動作が必要な場合は、代わりに負のマージンを使用してください)。
ただし、おそらくコンテナに関連して要素を配置するposition: absolute
に興味があります。デフォルトでは、コンテナはブラウザウィンドウですが、親要素にposition: relative
またはposition: absolute
が設定されている場合、それは子の座標を配置するための親として機能します。
実証するには:
<div id="container">
<div id="box"> </div>
</div>
#container {
position: relative;
}
#box {
position: absolute;
top: 100px;
left: 50px;
}
その例では、#box
の左上隅は100ピクセル下、#container
の左上隅の左50ピクセルになります。 #container
にposition: relative
が設定されていない場合、#box
の座標は、ブラウザーのビューポートの左上隅を基準にします。
お役に立てば幸いです。
親コンテナの位置と子コンテナの位置を明示的に設定する必要があります。その典型的な方法は次のようなものです。
div.parent{
position: relative;
left: 0px; /* stick it wherever it was positioned by default */
top: 0px;
}
div.child{
position: absolute;
left: 10px;
top: 10px;
}
私は遅れていることは知っていますが、これが役立つことを願っています。
以下は、positionプロパティの値です。
position:static
これがデフォルトです。これは、要素が通常の位置に現れることを意味します。
#myelem {
position : static;
}
position:fixed
これにより、ブラウザウィンドウ(ビューポート)に対する要素の位置が設定されます。固定配置された要素は、ページがスクロールしてもその位置に残ります。
(ページの右下隅にあるスクロールして上部へのボタンが必要な場合に最適です)。
#myelem {
position : fixed;
bottom : 30px;
right : 30px;
}
位置:相対
元の位置を基準にして新しい位置に要素を配置します。
#myelem {
position : relative;
left : 30px;
top : 30px;
}
上記のCSSは、#myelem要素を30pxで左に移動し、実際の位置の上部から30pxを移動します。
position:absolute
要素をページ内の正確な位置に配置する場合。
#myelem {
position : absolute;
top : 30px;
left : 300px;
}
上記のCSSは、ページの#myelem要素を上から30px、左から300pxの位置に配置し、ページとともにスクロールします。
そして最後に...
相対位置+絶対値
親要素のpositionプロパティをrelativeに設定してから、子要素のpositionプロパティをabsoluteに設定できます。このようにして、親を基準にして子を絶対位置に配置できます。
#container {
position : relative;
}
#div-2 {
position : absolute;
top : 0;
right : 0;
}
上記の画像では、#div-2要素が内の右上隅に配置されています#container要素。
GitHub:上記の画像 here およびCSS here のHTMLを見つけることができます。
これを願っています チュートリアル 助けて。
絶対配置では、最も近い配置先祖に対して要素を配置します。したがって、position: relative
をコンテナに配置すると、子要素の場合、top
およびleft
は、子要素にposition: absolute
が含まれている限り、コンテナの左上を基準にします。詳細については、 CSS 2.1仕様 を参照してください。
要素を含む要素に対して最初に要素を配置する必要がある場合は、position: relative
をコンテナ要素に追加する必要があります。親に対して相対的に配置する子要素には、position: absolute
が必要です。絶対配置が機能する方法は、最初の相対的(または絶対的に)配置された親要素に対して行われます。親が相対的に配置されていない場合、要素はルート要素に対して相対的に配置されます(HTML要素に直接)。
そのため、子要素を親コンテナの左上に配置する場合は、次のようにする必要があります。
.parent {
position: relative;
}
.child {
position: absolute;
top: 0;
left: 0;
}
この記事 を読むことで大きな恩恵を受けるでしょう。お役に立てれば!