Anasayfa » Kodlama » CSS3 Kutu-Boyutlandırmasına Bir Bakış

    CSS3 Kutu-Boyutlandırmasına Bir Bakış

    Bu makale bizim bölümümüzün bir parçası. "HTML5 / CSS3 Dersleri serisi" - sizi daha iyi bir tasarımcı ve / veya geliştirici yapmanıza yardımcı olmak için. Buraya TIKLAYIN Aynı serideki daha fazla makale görmek için.

    Çok uzun zaman önce değil, Kutu Bir web sayfasında diyelim ki div, belirledik 100px hem genişlik hem de yükseklik için dolgu malzemesi için 10px ve yaklaşık sınırları 10px yanı sıra.

     div genişlik: 100 piksel; yükseklik: 100px; dolgu maddesi: 10px; sınır: 10px katı #eaeaea;  

    Tarayıcılar, kutunun boyutunu 140 piksele genişletecek, buradaki toplam genişlik / yükseklik değerinin 140 pikseli, dolgu malzemesi ve sınırlar aşağıdaki gibi; 100 piksel [genişlik / yükseklik] + (2 x 10 piksel [dolgu]) + (2 x 10 piksel [kenar]).

    Ancak, bazen bu sonuç beklediğimiz gibi değil. Bazen, her zaman olması için kutuya ihtiyacımız var. 100px doldurmadan veya eklenen kenarlardan bağımsız olarak.

    Web sayfası düzenini oluştururken böyle bir tekrarlayan problemin üstesinden gelmek için, CSS3'ü kullanabiliriz. kutu boyutlandırma nasıl kontrol edileceği özelliği CSS kutu modeli tarayıcılarda çalışmalı.

    Kutu boyutlandırmayı kullanma

    kutu boyutlandırma özellik iki değer seçeneğine sahiptir, önce İçerik-box; varsayılan değer olan bu değer kullanıldığında, kutu modeli yukarıda açıkladığımız gibi davranacaktır..

    Ve ikincisi border-box, kutunun büyüklüğü hesaplanacak belirtilen içeriğin boyutunu çıkartarak dolgu ve kenarlıklar eklenmiş olarak.

     div genişlik: 100 piksel; yükseklik: 100px; dolgu maddesi: 10px; sınır: 10px katı #eaeaea; kutu boyutlandırma: kenarlık kutusu; -moz-kutu-boyutlandırma: border-box; / * Firefox 1-3 * / -webkit-box-boyutlandırma: border-box; / * Safari * / 

    Örneğin, yukarıda açıkladığımız gibi bir kutuya sahip olduğumuzda (dolgu ve kenarlar için 10 piksel olan 100 piksel kare), içeriğin boyutu düşecektir 60px, ve kutunun toplam boyutu 100px, çıkarma işleminin denklemi aşağıdaki gibi tanımlanabilir; 100 piksel [genişlik / yükseklik] - ((2 x 10 piksel [dolgu]) + (2 x 10 piksel [kenarlık])).

    • gösteri
    • Kaynak İndir

    Tarayıcı Desteği

    kutu boyutlandırma özellik tüm tarayıcılarda desteklenir; Firefox 3.6+, Safari 3, Opera 8.5+ ve Internet Explorer 8 ve üstü.

    Bu nedenle, ziyaretçilerinizin çoğunun 8'in altındaki Internet Explorer sürümlerini kullanmayacağını biliyorsanız, bu faydalı öneriyi kullanabilirsiniz (Paul Irish sayesinde).

     * kutu boyutlandırma: kenarlık kutusu; -moz-kutu-boyutlandırma: border-box; / * Firefox 1-3 * / -webkit-box-boyutlandırma: border-box; / * Safari * / 

    Yukarıdaki snippet uygulaması geçerli olacaktır. kutu boyutlandırma web sayfanızdaki tüm öğelerin mülkü.

    Örnek

    Bu bölümde, bunu nasıl kullanabileceğimize dair gerçek hayattan bir örnek göstereceğiz. kutu boyutlandırma özelliği. Aşağıdaki HTML işaretlemesine dayalı olarak, içinde beş bağlantı menüsü bulunan basit bir gezinme oluşturacağız..

      

    Sonra bazı dekoratif stiller ekleyeceğiz; gibi, navigasyonu ayarlamak için sabit genişliği 500px ve her biri 100 piksel için bağlantının genişliği, daha sonra liste öğesini satır içi yapın ve her bir bağlantı menüsü için farklı arka planlar verin, böylece aralarındaki farkı görebilirsiniz.

     nav genişlik: 500 piksel; marj: 50 piksel otomatik 0; yükseklik: 50px;  nav ul doldurma: 0; marj: 0;  nav li float: left;  nav a görüntüleme: satır içi blok; genişlik: 100px; yükseklik:% 100; arkaplan rengi: #ccc; renk: # 555; metin dekorasyon: yok; font-family: Arial, sans-serif; yazı tipi boyutu: 12pt; çizgi yüksekliği:% 300; metin hizalama: orta;  nav a görüntüleme: satır içi blok; genişlik: 100px; yükseklik:% 100; renk: # 555; metin dekorasyon: yok; font-family: Arial, sans-serif;  nav li: nth-child (1) a background-color: # E9E9E9; sınır-sol: 0;  nav li: nth-çocuğu (2) bir background-color: # E4E4E4;  nav li: nth-child (3) bir background-color: #DFDFDF;  nav li: nth çocuk (4) bir background-color: # D9D9D9;  nav li: nth çocuk (5) bir background-color: # D4D4D4; sınır-sağ: 0;  

    Bu noktada, navigasyonumuz normal görünüyor.

    Ancak, bağlantı menüsüne sol veya sağ kenarlık eklediğimizde sorun ortaya çıkacak.

     nav a kenarlık-sol: 1px katı #aaa; sınır-sağ: 1 piksel katı # f3f3f3;  

    Bağın genişliği artık olmadığından menü aşağıya taşar 100px. Şimdi 102px, navigasyonun toplam genişliğinin 10px daha sonra yukarıda belirledik500px).

    Bu sorunun üstesinden gelmek için, kutu boyutlandırma özellik, şöyle:

     nav a kenarlık-sol: 1px katı #aaa; sınır-sağ: 1 piksel katı # f3f3f3; kutu boyutlandırma: kenarlık kutusu; -moz-kutu-boyutlandırma: border-box; -webkit-box-sizeing: sınır kutusu;  
    • gösteri
    • Kaynak İndir

    Daha fazla okuma

    Ve nihayet, maceracı bir türseniz ve bu konuda daha derine inmek istiyorsanız, sizin için birkaç seçilmiş referans hazırladık:

    • CSS Kutu Modelini Anlamak - Teknoloji Cumhuriyeti
    • Firefox'ta Kutu-boyutlandırma hata - BugZilla
    • Kutu boyutlandırma FTW - Paul Irish