თვისება box-sizing

თვისება box-sizing საშუალებას აძლევს ელემენტის ზომების გამოთვლის მეთოდის შეცვლას.

სტანდარტულად, padding-ის დამატება აფართოებს ელემენტს: თუ ჩვენ დავაყენეთ სიგანე width 100px და padding-left 20px-ზე, მაშინ ელემენტის რეალური სიგანე იქნება 120px.

ხოლო თუ ჩვენ დავაყენებთ border-left-ს 10px-ზე, მაშინ ელემენტის რეალური სიგანე გახდება 130px. ანუ padding და border აფართოებენ ბლოკს (როგორც სიგანეში, ასევე სიმაღლეში). ეს ქმედება შეიძლება შეიცვალოს box-sizing-ის საშუალებით.

სინტაქსი

cssსელექტორი {
  box-sizing: content-box | border-box;
}

მნიშვნელობები

მნიშვნელობა აღწერა
content-box როგორც padding, ასევე border აფართოებენ ბლოკს.
border-box არც padding და არც border აფართოებენ ბლოკს.

სტანდარტული მნიშვნელობა: content-box.

მაგალითი . სტანდარტული ქმედება

ახლა ორივე ბლოკს აქვს ერთნაირი სიმაღლე და სიგანე, თუმცა მეორე ბლოკს padding აქვს დაყენებული, ხოლო პირველს - არა. ნახეთ, როგორ განსხვავდება მათი ზომები:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  margin-bottom: 10px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

მაგალითი . სტანდარტული ქმედება

ახლა ორივე ბლოკს აქვს ერთნაირი სიმაღლე და სიგანე, თუმცა მეორე ბლოკს აქვს დაყენებული საზღვარი 10px-ზე, ხოლო პირველს - არა. ნახეთ, როგორ განსხვავდება მათი ზომები:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

მაგალითი . სტანდარტული ქმედება

ახლა მეორე ბლოკს აქვს როგორც padding, ასევე საზღვარი 10px-ზე:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  border: 20px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

მაგალითი . მნიშვნელობა border-box

მეორე ელემენტს დავუმატოთ მნიშვნელობა border-box თვისებისთვის box-sizing. ახლა ზომები როგორც პირველი, ასევე მეორე ელემენტის გახდება ერთნაირი:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  box-sizing: border-box;
  padding: 50px;
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

იხილეთ აგრეთვე

  • თვისება outline,
    რომელიც ქმნის საზღვარს, რომელიც არ აფართოებს ელემენტს