
完成形レイアウト

HTML
<body>
<div class="container">
<nav class="nabvar">
<div>
<p>Company Name</p>
</div>
<div class="menuitem">
<p>NavMenu1</p>
<p>NavMenu2</p>
<p>NavMenu3</p>
</div>
</nav>
<div class="lonely">
<p>画面が寂しいから文字を入れました。</p>
<p>画面が寂しいから文字を入れました。</p>
<p>画面が寂しいから文字を入れました。</p>
<p>画面が寂しいから文字を入れました。</p>
<p>画面が寂しいから文字を入れました。</p>
</div>
</div>
</body>
CSS
.container
{
background-color: skyblue;
}
.nabvar
{
margin-left:10%;
margin-right:10%;
display:flex;
background-color: blue;
padding:10px;
justify-content: space-between;
}
.menuitem
{
display:flex;
}
p
{
margin:0;
}
.menuitem p:not(first-child)
{
margin-left:10px;
}
.lonely
{
margin-top: 10px;
text-align: center;
}
まだpositionは未使用です。
navberにposition:fixed

ナビゲーションバーのレイアウトが壊れました。
CSS
.nabvar
{
position: fixed;
margin-left:10%;
margin-right:10%;
display:flex;
background-color: blue;
padding:10px;
justify-content: space-between;
}
更に上の親要素にfixedを入れてみましょう。
containerにposition:fixed

やはり、レイアウトが乱れていますが、先程とは違う乱れ方です。
CSS
.container
{
position: fixed;
background-color: skyblue;
}
.nabvar
{
margin-left:10%;
margin-right:10%;
display:flex;
background-color: blue;
padding:10px;
justify-content: space-between;
}
ちょっと変わった解決方法
CSS
.nabvar
{
width: 80%;
position: fixed;
margin-left:10%;
margin-right:10%;
display:flex;
background-color: blue;
padding:10px;
justify-content: space-between;
}
ナビゲーションバーの幅を表示領域に一致させれば解決できます。
解決したイメージ画像


コメント