2017-02-12 20 views
1

次のファイルをチェックアウトしてください HTMLの構造とCSSはほぼ同じです。私は自分のプロジェクトで使用しています。 は現在、私は、私は、ブートストラップ3の最新バージョンを使用しています私のデザイン HEADER ポートフォリオ スライダー厄介セクションCSSの位置相対/絶対がレイアウトを妨害しています

に3つのセクションがあります。

私はポートフォリオセクションに相対的なポジションを与え、その内側のブロックは絶対をtopと置きます:-50px;

こちらのすべては問題ありません。しかし、私は新しいセクション "スライダ"を追加するときに問題が発生します。それはポートフォリオセクションに来ています。私はそれに位置と異なるブロックプロパティを与えることを試みた。まだスライダーセクションはポートフォリオセクションに来ています。ポートフォリオセクション からポジションを削除すると、スライダセクションが元の位置に戻ります。 誰でも次のようなフィドルをチェックして、私が間違っていることを教えてください。 デザインはポートフォリオのセクションがヘッダーを少し上回るようなものです。だからこそ私はポジションを使用しています。

<script async src="//jsfiddle.net/DTcHh/29616/embed/"></script> 
https://jsfiddle.net/DTcHh/29616/ 
+0

質問にフィーリングを埋め込むことはできません。コードを手動で追加する必要があります。 – BoltClock

答えて

0

私はむしろ位置:絶対を使用したいと思いますが、流れを壊すので不要です。要素を上に移動するには、マージンを相対または負の位置にするだけで済みます。私はそれが役に立てば幸い私の更新をチェックしてください例にhttps://jsfiddle.net/DTcHh/29623/

<header class="container-fluid header"> 
    <div class="row"> 
    <h1>HEADER</h1> 
    </div> 
</header> 
<section class="container"> 
    <div class="row position-relative"> 
    <div class="col-sm-10 col-sm-offset-1 position-relative-col"> 
     <div class="height"> 
     <h2>Some Portfolio items here</h2> 
     </div> 
    </div> 
    </div> 
</section> 
<section class="container trouble"> 
    <div class="row"> 
    <h3>Slider Troubling section</h3> 
    </div> 
</section> 

/* Latest compiled and minified CSS included as External Resource*/ 

/* Optional theme */ 
@import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css'); 
.header { 
    background: lightblue; 
    padding:25px; 
} 
.position-relative { 
    position:relative; 
} 
.position-relative-col { 
    background: green; 
    position: relative; 
    top: -50px; 
} 
.trouble { 
    background: darkblue; 
    opacity: 0.8; 
    color: white; 
} 
.height { 
    height: 100px; 
} 
+0

こんにちは!この解決策は機能します。一つの質問があります?ポジションを使用しない理由がありますか?私のコードからポジションアブソリュートを削除し、top:-50pxを相対配置された要素レイアウトに固定しているためです。 – Danial

+0

position:absoluteを設定すると、要素の流れが壊れ、結果としてレイアウトが壊れます。だから、ポジションの相対的なまたは負のマージンを使用することができますトップは確かにそれを行う。それは100%正しいでしょう。それがあなたのために働くなら、答えとしてそれをマークしてください。 –

+0

説明をありがとう。 – Danial

0

tryをcontainer class heightプロパティに追加してみてください。それはうまくいくはずです:

.container{ 
    height: 100px; 
} 
+0

私は.containerに固定された高さを与えました。容器の高さはポートフォリオの項目によって変わるためです。だから別の方法があるはずだと思いますか? – Danial

+0

位置絶対値を使用しない方が良いかもしれませんが、代わりにrelativeを使用し、マージンを持つコンテナを配置してください。 – Eliran

0

を参照してください。私が何をしたか

http://jsfiddle.net/DTcHh/29626/

position:relativetop: -50px;

+0

ありがとうございます。あなたはちょうど私の問題を解決しました。しかし、私には1つの質問があります。なぜあなたは内側のdivにポジションアブソリュートを使用せず、topを与えましたか:-50pxですか?あなたはちょうど直接トップを与える:相対的な位置に50px?私が知るべきことは何かありますか?私の元のプロジェクトコードでは、私は位置を削除しただけです:絶対と私の相対配置された要素とレイアウトが固定されてトップ:-50pxを与える。 – Danial

+0

私はこれを説明する方法を知らない、私の試してみましょう...私は常に私が推測するPhotoshop上の層のような別の要素の上に置く必要がある要素の位置絶対を使用します。相対位置を持つ要素に絶対位置を入れて、位置なしの要素と比較してみてください。 – zalijal

0

を使用すると、あなたは間違ったブートストラップ3グリッドを使用していることを同じタグの中にスライダーやポートフォリオを入れています。各行に対してrowクラスを追加し、rowクラスの各アイテムに対してクラスcol-*-*を使用する必要があります。私はあなたのコードに基づいてブートストラップグリッドを適切に使用していくつかの新しいコードを書いています。

http://jsfiddle.net/DTcHh/29627/

これが良くない場合は私に知らせてください、とあなたが代わりに達成しようとします。

+0

グリッド使用の提案をありがとう。しかし、これは私が探しているものではありません。 – Danial

関連する問題