Funkcja media
zapytania CSS3 stworzyła wiele interesujących możliwości w zakresie tworzenia stron internetowych, które dostosowują się do wielu różnych rozmiarów i urządzeń.
Jednak w praktyce zaczynam mieć wrażenie, że media
funkcja zapytania CSS3 i cały ruch „Responsive Web Design” mogą nie spełniać obietnic.
Problem, jaki widzę, polega na tym, że pod koniec dnia programiści internetowi dbają przede wszystkim o to, czy ich użytkownicy przeglądają zawartość za pomocą komputera, tabletu lub urządzenia mobilnego. Ale CSS3 zapewnia tylko sposób na wykrycie rozdzielczości ekranu . Teoretycznie wykrywanie rozdzielczości ekranu wydaje się świetnym sposobem na dostosowanie do różnych urządzeń. Ale w praktyce ...
Załóżmy, że mamy prostą funkcję Javascript, która po prostu wyświetla szerokość ekranu:
function foo()
{
alert(screen.width);
}
W moim Blackberry Touch to daje:
768
W moim Samsungu Galaxy to:
800
Więc ... hm, w tym momencie rozdzielczość popularnych smartfonów zbliża się do rozdzielczości na poziomie komputerów stacjonarnych. Możliwość wykrycia, czy użytkownik przegląda Twoją witrynę za pomocą smartfona, tabletu lub komputera stacjonarnego, wydaje się być coraz trudniejsza, jeśli chodzi tylko o rozdzielczość ekranu.
To sprawia, że podważam całą mądrość stojącą za całym ruchem CSS3 „Responsive Web Design” opartym na zapytaniach medialnych. Wygląda na to, że media
funkcja zapytania lepiej nadaje się do dostosowania do zmieniającego się okna przeglądarki na ekranie komputera, a nie do różnych urządzeń mobilnych.
Inną możliwą techniką wykrywania urządzeń mobilnych lub tabletów jest użycie funkcji wykrywania, sprawdzając, czy ontouchstart
zdarzenie jest obsługiwane. Ale nawet to staje się coraz bardziej zawodne, ponieważ wiele ekranów pulpitu zaczyna obsługiwać dotyk.
Pytanie: Więc ... jako twórca stron internetowych, jeśli nie mogę polegać na RWD lub wykrywaniu funkcji, czy sniffing klienta użytkownika (tak notorycznie niewiarygodny jak zawsze) jest naprawdę najlepszą opcją do wykrywania urządzeń mobilnych?
device-width
całkiem złe?