Η ιδιότητα 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,
    που δημιουργεί ένα περίγραμμα που δεν διευρύνει το στοιχείο