3 snadné způsoby, jak vycentrovat prvek pomocí CSS

Photo of author

By etechblogcz

Základní principy

  • Umisťování prvků do středu webového rozvržení bylo historicky obtížné, ale moderní CSS nabízí snadné a efektivní řešení.
  • Flexbox představuje široce používanou metodu pro centrování, poskytující flexibilní model rozvržení pro jednoduché zarovnávání.
  • CSS Grid a CSS positioning jsou další účinné techniky pro umisťování prvků do středu webové stránky, umožňující precizní kontrolu nad rozvržením a zarovnáním.

Vycentrování prvku v rozvržení webu bylo vždy výzvou, která trápila mnoho vývojářů. I když se to dříve nezdálo jednoduché, mnoho návrhů vyžadovalo právě umístění do středu. Naštěstí, současné CSS nabízí solidní podporu pro centrování.

Podívejme se, jak vycentrovat prvek div vodorovně i svisle za pomocí Flexboxu, CSS Grid a pozicování CSS.

Základní HTML pro procvičování centrování

Následující příklady využívají minimalistický HTML dokument, aby demonstrovaly centrování pomocí CSS. Můžete použít tento základ a měnit CSS v jednotlivých sekcích, abyste viděli, jak se jednotlivé vlastnosti chovají.

 <!DOCTYPE html>
<html>
<head>
  <style>
  div { width: 100px; height: 100px; }
  body { height: calc(100vh - 16px); }
  </style>
</head>
<body>
  <div></div>
</body>
</html> 

Vystředění prvku Div pomocí Flexboxu

Před použitím Flexboxu k vystředění prvku div, je důležité pochopit jeho základy. Flexbox je založený na jednoduchém přístupu, což z něj činí jednu z nejpoužívanějších metod. Poskytuje flexibilní model rozvržení, který zjednodušuje zarovnávání a distribuci prostoru mezi položkami v kontejneru, což ho dělá ideálním pro centrování prvků.

Pro vystředění s použitím Flexboxu aplikujte následující CSS:

  • Zabalte prvek div do kontejneru. Pro aktivaci flexboxového rozvržení použijte vlastnost `display: flex` na kontejner. V jednoduchém testovacím případě, tělo (`body`) může sloužit jako kontejner:
     body {
      display: flex;
    } 
  • Použijte vlastnosti `justify-content` a `align-items` k zarovnání položek podél hlavní osy (horizontální) a příčné osy (vertikální). Pro vycentrování na obou osách, nastavte tyto vlastnosti na `center`. Pro jednoduchý náhled, nastavte výšku těla na `100vh`, abyste viděli efekt vertikálního zarovnání.
     body {
      justify-content: center;
      align-items: center;
    } 
  • Přidejte prvku div barvu pozadí, aby bylo možné vizualizovat jeho pozici na stránce:
     div { background-color: red; } 
  • Zobrazením výsledku v nástrojích DevTools prohlížeče Google Chrome můžete vidět, jak tyto dvě vlastnosti kontrolují zarovnání podél obou os:

    Vystředění prvku Div pomocí CSS Grid

    Použití CSS Grid je další efektivní metoda pro centrování prvků, poskytující precizní kontrolu nad rozvržením a zarovnáním.

  • Definujte kontejner pro vaše rozvržení a aplikujte styl mřížky `display: grid` pro aktivaci CSS Grid. V tomto případě, tělo (`body`) opět slouží jako kontejner.
     body {
      display: grid;
    } 
  • Použijte vlastnosti `grid-template-columns` a `grid-template-rows` pro definování struktury mřížky. Pro centrování stačí jeden sloupec a řádek, proto použijte `1fr` pro obě vlastnosti.
     body {
      grid-template-columns: 1fr;
      grid-template-rows: 1fr;
    } 
  • Použijte vlastnost `place-items` pro vycentrování obsahu mřížky vodorovně i svisle.
     body {
      place-items: center;
    } 
  • Upravte styl pozadí prvku div, aby se zobrazil ve středu mřížkového kontejneru.
     div {
      background-color: blue;
    } 
  • V tomto případě jedna jediná vlastnost řídí centrální umístění prvku div na vaší stránce:

    Vystředění prvku Div pomocí CSS Positioning

    Pro použití vlastnosti CSS `position` k vystředění prvku div, je potřeba porozumět, jak fungují transformace CSS s přechody. Zde je krok za krokem návod s příkladem.

  • Pro umístění prvku div, se ujistěte, že jeho kontejner má relativní pozici (`position: relative`). Tím se vytvoří kontext relativního umístění, aby bylo možné umístit prvek div do středu kontejneru.
     body {
      position: relative;
    } 
  • Aplikujte absolutní umístění na prvek div (`position: absolute`) a následně pomocí vlastností `top` a `left` umístěte levý horní roh prvku div přesně do středu kontejneru.
     div {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background-color: green;
    } 

    Transformace `translate(-50%, -50%)` posune div doleva a nahoru o polovinu jeho šířky a polovinu jeho výšky.

  • Tato technika funguje tak, že nejprve vycentruje horní roh prvku a poté ho posune o polovinu jeho rozměrů.

    Flexbox, CSS Grid a CSS positioning jsou silné nástroje, které umožňují vystředit prvky na webové stránce. S Flexboxem dosáhnete vycentrování horizontálně i vertikálně pomocí několika řádků kódu. CSS Grid poskytuje mocné zarovnání ve dvou rozměrech a pomocí pozicování CSS můžete prvek vycentrovat vzhledem k jeho nadřazenému kontejneru.

    S využitím těchto technik můžete zajistit, aby vaše webové stránky vypadaly profesionálně a čistě.