div
container
には、複数の子div
要素が含まれています。これらの子のうち、div
は、top_bar
という名前の最上位のものはposition: fixed
、その他のものはposition: relative
です。問題は、相対的な位置付けを持つdiv
が固定された位置付けのdivと重なっていることです。問題の概要はjsfiddleです。これを修正するにはtop:150px
を追加することができましたが、これはハックのように感じます。これを行うより良い方法はありますか?位置が固定で相対的なdivの重複
1
A
答えて
0
padding-top:120px;
~container
およびtop:0;
~top_bar
以下のdivにdivはオーバーバーにはなりません。
html, body {
height:100%;
}
.container {
text-align: center;
width:100%;
margin:0%;
padding:120px 0 0;
color: dodgerblue;
}
.top_bar{
box-shadow: 0px 5px 5px #DDD;
position: fixed;
z-index: 10000;
opacity: .95;
background-color:#f9f9f9;
width:100%;
top:0;
}
.mugoogle{
font-size: 22px;
font-family: Arial;
margin: 10px auto;
}
.mugoogle a, .tab_results a {
text-decoration:none;
-webkit-transition:all .3s ease;
-ms-transition:all .3s ease;
transition:all .3s ease;
}
.mugoogle a:hover{
color: #aaa;
}
.tab_results a:hover {
text-decoration:underline;
color: #000
}
.textbox{
margin: 0px auto;
height:30px;
width:60%;
}
.rounded {
\t border-radius:5px;
\t -moz-border-radius:5px;
\t -webkit-border-radius:5px;
}
/* h4{
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
}
*/
input[type="submit"] {
height: 30px;
}
input[type="text"] {
border: 1px solid #ccc;
margin: 10px;
padding: 5px;
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
}
input[type="text"]:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.button {
\t display: inline-block;
\t outline: none;
\t cursor: pointer;
\t text-align: center;
\t text-decoration: none;
width: 40px;
\t font: 14px/100% "Century Gothic", Arial, Helvetica, sans-serif;
\t /* padding: .5em 2em .55em; */
\t text-shadow: 0 1px 1px rgba(0,0,0,.3);
\t -webkit-border-radius: .5em;
\t -moz-border-radius: .5em;
\t border-radius: .5em;
\t -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
\t -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
\t box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.button:hover {
\t text-decoration: none;
}
.button:active {
\t position: relative;
\t top: 1px;
}
.blue {
\t color: #d9eef7;
\t border: solid 1px #0076a3;
\t background: #0095cd;
\t background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
\t background: -moz-linear-gradient(top, #00adee, #0078a5);
\t filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
}
.blue:hover {
\t background: #007ead;
\t background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
\t background: -moz-linear-gradient(top, #0095cc, #00678e);
\t filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
}
.blue:active {
\t color: #80bed6;
\t background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
\t background: -moz-linear-gradient(top, #0078a5, #00adee);
\t filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
}
.project_data{
text-align:left;
width: 1000px;
position:relative;
padding: 5px;
word-wrap:break-word;
margin:0 auto;
font-family: Calibri;
font-size: 18px;
color: #555;
}
<div class = "container">
<div class = "top_bar">
<h4 class = 'mugoogle'>
<a href = '/search/'>
muGoogle
</a>
</h4>
<form class="form-wrapper" method = "GET" action = "{% url 'doc_scorer'%}">
<input type="text" name = 'query' class="textbox rounded" placeholder="Search docs related to..." required>
<input type="submit" class="button blue" value="🔎">
</form>
<br>
</div>
<br>
<div class = 'project_data project_name'>
<strong>Project name: </strong>
</div>
<div class = 'project_data scq_title'>
<strong>SGQ: </strong>
</div>
<div class = 'project_data situation'>
<strong>Situation: </strong>
</div>
<div class = 'project_data future_state'>
<strong>Future State: </strong>
</div>
<div class = 'project_data complications'>
<strong>Complications: </strong>
</div>
<div class = 'project_data questions'>
<strong>Questions: </strong>
</div>
<div class = 'project_data data'>
<strong>Data: </strong>
</div>
<div class = 'project_data name'>
<strong>Name: </strong>
</div>
<br>
<br>
</div>
1
あなたが言及リンクの下に確認することができますので、あなたは、このダイナミックにしたい場合:
https://jsfiddle.net/06vzbuf0/2/
を私はこの問題を解決するためにjQuery
を使用しました。
関連する問題
- 1. GoogleマップV3 divの位置固定の相対的な変更
- 2. 親コンテナとの相対的な位置を固定したdiv
- 3. 相対的なdivの重複固定ディグ
- 4. CSS Divの相対的な位置
- 5. デスクトップブラウザの固定位置、モバイルデバイスの相対的/静的な位置(Android、iOS ...)
- 6. divを相対位置に固定した位置に設定する
- 7. 相対的な親と同じサイズのCSS位置固定
- 8. 親divとの相対位置を固定
- 9. 固定に相対的な位置 - スライドさせる方法は?
- 10. 相対位置のDivを指定
- 11. 、相対位置のdiv
- 12. div固定位置
- 13. Div div絶対位置と負のマージンの内容が重複
- 14. div内のdivの相対位置
- 15. 相対的なdivより絶対位置divをオーバーラップできません
- 16. 位置相対重なりフロート:左 -
- 17. CSSの位置付け:絶対的には固定で相対的な互換性がありますか?
- 18. 固定位置の特定のdivが
- 19. 固定div内のdivを相対的に配置しますか?
- 20. 固定位置内の絶対位置
- 21. 固定位置のdiv
- 22. 相対的な位置のdivをオーバーフローの外に移動div隠しdiv
- 23. 固定divを相対divに作成
- 24. 位置を使用しないdivの重複:絶対
- 25. 相対的な位置付けのヘルプ
- 26. 相対的な位置指定されたdivの後ろのマージンの崩壊
- 27. IE7 div位置固定
- 28. 固定されたdivが必要です親の相対divが重複しません
- 29. 絶対配置されたdiv内の下の相対位置を指定した位置div
- 30. 位置固定と絶対
これはハックではありません。要素の位置を固定すると、効果的にドキュメントレイアウトから取り除かれ、他の要素(静的または相対)の位置には影響しません。フローからの削除に関しては、それはposition:absoluteと同様に動作します。 – Terry
私はそれをハックと呼ぶ傾向があった理由は、ある場合には固定バーの高さが増し、重複が再び起こるということができるからです。私はこれらの細部を扱うことができるダイナミックなソリューションを探していました。 –
この場合、JSを使用して問題を回避する必要があります:(1)JSを使用して固定ナビゲーションバーの全高を計算し、それをトップパッディング(すなわち、 'padding-top')または基本位置の「上」を文書のコンテンツラッパーに送る。代わりに、(2)は、固定ナビのコピーを実際に作成することです。固定ナビのコピーは静的/相対的に配置され、もう一方は固定され、隠されて固定されます。私はこの実装をもう少し複雑に思っていますが、利点は、高さを再計算する必要なしにナビゲーションバーのスペースを予約することです。 – Terry