Pamilyar tayo sa common values ng display
property. Nandiyan ang
inline
, block
, at inline-block
. Recently, nakita
rin natin na nadagdag sa mga ito ang flex
at grid
. Pero
karamihan sa atin, hindi alam na may 28 values[1]
pala na puwedeng ilagay sa display
property!
Pero alam n’yo ba na may bagong syntax ang display
property? Sa
CSS Display Module Level 3, binanggit
ang bagong syntax na ito ng display
. Tingnan natin ang details nito.
Ang basics ng display
property
Pag-usapan muna natin ang inline
at block
elements. Kapag
sinabi nating inline, ibig sabihin, nakadepende ito sa writing mode ng isang
language. Sa Filipino, ang writing mode natin ay left-to-right dahil nagsusulat tayo
mula kaliwa pakanan. Ang block naman ay ang direction na pupuntahan ng text kapag napuno
na ang inline. Sa Filipino, kapag napuno na ang isang line, magra-wrap ang susunod na
mga salita sa susunod na line, kaya ang block direction natin ay top-to-bottom.
Ganito ang nangyayari sa mga elements natin na may inline
at
block
display. Kapag inline
ang isang element, ile-layout ito
ng browser from left to right. Kapag block
naman ito, ile-layout ito from
top to bottom.
See the Pen Inline and Block by Francis Rubio (@maniczirconium) on CodePen.
Inner at outer values ng display
Kapag ginawa nating inline o block ang display ng isang element, alam natin kung ano ang
nangyayari sa element. Pero ano ang mangyayari kapag ginawa natin itong
display: grid
? Halimbawa, gumamit tayo ng
<span>
element, na by default ay inline, at gawin natin itong isang
grid.
See the Pen Inline to Grid by Francis Rubio (@maniczirconium) on CodePen.
Naging block ang span sa halip na inline no’ng ginawa natin itong grid. Sinakop nito ang
space ng isang buong line. Pero hindi naman natin iyon ini-specify, paano nangyari iyon?
Sa CSS Display Module Level 3,
binanggit na dalawa ang value ng display
property, ang outer at inner
value:
display: <outer> <inner>;
Dine-define ng outer display ang magiging behavior ng element in connection to its
parent element. Dine-define naman ng inner display ang magiging layout ng direct
children nito. Ibig sabihin nito, kapag nilagay natin ang display: grid
,
ang nakikita talaga ng browser ay display: block grid
, meaning block
element ito in relation to its parent element, pero ile-layout nito ang children nito sa
isang grid. Magiging block container ang element na may display: grid
.
Ganito rin ang mangyayari sa isang element na may display: flex
; para sa
browser, ito ay magiging display: block flex
.
Malaking tulong ito dahil ine-explain nito agad ang gusto nating mangyari sa layout
natin. Kapag nilagay natin ang display: inline grid
, ang aasahan natin ay
magiging inline ito para sa parent element nito, pero magiging grid ang elements sa loob
nito.
Further reading
-
Digging Into The Display Property: The Two Values Of Display
Rachel Andrew, Smashing Magazine -
display
MDN Web Docs -
CSS Display Module Level 3
W3C Candidate Recommendation Spec