2014-05-24 13 views
7

Więc właśnie generowałem opacity for interactive fading.Jaka jest maksymalna precyzja krycia CSS3?

Uważam jednak, że niedopuszczalne jest używanie niezaokrąglonych wartości. Jeśli maksymalna precyzja jest mniejsza niż maksymalna javascript w precyzji, przeglądarki wydają się zaokrąglać wartość, ale uważają, że to się zmieniło.

Pytanie brzmi, jaka jest maksymalna precyzja, która ma sens dla CSS3 opacity?

+5

Mam przeczucie, że jest to zależne od wdrożenia. – BoltClock

+0

Nie mam żadnych konkretnych dowodów, ale aby zachować dobrą zabawę IE zawsze myślałem o nieprzezroczystości w ułamkach dziesiętnych między 0 a 1, pozwalając na 11 możliwości, to niewiele, ale gwarantują 'zmianę' –

+0

Po prostu próbowałem z [Math.random in Chrome] (http://jsfiddle.net/pXqdH/1/), a ustawienie i uzyskanie 16 miejsc po przecinku nie wydaje się być problemem, myślę, że pytanie jest bardziej praktyczne i co właściwie widzisz różnicę? – adeneo

Odpowiedz

5

Krycie pozwala uzyskać praktycznie dowolną liczbę miejsc dziesiętnych, ale problem polega na tym, że HTML może zmienić swoją lekkość tylko na 256 różnych sposobów. Tak więc najbardziej wrażliwe krycie byłoby w coś czarnego nad czymś białym, które miałoby widoczną różnorodność 256 różnych odcieni. Wynika to z tego, że stosunek między R, G i B musi być zawsze taki sam, aby zachować ten sam kolor.

Ponieważ najczulszy kolor ma 256 różnych wartości, najmniejszą zmianą, która wpłynęłaby na widoczny wynik byłaby 1/256 = 0.00390625. Teoretycznie powinien to być minimalny rozmiar kroku dla zwiększenia nieprzezroczystości.

Testowałem to i używając prostego próbnika kolorów zauważyłem, że w this example fiddle dolny div był jedynym, który miał jakąkolwiek zmianę koloru. Górne 2 elementy div miały kolor #000000, a dolny div miał kolor #010101. Tak, chciałbym powiedzieć, opiera się na tym, że:

  1. Wprowadzone wartości nie są zaokrąglone, lub jeśli są, są one zawsze zaokrąglana w dół (floor function)
  2. Maksymalna czułość krycie jest 3 miejsc po przecinku.

Należy zauważyć, że wszystko zostało przetestowane w Google Chrome i podobnie jak BoltClock, może to się różnić w zależności od implementacji.

Powiązane problemy