Advertisement
  1. Web Design
  2. HTML/CSS
  3. CSS

Sfântul Graal al Centrării în CSS

Scroll to top
Read Time: 2 min

() translation by (you can also view the original English article)

Chris Coyier a publicat recent pe siteul său, CSS Tricks, un arbore decizional pentru a demonstra multitudinea de posibilităţi de a centra elementele orizonal sau vertical utilizând CSS. Ca soluţii independente toate au anumite limitări, dar combinate reprezintă o soluţie versatilă ce funcţionează excelent în IE8 şi browsere mai noi.

Iată cum trebuie procedat.

Blocurile de început

Dacă construieşti un site responsive, mai mult ca sigur dimensiunile blocurilor vor fi stabilite în procente, aşa că prima dată creăm un element .container oarecare:

1
<div class="container">
2
  ...
3
</div>
1
.container {
2
  width: 70%;
3
  height: 70%;
4
  margin: 40px auto;
5
  background: red;
6
}

Pentru a fi siguri că elementul nostru se extinde corespunzător, setăm html, body { width: 100%; height: 100%; }.

Puterea tabelelului

Alinierea centrală pe verticală în interiorul acestui .container se obţine după modelul tabelului. Această metodă ia elementele normale de tip block şi le face să se comporte ca celulele unui tabel, oferindu-ne astfel posibilitatea centrării verticale.

1
<div class="container">
2
  <div class="outer">
3
    <div class="inner">
4
      ...
5
    </div>
6
  </div>
7
</div>
1
.outer {
2
  display: table;
3
  width: 100%;
4
  height: 100%;
5
}
6
.inner {
7
  display: table-cell;
8
  vertical-align: middle;
9
  text-align: center;
10
}

La final vom centra elementul pe orizontală:

1
<div class="container">
2
  <div class="outer">
3
    <div class="inner">
4
      <div class="centered">
5
        ...
6
      </div>
7
    </div>
8
  </div>
9
</div>
1
.centered {
2
  position: relative;
3
  display: inline-block;
4
5
  width: 50%;
6
  padding: 1em;
7
  background: orange;
8
  color: white;
9
}

În interior poţi introduce orice doreşti, inclusiv blocuri de text cu înălţime variabilă sau elemente poziţionate absolut.

Modificări

Pentru a schimba centrarea pe orizontală a elementului trebuie modificată proprietatea text-align a elementului .inner, iar pentru a schimba centrarea pe verticală se modifică proprietatea vertical-align a aceluiaşi element .inner.

Concluzie

Acest exemplu poate părea că foloseşte multe elemente, dar piesele de bază sunt cele trei div-uri: .outer, .inner, şi .centered. Stilizarea acestor elemente este consistentă, astfel că poţi folosi acest exemplu în fişierele CSS de bază în orice proiect.

Există un element mai mare şi mai puternic decât orice tehnică de centrare a conţinutului şi care dă rezultate perfecte. Speranţa este ca acest element să devină standard, pentru a pune capăt oricăror nedumeriri şi plângeri legate de centrarea elementelor în CSS.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.