2010-11-16 9 views
5

Mam pytanie dotyczące CSS w Firefoksie.Firefox dodaje dodatkową szerokość z paddingem

Jeśli ustawię szerokość pływającego elementu div - powiedzmy 200px - ustawienie odstępu w lewo na 10 pikseli w Firefoksie doda dodatkowe 10 pikseli do szerokości. W IE tak nie jest.

Co możesz zrobić, aby Firefox nie dodawał dodatkowej szerokości do elementu div?

+4

Zawsze, ale zawsze zaprojektować układy w przeglądarce zgodnej ze standardami jak FF i Chrome. Następnie wróć i wymyśl miejsca, w których IE zawodzi. – Stephen

+1

To, co tam masz, to IE w trybie dziwactwa. FF prawidłowo prezentuje CSS za pomocą "modelu pudełkowego". Zapoznaj się z modelem pudełkowym tutaj: http://www.w3schools.com/css/css_boxmodel.asp Możesz chcieć zadać inne pytanie z kodem w nim, my pomożemy ci go wzmocnić. –

Odpowiedz

8

To nie jest firefox, to jest problem, to IE.

IE nie wykonuje norm, istnieje kilka sztuczek do tego, ale wszystkie one są wrzodem na dupie: http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug

Najprostszym sposobem jest zawarcie ważnej ścisłego tag doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

Następnie wystarczy przepisać kod CSS box modelu zgodnych ze standardami

More doctypes here

+0

Prawidłowe, ale nowe strony internetowe powinny zawsze używać ścisłego doctype. – Rob

+0

Tak właśnie powiedziałem! : D –

+0

Pokazujesz przejściowy doctype. – Rob

4

domyślnie wielkości pudełka jest ustawiony na content-box w mozilla i border-box w IE.

za pomocą:

-moz-box-sizing:border-box; 
-webkit-box-sizing:border-box; 
box-sizing:border-box; 

w Twój styl użytkownika można ustawić rozmiaru skrzynki Mozilla, Safari i Opera do border-box zbyt.

Więcej informacji można znaleźć: http://www.css3.info/preview/box-sizing/