Jak stworzyć witrynę przyjazną dla urządzeń mobilnych: Responsywny Design w CSS

Przy tak wielu ludziach na świecie korzystających ze smartfonów do surfowania po Internecie, coraz więcej webmasterów szuka sposobów, w jaki sposób mogą dostosować swoje witryny do urządzeń mobilnych. Zazwyczaj oznacza to modyfikację ich witryn pod kątem mniejszego rozmiaru ekranu znajdującego się na takich urządzeniach, albo przez zapewnienie osobnej strony, którą można wygodnie przeglądać na tych urządzeniach, albo, bardziej powszechnie, automatyczne dostosowywanie ich witryn przez zmniejszanie elementów i przenoszenie różnych elementów. Ta ostatnia metoda, często określana jako „responsive web design”, została opisana w tej serii samouczków.
Wymagania wstępne

Ponieważ w tym samouczku omówiono zmiany, które należy wprowadzić w kodzie niskiego poziomu witryny, trzeba znać język HTML i CSS. Nie musisz być ekspertem ani nic takiego, ale potrzebna jest pewna wiedza, w przeciwnym razie ten samouczek będzie dla ciebie niezrozumiały.

Nawiasem mówiąc, jeśli jesteś tutaj, ponieważ myślałeś, że ten artykuł dotyczy projektowania witryny od zera, przeczytaj Zamiast tego, jak utworzyć stronę internetową.
Elastyczne projektowanie stron internetowych

W responsywnym projekcie przedstawimy tę samą stronę internetową, którą widzą użytkownicy komputerów stacjonarnych lub laptopów odbiorcom mobilnym. Tylko kaskadowe arkusze stylów lub CSS będą inne. Oznacza to, że przeglądarki na komputerach stacjonarnych / laptopach wyrenderują stronę przy użyciu jednego zestawu instrukcji CSS, a inne na telefonach komórkowych.

Ta metoda pracy nie tylko oszczędza pracy związanej z tworzeniem innego zestawu stron dla każdego typu użytkownika, ale także kłopotów z utrzymaniem tych 2 zestawów przez lata, starając się je zsynchronizować.
Przezwyciężanie domyślnych ustawień urządzenia mobilnego: rzutnia

Na potrzeby tego artykułu, aby uniknąć konieczności kwalifikowania wszystkiego, co mówię, sprawiając, że sprawy stają się jeszcze bardziej kłopotliwe, niż trzeba, użyję następującego skrótu. Kiedy mówię tutaj „komputer stacjonarny” lub „komputer”, mam na myśli komputer stacjonarny lub laptop, a nie smartfon lub tablet (chociaż te dwa ostatnie tak naprawdę są również komputerami). A kiedy mówię „urządzenie mobilne”, mam na myśli smartfon, tablet z małym ekranem itp., A nie laptop (choć ten ostatni jest również przenośny). Bez tego skrótu artykuł będzie jeszcze trudniejszy do odczytania niż jest w rzeczywistości, a wiele zdań wyjaśni, co mam na myśli, kiedy wypowiadam te terminy. Mam też tendencję do używania „smartfona” synonimicznie z „urządzeniem mobilnym”, aby artykuł nie brzmiał zbyt monotonnie.

Przeglądarki współczesnych smartfonów są napisane ze świadomością, że strony internetowe są tradycyjnie przeznaczone dla monitorów komputerowych. Jako taki dostosowuje się, udając na stronie internetowej, że ma ekran wielkości komputera i skaluje wszystko, aby się w nim zmieścić. Na przykład Safari na iPhonie 5 udaje, że ma domyślnie szerokość ekranu 980 pikseli, mimo że jego rzeczywisty rozmiar to 320 pikseli (w trybie portretowym). Jeśli więc zaprojektujesz witrynę o stałej szerokości (powiedzmy) 730 pikseli, cała jej szerokość zmieści się na ekranie Twojego telefonu komórkowego, nawet jeśli ta ostatnia nie jest tak szeroka. Przeglądarka dokonuje tego, zmniejszając witrynę tak, aby wszystko stało się naprawdę małe. Jeśli użytkownik musi coś przeczytać, będzie musiał powiększyć odpowiednie fragmenty. Możesz zobaczyć ten efekt, przechodząc do strony demonstracyjnej o stałej szerokości ze smartfonem. Ta konkretna strona ma stałą szerokość 730 pikseli i jest specjalnie zaprojektowana, aby nie dostosowywać się do korzystania z telefonu komórkowego.

Ponieważ to domyślne udawanie, że urządzenie ma szerokość 980 pikseli i automatyczne skalowanie treści, nie pozwala nam ręcznie stworzyć komfortowego doświadczenia dla użytkowników mobilnych, musimy to zmienić, zanim zrobimy coś sensownego. Aby to zrobić, dodaj następujący tag HTML do sekcji swojej strony internetowej:

Powyższy metatag okna widoku instruuje przeglądarkę, aby używała rzeczywistej szerokości urządzenia ze współczynnikiem skalowania równym 1. Oznacza to, że nie udaje, że ma inną szerokość, ani nie skaluje zawartości, aby pasowała do istniejącej okno. Wszystko ma być używane tak, jak jest. Ta instrukcja powoduje, że przeglądarki mobilne zachowują się dokładnie tak, jak ich odpowiedniki na komputery.

Jeśli chcesz być przyszłościowy, teoretycznie musisz dodać równoważny kod CSS do swojego arkusza stylów.
@viewport {
szerokość: szerokość urządzenia;
zoom: 1,0;
}

