Renderowanie subpikseli w przeglądarkach
Renderowanie subpikseli jest trudne. Nie można oczekiwać, że monitor wyświetli cienką linię o grubości mniejszej niż piksel. Ale możliwe jest podanie wymiarów subpikseli. W zależności od przeglądarki renderują je inaczej. Sprawdź post na ten temat w blogu Johna Resiga .
Zasadniczo, jeśli monitor jest wyświetlaczem LCD i rysujesz linie pionowe, możesz łatwo narysować linię 1/3 pikseli. Jeśli tło jest białe, podaj kolor linii #f0f
. Dla oka ta linia będzie miała 1/3 szerokości piksela. Chociaż będzie miał jakiś kolor, jeśli powiększysz monitor, zobaczysz, że tylko jeden segment całego piksela (składający się z RGB) będzie ciemny. Jest to technika stosowana do precyzyjnego podpowiedzi typu, tj . ClearType .
Ale linie poziome mogą mieć wysokość tylko pełnego piksela. To ograniczenie technologiczne monitorów LCD. Kineskopy były jeszcze bardziej skomplikowane z ich trójkątnymi luminoforami (chyba że były to kratki typu apertura, np. Sony Trinitron), ale to inna historia.
Zasadniczo podanie wymiaru subpikselowego i oczekiwanie, że będzie renderowany w ten sposób, jest tym samym, co oczekiwanie, że zmienna całkowita będzie przechowywać liczbę 1,2034759349. Jeśli zrozumiesz, że jest to niemożliwe, powinieneś zrozumieć, że monitory nie są w stanie renderować wymiarów subpikseli.
Bezpieczny styl dla różnych przeglądarek
Ale sposób, w jaki mieszają się poziome reguły, zwykle wykonuje się za pomocą kolorów. Więc jeśli twoje tło jest na przykład białe ( #fff
), zawsze możesz zrobić HR
bardzo jasne. Jak #eee
.
Bezpiecznym stylem dla wielu przeglądarek dla bardzo lekkiej reguły poziomej byłoby:
hr
{
background-color: #eee;
border: 0 none;
color: #eee;
height: 1px;
}
I użyj pliku CSS zamiast stylów wbudowanych. Zapewniają one centralną definicję całej witryny, a nie tylko konkretnego elementu. To znacznie ułatwia konserwację.