Проширување на елементи во CSS за JavaScript
Задавање на CSS својствата
width и
height
не гарантира дека елементот ќе добие
зададената големина. Ајде да погледнеме
на примери.
Пример
Сега димензиите на елементот се совпаѓаат со зададените:
<div id="elem">
text
</div>
#elem {
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
}
:
Пример
А сега ајде да му зададеме на елементот својство
padding.
Како резултат на тоа, реалната ширина на елементот ќе стане
поголема и ќе се прошири за зададената вредност
на внатрешниот отстап:
<div id="elem">
text
</div>
#elem {
padding: 25px;
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
}
:
Пример
Присуството на граница исто така го проширува елементот:
<div id="elem">
text
</div>
#elem {
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
border: 20px solid #F0D7A1;
}
:
Пример
Својството box-sizing
овозможува да се промени описното одгоре однесување.
Може да се направи така што ни внатрешниот отстап,
ни границата да не го прошируваат елементот.
За ова, на ова својство треба
да му се зададе вредност border-box:
<div id="elem">
text
</div>
#elem {
box-sizing: border-box;
padding: 20px;
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
border: 20px solid #F0D7A1;
}
:
Важност на описanoто
Од перспектива на JavaScript, описната ситуација
не е многу погодна. Бидејќи излегува дека, откако ќе ги прочитаме
вредностите на својството width, воопшто не можеме
да бидеме сигурни дека елементот ќе биде
токму таа ширина.