Ultimele tutoriale de dezvoltare web
 

CSS3 Box Sizing


CSS3 Caseta Dimensionarea

CSS3 box-sizing proprietate ne permite să includă padding și granița cu lățimea totală a elementului și înălțime.


Suport pentru browser-

Numerele din tabel specifica prima versiune de browser care acceptă pe deplin proprietatea.

Numerele urmat de -webkit- sau -moz- specifica prima versiune care a lucrat cu un prefix.

Proprietate
box-sizing 10.0
4.0 -webkit-
8.0 29.0
2.0 -moz-
5.1
3.1 -webkit-
9.5

Fără CSS3 box-sizing de proprietate

În mod implicit, lățimea și înălțimea unui element se calculează astfel:

latime + padding + border = lățimea efectivă a unui element
înălțime + padding + border = înălțimea efectivă a unui element

Acest lucru înseamnă: Când setați lățimea / înălțimea unui element, elementul de multe ori apar mai mari decât ați stabilit (because the element's border and padding are added to the element's specified width/height) pentru (because the element's border and padding are added to the element's specified width/height) de (because the element's border and padding are added to the element's specified width/height) .

Următoarea ilustrație arată două <div> elemente cu aceeași lățime și înălțime specificată:

Acest div este mai mic (width is 300px and height is 100px) de (width is 300px and height is 100px) .

Acest div este mai mare (width is also 300px and height is 100px) de (width is also 300px and height is 100px) de (width is also 300px and height is 100px) .

Cele două <div> elementele de mai sus capăt cu diferite dimensiuni ale rezultatului (deoarece Div2 a specificat o umplutură):

Exemplu

.div1 {
    width: 300px;
    height: 100px;
    border: 1px solid blue;
}

.div2 {
    width: 300px;
    height: 100px;
    padding: 50px;
    border: 1px solid red;
}
Încearcă - l singur »

Deci, pentru o lungă perioadă de timp dezvoltatorii web au specificat o valoare lățime mai mică decât au vrut, pentru că a trebuit să se scadă din padding și chenarele.

Cu CSS3, box-sizing de proprietate rezolvă această problemă.


Cu CSS3 box-sizing de proprietate

CSS3 box-sizing proprietate ne permite să includă padding și granița cu lățimea totală a elementului și înălțime.

Dacă setați box-sizing: border-box; de box-sizing: border-box; de box-sizing: border-box; pe un element de umplutură și de frontieră sunt incluse în lățimea și înălțimea:

Ambele divs sunt de aceeași dimensiune acum!

Ura!

Iată același exemplu ca mai sus, cu box-sizing: border-box; adăugat la ambele <div> elemente:

Exemplu

.div1 {
    width: 300px;
    height: 100px;
    border: 1px solid blue;
    box-sizing: border-box;
}

.div2 {
    width: 300px;
    height: 100px;
    padding: 50px;
    border: 1px solid red;
    box-sizing: border-box;
}
Încearcă - l singur »

Având în vedere că rezultatul folosind box-sizing: border-box; este atât de mult mai bine, mulți dezvoltatori doresc toate elementele de pe paginile lor de a lucra în acest fel.

Codul de mai jos se asigură că toate elementele sunt dimensionate în acest mod mai intuitiv. Multe browsere folosesc deja box-sizing: border-box; de box-sizing: border-box; pentru mai multe elemente de formular (dar nu toate - care este motivul pentru intrări și zone de text arată diferit, la lățime: 100%;).

Aplicarea acestui tuturor elementelor este sigur și înțelept:

Exemplu

* {
    box-sizing: border-box;
}
Încearcă - l singur »