Ich habe einen Container mit max-width: 80 rem und margin-inline: auto und wenn ich ihn auf ein Raster anwende, funktioniert es perfekt, indem das Raster ab 80 rem zentriert wird
<div class="grid-container container"> <header class="primary-header flex "> //i want to put container class here <h1 class="logo uppercase text-white">adventure</h1> <button class="mobile-nav-toggle" aria-controls="primary-navigation" aria- expanded="false"><span class="sr-only">Menu</span></button> <nav class="flex"> <ul id="primary-navigation" class="primary-navigation flex text-white capitalise letter-spacing-3 fs-base" data-visible="false"> <li><a href="">home</a></li> <li><a href="">tours</a></li> <li><a href="">explore</a></li> <li><a href="">about</a></li> <li><button class="btn bg-pink text-white ">contact</button></li> </ul> </nav> </header> <main></main> </div>
Aber ich m?chte die Containerklasse in die Element-Header-Zelle einfügen, aber es funktioniert nicht. Es zentriert den gesamten Header-Inhalt, ohne die Gr??e von 80rem zu erreichen. Ich verstehe nicht, warum? Ich kenne ils aufgrund von margin-inline, aber normalerweise ist es bei 80rem zentriert und nicht davor.
.flex { display: flex; gap: var(--gap, 2rem); } .grid-container { height: 100vh; display: grid; grid-template-rows: min-content 1fr; text-align: center; } .container { max-width: 80rem; margin-inline: auto; }
當(dāng)“container”類應(yīng)用于父“grid-container”div
時(shí),它具有max-width: 80rem;
和margin-inline:自動(dòng);
。因此,當(dāng)視口寬度大于 80rem 時(shí),可用的內(nèi)聯(lián)邊距將被分割并平均應(yīng)用于 div
及其父項(xiàng) (body
) 之間,其中 div
居中>div。 header
是 div
的子級(jí),因此它在其容器內(nèi)具有默認(rèn)的左對齊方式。
當(dāng)“container”類應(yīng)用于 header
時(shí),div
的寬度不受限制,并且 header
現(xiàn)在已劃分并應(yīng)用所有可用的內(nèi)聯(lián)邊距位于其自身和 div
之間,導(dǎo)致 header
居中??捎眠吘鄟碜?header
的實(shí)際寬度(幾乎 40rem),而不是來自 max-width 聲明。
如果您只想 header
有最大寬度而不是 main
,您可以通過添加 width: 100% 來實(shí)現(xiàn)您想要的結(jié)果
到 .container
.flex {
display: flex;
gap: var(--gap, 2rem);
}
.grid-container {
height: 100vh;
display: grid;
grid-template-rows: min-content 1fr;
text-align: center;
}
.container {
width: 100%;
max-width: 80rem;
margin-inline: auto;
}
<div class="grid-container">
<header class="primary-header flex container">
<h1 class="logo uppercase text-white">adventure</h1>
<button class="mobile-nav-toggle" aria-controls="primary-navigation" aria-expanded="false"><span class="sr-only">Menu</span></button>
<nav class="flex">
<ul id="primary-navigation" class="primary-navigation flex text-white capitalise letter-spacing-3 fs-base" data-visible="false">
<li><a href="">home</a></li>
<li><a href="">tours</a></li>
<li><a href="">explore</a></li>
<li><a href="">about</a></li>
<li><button class="btn bg-pink text-white ">contact</button></li>
</ul>
</nav>
</header>
<main></main>
</div>