2012-03-16 8 views
5

Czy ktoś wie, czy Firebug zaokrągla górną krawędź i lewo, gdy podają nam panel poniżej?Obliczenia Firebuga i Offsetu

Pytam dlatego, że mam problemy z korzystaniem z przesunięć, które mają miejsc po przecinku i zastanawiam się, czy Firebug rund lub podłogi te wartości.

Próbowałem rzucić okiem na kod źródłowy, ale nie potrafiłem określić, gdzie były wykonywane obliczenia przesunięcia.

Każda pomoc doceniona.

enter image description here

Odpowiedz

5

Według firebug source on SVN, wartości przesunięcia są analizowany jako liczby całkowite. Zobacz także this.

Nie jestem w 100% tym, co Firebug robi , ale gdy zajmuję się wartościami dziesiętnymi dla pikseli, zawsze mam wrażenie, że zaokrąglanie może przerwać układ.

To pytanie może pomóc także: Are the decimal places in a CSS width respected?

+0

oni są? 'parseInt' jest używane tylko w przypadku szerokości obramowania, które nie może być mniejsze niż piksel. Przesunięcia najwyraźniej pozostały same. –

+0

@TJ - bardzo dziękuję za pomoc i wgląd. Zdecydowaliśmy się na podłogę. W zasadzie pracowaliśmy nad tym, czy pewne elementy nakładają się na siebie. – Abs

+0

@Abs: Nie ma za co. –

2

Nie jestem pewien, o tym jednak. Ale myślę, że po ustawieniu stylu z kropką dziesiętną. Jest to przeglądarka, która określa, czy ten dziesiętny powinien być zaokrąglony lub ukośny. Ze względów praktycznych najlepszym wyborem jest zaokrąglenie dziesiętne. Jest to najlepszy wybór, ponieważ elementy pływające mają większe prawdopodobieństwo radykalnego zmiany układu. Na przykład, jeśli masz opakowanie z trzema prostokątami. Opakowanie ma długość 60 pikseli, a szerokość prostokąta ustawiono na 20,5px. Jeśli przeglądarka zaokrągli kropkę dziesiętną, ostatni prostokąt przeskoczy do następnego wiersza.

Oto JS fiddle gdzie można przetestować różne punkty dziesiętne dla różnych przeglądarek. A jeśli mam rację, przesunięcie w lewo i górze zawsze ma tę samą wartość, co natywne metody JS: offsetLeft i offsetTop. Przynajmniej w moich testach.

  • Firefox zaokrągla
  • Google Chrome & Safari podłogi
+0

Dobry przykład! Jednak moje testy pokazują przeciwny wynik. Używam Mac OS X i otrzymuję następujące wyniki: - Firefox 11: rundy, więc 20,4 ==> 20 i 20,5 => 21. - Safari 5.1.2 i Chrome 17: podłoga, chociaż 20,99 jest zaokrąglone do 21, natomiast 20.90 jest podłogi 20. nie zrozumieć [podłogi] (http://en.wikipedia.org/wiki/Floor_and_ceiling_functions) trzy elementy szerokości 20.5px nie pasuje obok siebie w 60 pikseli pojemnik. Szerokość podłogi miałaby 20 pikseli i pasowała idealnie. Zaokrąglanie do 21 pikseli wymagałoby trzech dodatkowych pikseli zmuszających ostatni element do zejścia. –

+0

Przepraszam, TJ, mój błąd. Jestem ze Szwecji, więc je pomieszałem. Zmienię moją odpowiedź. – einstein

+0

Czy mogę zapytać, dlaczego potrzebujesz tych informacji? – einstein

Powiązane problemy