niedziela, 12 marca 2017

Najpopularniejsze problemy z HTML i CSS vol 2 - border-box vs content-box

Jedno z najcz臋stszych pyta艅 na rozmowie kwalifikacyjnej - czym si臋 r贸偶ni box-sizing: border-box od content-box.

Naj艂atwiej b臋dzie pokaza膰 to na przyk艂adzie:

See the Pen box sizing by Kamil (@KamilNaja) on CodePen.


Div content-box ma nadany box-sizing: content-box i jest wyra藕nie wi臋kszy od swojego kolegi, kt贸ry ma nadany box-sizing: border-box.
Pierwotnie, jedynym dost臋pnym ustawieniem by艂 box-sizing: content-box, w kt贸rym na wysoko艣膰 elementu wp艂ywa艂a:

  • Jego wysoko艣膰 w height +
  • Jego border +
  • Jego padding g贸rny i dolny
Podobnie, na szeroko艣膰 elementu wp艂ywa jego szeroko艣膰 + padding lewy i prawy + border.
Takie ustawienie jest te偶 domy艣lne, je艣li nie u偶ywasz reset.css czy normalize.css i cz臋sto prowadzi to do problem贸w z ustawieniem odpowiedniej wysoko艣ci i szeroko艣ci element贸w. Rozwi膮zaniem tego problemu jest box-sizing: border-box, w kt贸rym na ustawion膮 szeroko艣膰 i wysoko艣膰, nie maj膮 wp艂ywu ustawienia border lub padding.

Wyobra藕 sobie, 偶e na przyk艂ad tworzysz design strony z dwoma kolumnami o szeroko艣ci 50% obok siebie. Je艣li nadasz im jaki艣 border lub padding, uk艂ad si臋 zepsuje. Rozwi膮zaniem problemu jest nadanie elementom odpowiedniego box-sizing, czyli border-box.

Jak to wygl膮da w praktyce?

W praktyce, w wi臋kszo艣ci przypadk贸w, nadpisanie box-sizing: content-box jest jedn膮 z pierwszych czynno艣ci, kt贸r膮 robimy przy tworzeniu strony. Mo偶na to zrobi膰 za pomoc膮 arkusza Normalize.css lub zadeklarowa膰 to w arkuszu CSS. Odpowiedni kod znajdziesz na stronie css-tricks. Je艣li tworzysz stron臋 na Bootstrapie, masz ju偶 ustawiony box-sizing na border-box.

殴r贸d艂a:
https://css-tricks.com/box-sizing/
http://webroad.pl/html5-css3/525-box-sizing-powrot-do-przeszlosci

Brak komentarzy:

Prze艣lij komentarz