2017-12-13 17 views
0

コードスニペットが含まれています。ヘッダーとフッターが.main divの内側になるように配置しようとしています。親との固定要素

なぜこれが機能しないのかわかりません。代わりに、ビューポート全体にまたがっています。

この特定のレイアウトでは、JavaScriptなしで親の左の位置を特定することはできず、CSSでそれを保持したいと考えています。

ヘッダーとフッターは、スクロールしたときと同じ場所に留まる必要があります。

.main { 
 
    position: absolute; 
 
    left: 60px; 
 
    right: 0px; 
 
    top: 0px; 
 
    height: 50000px; 
 
    background-color: #09f; 
 
} 
 

 
.parent { 
 
    position: relative: 
 
    width: 100%; 
 
} 
 

 
.header { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    right: 0; 
 
    background-color: #f00; 
 
} 
 

 
.footer { 
 
    position: fixed; 
 
    bottom: 0; 
 
    left: 0; 
 
    right: 0; 
 
    background-color: #f00; 
 
}
<div class="main"> 
 
    <div class="parent"> 
 
    <div class="header"> 
 
     <h3>header</h3> 
 
    </div> 
 
    <div class="footer"> 
 
     <h3>footer</h3> 
 
    </div> 
 
    </div> 
 
</div>

私は質問の下のコメントで書いたように、事前に任意の助けてくれてありがとう、 ジェイミー

+0

可能性の重複[固定位置が、容器に対して(https://stackoverflow.com/questions/6794000/fixed-position-but-relative-to-container) –

+0

Aビットは異なりますが、近いです。 –

+1

エレメントはビューポートに固定され、親エレメントには固定されません。 Position:fixedはposition:absoluteと同じではありません。しかし... .main(と.parent)が左側から60pxであることを知っていると、ヘッダー/フッターにも 'left:60px'を設定しない理由はありません。 – panther

答えて

0

は、一定の幅を親要素ではなく、ビューポートカウントされます。しかし、固定要素にleft: 60px(内容と同じ値)を設定することができます。

.main { 
 
    position: absolute; 
 
    left: 60px; 
 
    right: 0px; 
 
    top: 0px; 
 
    height: 50000px; 
 
    background-color: #09f; 
 
} 
 

 
.parent { 
 
    position: relative: 
 
    width: 100%; 
 
} 
 

 
.header { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 60px; 
 
    right: 0; 
 
    background-color: #f00; 
 
} 
 

 
.footer { 
 
    position: fixed; 
 
    bottom: 0; 
 
    left: 60px; 
 
    right: 0; 
 
    background-color: #f00; 
 
}
<div class="main"> 
 
    <div class="parent"> 
 
    <div class="header"> 
 
     <h3>header</h3> 
 
    </div> 
 
    <div class="footer"> 
 
     <h3>footer</h3> 
 
    </div> 
 
    </div> 
 
</div>

+0

残念ながら、このメソッドは左の位置が可変なので使用できません。 JavaScriptを使わない限り、それは不明です。 –

+0

'left'を' .main'に設定します。これはあなたが知っていることを意味し、 '.main'と同じようにここで設定できます。それはJSによって設定することができます、それはどのように関係なくです。 – panther

+0

私が言ったように、固定値ではなく、60pxは可変なので任意の値にすることができます。これは私には不可能です。 –

関連する問題