Wyszukaj / o blogu

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.