2017-09-12 7 views
1

水平メニューを作成しようとしています。フレックスボックスの私の理解では、私は要素が水平に積み重ね持つようにしたい場合は、私は次のページで、箱は縦フレックスコンテナも水平に積み重ねるフレックスアイテムを作る方法は?

div#navcontainer { 
 
    display: flex; 
 
    flex-direction: row; 
 
    flex-wrap: nowrap; 
 
} 
 

 
div.navitem { 
 
    color: #292929; 
 
    height: 45px; 
 
    width: 150px; 
 
    padding: 5px; 
 
    border-color: 292929; 
 
    border-width: 2px; 
 
    border-style: solid; 
 

 
    display: flex; 
 
    flex-direction: column; 
 
    align-items: center; 
 
    justify-content: center; 
 
}
<div id="header"> 
 
    <div id="navcontainer"> 
 
    <div class="navitem"><a href="./index.html">home</a></div> 
 
    <div class="navitem"><a href="./about.html">about</a></div> 
 
    <div class="navitem"><a href="./services.html">services</a></div> 
 
    <div class="navitem"><a href="./contact.html">contact</a></div> 
 
    </div> 
 
</div>

を積み重ね、

display: flex 
flex-direction: row; 

しかしCSSルールを適用すべきであるということです

他の要素のフレックスコンテナ自体が縦に積み重なったCSSフレックスアイテムを作成するにはどうすればよいですか?

+0

あなたのHTMLにあなたが '' idは= "navcontainer" を持っていますが、CSSでそれが.navcontainer' ...あなたはまた、 'フレックス方向へ' navcontainer'設定されている 'だと注意:COLUMN'、どの項目を垂直方向に積み重ねます。 –

+0

最初のエラーは、他の人がcssとhtmlを別々の塊に分割する編集によって導入されました。 2番目のエラーは私のものでした。私がSOを尋ねる前に最後に試したのは、flex-direction:columnが逆説的に動作するかどうかを確認することでした。 –

+1

実際にはありません。最初のエラーは私の元の質問にあり、問題の原因となっています。** id *を参照していたはずのときにクラス* navcontainerを参照するセレクタを書き留めました。私の「ディスプレイ:フレックス」はまったく適用されなかっただけです。 –

答えて

1

セットdisplay: flex~#navcontainer。また、フレックスボックスなしで入手することもできます。ボックスにはdisplay: inline-blockとパーセント値を使用してください。

+0

'display:inline-block'では、画面が小さくなりすぎても、項目は折り返されますか? –

+0

はい、そうです。 – glupiec

0

水平方向のフレックス方向がデフォルトの方向ですので、flex-direction: rowは余分です。今、あなたは垂直フレックスボックスを含む水平リストを持っています。

#navcontainer { 
    display: flex; 
    flex-wrap: nowrap; 
} 

.navitem { 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
} 
+0

申し訳ありません - 私は#navcontainerに 'flex-direction:row'を入れたいと思っていました。 –

関連する問題