Wednesday, November 2, 2011

CSS Box-Model, Efek Buruk Padding dan Border terhadap Width dan Height

Penyimpangan Nilai

Perlu Anda ketahui bahwa lebar dan tinggi elemen akan mengalami penyimpangan saat Anda menerapkan padding dan border pada elemen:

width:200px;
height:100px;
(tanpa padding/border)


width:200px;
height:100px;
padding:10px;
border:2px solid #000;

Untuk menyamakan lebar elemen dengan elemen induk, maka Anda harus mengurangi lebar/tinggi elemen sesuai dengan penambahan ketebalan border dan padding:

CSS Box-Model
CSS Box-Model


akurasi lebar elemen = width - (border-left-width + padding-left + padding-right + border-right-width)
akurasi tinggi elemen = height - (border-top-width + padding-top + padding-bottom + border-bottom-width)

Sehingga hasilnya menjadi seperti ini:

width:176px;
height:86px;
padding:10px;
border:2px solid #000;


Yang Berbeda dengan Internet Explorer

Internet Explorer memiliki interpretasi yang berbeda terhadap kalkulasi CSS Box-Model. Sebagian besar versi IE akan menerjemahkan gabungan lebar, tinggi dan border sebagai lebar itu sendiri. Berbeda dengan standar W3C yang seharusnya (yang juga telah diikuti oleh browser-browser non-IE seperti Chrome, Opera dan Firefox):

CSS Box-Model Internet Explorer dan Non-Internet Explorer


Ada banyak cara untuk mengatasi itu, misalnya dengan menggunakan conditional comment, atau yang sedikit jahat: IE Hack.


Referensi:

Labels: , ,

10 Comments:

At Wednesday, November 2, 2011 at 4:03:00 PM GMT+7, Blogger Aeferes / Al Firous said...

pertamaX nih , jadi Padding / margin harus di sesuaikan dengan width/height agar tidak saling menabrak ya.

 
At Thursday, November 3, 2011 at 8:18:00 AM GMT+7, Blogger Taufik Nurrohman said...

@Mbah Qopet: Njeh.. njeh..

 
At Thursday, November 3, 2011 at 2:53:00 PM GMT+7, Anonymous Anonymous said...

Mas, saya nggak ngerti kenapa IE yang selalu buruk dalam menerjemahkan CSS kok selalu diikutsertakan dalam pengembangan website. Toh yang pakai IE juga sedikit. Terus menurut pendapat pribadi, IE itu browser bodoh yang nakal (tidak ikut standar W3C)

Leo Ari Wibowo
http://majuter.us

 
At Thursday, November 3, 2011 at 3:26:00 PM GMT+7, Blogger Taufik Nurrohman said...

@leoaw: Saya juga kurang tahu. Tapi mungkin karena IE adalah browser yang terintegrasi dengan softwarenya, jadi agak susah untuk mengikuti standar. Bisa dilihat bahwa properti-properti pada Internet Explorer lebih tampak sebagai semacam script internal dibandingkan sebagai CSS.

 
At Friday, November 4, 2011 at 8:57:00 PM GMT+7, Blogger Robin PayTren said...

saya mah gak ngerti css, jadinya nyimak2 aja yak...

 
At Wednesday, November 30, 2011 at 5:50:00 PM GMT+7, Blogger Dode Van Persie said...

memang gan menurut saya padding itu memang muruk :)

 
At Sunday, April 8, 2012 at 1:58:00 PM GMT+7, Blogger Putra said...

masih belom ketemu css margin yg dari template responsivenya mas :'( udah sebagian tak hapus pula :(

 
At Sunday, April 8, 2012 at 3:33:00 PM GMT+7, Blogger Taufik Nurrohman said...

@Alam Perwira Hmmmmhhhh =p*

 
At Sunday, April 8, 2012 at 3:50:00 PM GMT+7, Blogger Putra said...

@Taufik Nurrohmanpengennya dibuat tanpa sidebar (fullscren postingan) hehe, tpi susaaah :(

 
At Sunday, April 8, 2012 at 6:19:00 PM GMT+7, Blogger Taufik Nurrohman said...

@Alam Perwira Hmmmmhhhh =p* *=p
<=) <=) <=)
Sebenarnya elemen blok tidak perlu diberi deklarasi width karena pada dasarnya mereka akan melebarkan dirinya sendiri. Jadi buang saja deklarasi width dari CSS jika hanya ingin menciptakan halaman satu layar penuh. Biasanya ada di #outer-wrapper.

 

Post a Comment

<< Home