Powyżej jest metoda usankcjonowana w proponowanych standardach CSS (tj. Nie została jeszcze ratyfikowana). Ponieważ rzeczy takie jak szerokość i sposób prezentacji strony internetowej są naprawdę regułami stylu, słusznie należą do arkusza stylów zamiast metatagu w HTML. Niestety, w chwili, gdy to piszę, żadna przeglądarka internetowa nie implementuje tego od razu po wyjęciu z pudełka. Microsoft i Google mają eksperymentalny kod w swoich przeglądarkach, które go obsługują, ale użytkownik musi go wyraźnie włączyć.

Jeśli chcesz go przetestować w Internet Explorerze 10, 11 i Microsoft Edge, ponieważ włączyłeś tę funkcję w swoich preferencjach, powinieneś również dodać następujące elementy. (Właściwość zoom nie została jeszcze zaimplementowana).
@ -ms-viewport {
szerokość: szerokość urządzenia;
}

Prefiks „-something-” (np. „-Ms-” dla Microsoft, „-webkit-” dla Google, „-moz-” dla Mozilli itp.) To metoda używana przez dostawców przeglądarek w celu dodania obsługi eksperymentalnych rzeczy, które nie zostały jeszcze oficjalnie dodane do standardów. Robią to, ponieważ jeśli dodadzą, powiedzmy, @viewport przedwcześnie, stosując metodę wstępnych standardów, która jest nadal przedmiotem dyskusji i negocjacji, a ostateczny standard ostatecznie ma inne znaczenie dla tych właściwości, to strony internetowe, które zależały od Standardowy sposób pisania @viewport się zepsuje. Prowadzi to do bezbożnego bałaganu, w którym producenci przeglądarek muszą zdecydować, jak interpretować reguły w witrynie, ponieważ niektóre witryny będą opierać się na standardowej semantyce, a inne na oficjalnej. A także webmasterzy nie będą w stanie rozwiązać problemu, kodując rzeczy w ten czy inny sposób, ponieważ nie mogą kontrolować, czy ich użytkownicy korzystają z przeglądarki zgodnej ze standardami, czy ze standardami późniejszymi. Rozwiązaniem jest zatem zaoferowanie wersji z prefiksem i włączenie tej bez prefiksu tylko wtedy, gdy standardy zostaną ustalone.

W każdym razie, ponieważ metoda CSS nie jest jeszcze domyślnie obsługiwana przez żadną przeglądarkę w chwili, gdy to piszę, i nie jest jeszcze oficjalnie standardem, od Ciebie zależy, czy chcesz dodać ją do swojego arkusza stylów. Jeśli to zrobisz, powinieneś być na bieżąco, kiedy zostanie ostatecznie wdrożony, na wypadek, gdyby nastąpiły zmiany w sposobie jego określania.
Klucz, który odblokowuje responsywny projekt w CSS: Zapytania o media

Teraz, gdy przeglądarka telefonu komórkowego powstrzymuje się od zmiany rozmiaru rzeczy za naszymi plecami, musimy ręcznie dostosować się do jego małego ekranu. Chociaż wydaje się to krokiem wstecz, w rzeczywistości pozwala nam robić rzeczy w bardziej odpowiedni sposób niż zautomatyzowane urządzenie telefonu: na przykład możemy zmieniać rozmiar rzeczy, które można zmienić (np. Obrazy), pozostawiając w spokoju inne, które nie powinny nie zostanie zmieniony (jak słowa). Aby zrobić na to miejsce, możemy wysyłać elementy, które nie są tak istotne na dole ekranu. Na przykład, jeśli chcesz przeczytać dowolny artykuł na stronie theewizard.com, w tym ten, na telefonie komórkowym, przekonasz się, że moje menu nawigacyjne (tj. Lista przycisków) zwykle znajduje się w lewej kolumnie w przeglądarce na pulpicie , jest umieszczony na dole strony w smartfonie. Uznałem, że skoro użytkownik jest na tej stronie, jego głównym celem jest przeczytanie artykułu. Jako taki, umieszczam artykuł na górze, aby odwiedzający mogli od razu do niego dotrzeć.

http://sanrahpo1.pl/tworzenie-stron-internetowych
http://sanrahpo1.pl/tworzenie-stron-siedlce
http://sanrahpo1.pl/tworzenie-stron-warszawa
http://sanrahpo1.pl/strony-www-krakow
http://sanrahpo1.pl/strony-www-lodz
http://sanrahpo1.pl/strony-www-poznan
http://sanrahpo1.pl/strony-www-gdansk
http://sanrahpo1.pl/strony-www-szczecin
http://sanrahpo1.pl/strony-www-bydgoszcz
http://sanrahpo1.pl/strony-www-lublin
http://sanrahpo1.pl/strony-www-bialystok

Aby osiągnąć taką magię, potrzebujemy sposobu na wykrycie rozmiaru ekranu. Nowoczesne przeglądarki zapewniają tę funkcję w formie „zapytania o media”.

Zapytanie o media w arkuszu stylów wygląda mniej więcej tak:
@media screen i (maksymalna szerokość: 320px) {
/ * CSS dla ekranów o rozdzielczości 320 pikseli lub mniejszej zostanie umieszczony w tej sekcji * /
}

Każdy CSS zawarty w nawiasach klamrowych tego testu „@media screen i (max-width: 320px)” będzie miał zastosowanie tylko do ekranów o maksymalnej szerokości 320 pikseli. Oczywiście nie jesteś ograniczony do testowania dla szerokości 320 pikseli. Ta ostatnia jest jedynie postacią wybraną dla tego przykładu. Możesz przetestować minimalną szerokość i maksymalną szerokość dowolnego rozmiaru. Możesz nawet przetestować zakres rozmiarów, na przykład w poniższym kodzie.