CSS - wyśrodkowany układ strony
Opublikowano wto 07 kwietnia 2020 w css • 2 min read
Jednym popularniejszych obecnie stosowanych układów stron internetowych jest oparty na wyśrodkowanej treści - dzięki temu treść strony nie rozjeżdża się na boki przy większych ekranach.
Taki układ można łatwo osiągnąć przy użyciu flexboxa
, odpowiednio zagnieżdżonego div
'a oraz przypisanej mu klasy określającej jego szerokość
Przyjmę, że będziemy operować na 3 częściach -> Headerze - gdzie potencjalnie można znajdować się nawigacja, Main - zawiera główną zawartość strony, oraz Footer - gdzie znajdować się mogą informacje kontaktowe. Dalsze komentarze znajdują się kodzie zamieszczonym poniżej
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Centralized layout</title>
</head>
<body>
<!-- zajmuje 100% body (a body 100vw i wh) -->
<header>
<!-- zajmuje tyle szerokości ile zdefiniowane przez css -->
<div class="container">
<p class="header-text text">Top within header and container div</p>
</div>
</header>
<main>
<div class="container">
<p class="main-text text">Main within main and container div 1</p>
<p class="main-text text">Main within main and container div 2</p>
<p class="main-text text">Main within main and container div 3</p>
</div>
</main>
<footer>
<div class="container">
<p class="footer-text text">Bottom within header and container div</p>
</div>
</footer>
</body>
</html>
style.css
/* importowanie fontów */
@import url('https://fonts.googleapis.com/css2?family=Baloo+Thambi+2:wght@500&family=Indie+Flower&family=Shadows+Into+Light&display=swap');
/* reset */
* {
padding: 0;
margin: 0;
}
html {
font-size: 1.5rem;
}
/* kontener zawierający wyśrodkowaną treść */
.container {
width: 60%;
min-width: 200px;
background-color: white;
border: 2px solid rgb(10, 10, 10);
margin: 5px 0 5px 0;
/* wyśrodkowanie zawartości kontenera */
display: flex;
align-items: center;
justify-content: space-evenly;
flex-wrap: wrap;
}
/* header wyśrodkowujący kontener */
header {
display: flex;
justify-content: center;
background: green;
border-bottom: 1px solid;
height: 10vh;
}
/* mian wyśrodkowujący kontener */
main {
display: flex;
justify-content: center;
background-color: blue;
height: 80vh;
}
/* footer wyśrodkowujący kontener */
footer {
display: flex;
justify-content: center;
background-color: orange;
border-top: 1px solid;
height: 10vh;
}
.text {
font-family: 'Indie Flower', cursive;
border: 1px dashed;
background-color: rgb(255, 115, 0);
width: 65%;
text-align: center;
}
/* .header-text lub */
header .text {
font-family: 'Baloo Thambi 2', cursive;
height: 60%;
}
.main-text {
width: 250px;
height: 25%;
}
.footer-text {
font-family: 'Shadows Into Light', cursive;
}
.main-text:first-of-type {
background-color: chartreuse;
}
.main-text:nth-of-type(2) {
background-color: yellow;
}
.main-text:last-of-type {
color: white;
background-color: black;
}
Efekt można obejrzeć tutaj
See the Pen easy_centered_layout_example by Mikołaj Kostyrko (@mkostyrko) on CodePen.