2016-05-23 12 views
1

私は自分のページの本体にビデオを集中させようとしています。ページの上部にナビゲーションがあり、下部にフッターがあり、ビデオ自体に関する情報が含まれています。重複しないでFlexboxコンテンツのセンタリングナビゲーション

私がやりたいことは、ビデオが常に中央揃えになるようにすることですが、サイズ変更時にナビゲーションとフッターがビデオと重ならないようにすることです。

.Site { 
 
    display: flex; 
 
    flex-direction: column; 
 
    height: 100vh; 
 
    overflow: hidden; 
 
    align-items: center; 
 
    align-content: center; 
 
} 
 
.Site-content { 
 
    flex: 1 0 auto; 
 
    width: 100vw; 
 
    display: flex; 
 
    flex-flow: column nowrap; 
 
    justify-content: center; 
 
    align-items: center; 
 
} 
 
.Site-header, 
 
.Site-footer { 
 
    flex: none; 
 
    position: absolute; 
 
    z-index: 600; 
 
    height: 10vh; 
 
    width: 100vw; 
 
} 
 
.Site-header { 
 
    top: 0; 
 
    border-bottom: 1px solid red; 
 
} 
 
.Site-footer { 
 
    bottom: 0; 
 
    border-top: 1px solid red; 
 
} 
 
.video-container { 
 
    position: relative; 
 
    width: 70%; 
 
    height: 0; 
 
    padding-bottom: 56.25%; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
} 
 
.video-container iframe { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
}
<body class="Site"> 
 
    <div class="Site-header">This is a header</div> 
 
    <div class="Site-content"> 
 
    <div class="video-container"> 
 
     <iframe src="https://player.vimeo.com/video/100978843" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> 
 
    </div> 
 
    </div> 
 
    <div class="Site-footer">This is the footer</div> 
 
</body>

私はposition: absoluteを除去することにより、headerfooterを変更しようとしたが、それはフレキシボックスのセンタリングを破るようだ:ここで私は現時点で持っているコードです。

どうすればこの問題を修正できますか?

答えて

1

あなたは難しい部分が応答iframeを保っていますが、この

body, 
 
html { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.Site { 
 
    height: 100vh; 
 
    display: flex; 
 
    flex-direction: column; 
 
    text-align: center; 
 
    justify-content: space-between; 
 
} 
 
.Site-header { 
 
    border-bottom: 1px solid red; 
 
    padding: 10px; 
 
} 
 
.Site-footer { 
 
    border-top: 1px solid red; 
 
    padding: 10px; 
 
} 
 
iframe { 
 
    max-width: 100%; 
 
    max-height: 70vh; 
 
}
<body class="Site"> 
 
    <div class="Site-header">This is a header</div> 
 
    <div class="Site-content"> 
 
    <div class="video-container"> 
 
     <iframe src="https://player.vimeo.com/video/100978843" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> 
 
    </div> 
 
    </div> 
 
    <div class="Site-footer">This is the footer</div> 
 
</body>

ような何かを行うことができ、 flex-direction: columnjustify-content: space-betweenを使用することができ、ここで絶対/相対位置を必要としません
関連する問題