Sobes.tech
Junior

Koje je osnovno značenje svojstva display u CSS i kako ono funkcioniše?

sobes.tech АИ

Одговор од АИ

Svojstvo display određuje kako će se element prikazivati u dokumentu i kako će komunicirati sa drugim elementima, učestvujući u toku prikaza (layout flow). Ono određuje tip blok formata elementa.

Osnovne vrednosti:

  • block: Element se formatira kao blok. Zauzima celu dostupnu širinu, počinje u novom redu, može imati postavljene dimenzije (width, height).
  • inline: Element se formatira kao linijski. Ne počinje u novom redu, zauzima samo potrebnu širinu, ne može imati postavljene dimenzije (width, height), vertikalne razmake (margin-top, margin-bottom) i unutrašnje razmake (padding-top, padding-bottom) ne utiču na okolne elemente.
  • inline-block: Element se formatira kao linijski, ali se ponaša kao blok unutar reda. Ne počinje u novom redu, može imati postavljene dimenzije (width, height), kao i vertikalne razmake i unutrašnje razmake koji utiču na okolne elemente.
  • none: Element i njegov sadržaj se ne prikazuju. Element se potpuno uklanja iz toka dokumenta, ne zauzima mesto.
  • flex: Element postaje Flex kontejner, a njegovi direktni potomci Flex elementi. Koristi se za kreiranje fleksibilnih rasporeda.
  • grid: Element postaje Grid kontejner. Koristi se za kreiranje rasporeda zasnovanih na mreži.

Kako funkcioniše:

Pretraživač koristi vrednost display za određivanje tipa formatirajućeg konteksta u kojem se nalazi element. To utiče na:

  • Tok dokumenta: Kako se element pozicionira u odnosu na susedne elemente.
  • Dimenzije elementa: Mogućnost postavljanja širine i visine, uticaj sadržaja na dimenzije.
  • Uticaj na okolne elemente: Kako margine i dimenzije elementa utiču na raspored drugih elemenata.

Primer:

/* Element sa display: block */
div {
  display: block;
  width: 100%; /* Zauzima celu širinu */
  margin-bottom: 10px; /* Kreira vertikalni razmak */
}

/* Element sa display: inline */
span {
  display: inline;
  /* width i height se ignorišu */
  /* margin-top i margin-bottom se ignorišu */
}

/* Element sa display: inline-block */
img {
  display: inline-block;
  width: 100px; /* Može se postaviti širina */
  height: 100px; /* Može se postaviti visina */
  margin: 5px; /* Kreira razmake sa svih strana */
}

/* Element sakriven */
.hidden {
  display: none;
}