Przeprowadziłem badania dotyczące zapytań o media i wciąż nie rozumiem, jak kierować reklamy na urządzenia o określonych rozmiarach.
Chcę mieć możliwość kierowania na komputery stacjonarne, tablety i urządzenia mobilne. Wiem, że będą pewne rozbieżności, ale byłoby miło mieć ogólny system, którego można użyć do atakowania tych urządzeń.
Kilka przykładów znalazłem:
# Mobile
only screen and (min-width: 480px)
# Tablet
only screen and (min-width: 768px)
# Desktop
only screen and (min-width: 992px)
# Huge
only screen and (min-width: 1280px)
Lub:
# Phone
only screen and (max-width:320px)
# Tablet
only screen and (min-width:321px) and (max-width:768px)
# Desktop
only screen and (min-width:769px)
Jakie powinny być punkty przerwania dla każdego urządzenia?
css
mobile
media-queries
tablet
betamax
źródło
źródło
Odpowiedzi:
IMO to najlepsze punkty przerwania:
Edycja : Udoskonalono, aby działał lepiej z 960 siatkami:
W praktyce wielu projektantów konwertuje piksele na ems, w większości b / c ems lepiej pozwolić na powiększanie. Przy standardowym powiększeniu
1em === 16px
. Pomnóż liczbę pikseli,1em/16px
aby uzyskać ems. Na przykład320px === 20em
.W odpowiedzi na komentarz,
min-width
jest standardem w projektowaniu „najpierw na telefon”, w którym zaczynasz od projektowania na najmniejsze ekrany, a następnie dodajesz coraz więcej zapytań o media, pracując na coraz większych ekranach. Niezależnie od tego, czy woliszmin-
,max-
czy też ich kombinacje, bądź świadomy kolejności swoich reguł, pamiętając, że jeśli wiele reguł pasuje do tego samego elementu, późniejsze reguły zastąpią wcześniejsze reguły.źródło
min-width: 320px
css zastępujemin-width: 801px
?Nie kieruj reklam na określone urządzenia ani rozmiary!
Ogólna mądrość jest nie do kierowania urządzeń lub konkretnych rozmiarów , ale do przeformułować pojęcie „przerwania”:
Możesz użyć responsivepx.com, aby znaleźć „naturalne” punkty przerwania, ponieważ w „punktach przerwania nie żyje” Marc Drummond .
Użyj naturalnych punktów przerwania
„Punkty przerwania” stają się wówczas faktycznym punktem, w którym Twój projekt mobilny zaczyna „pękać” tj. Przestaje być użyteczny lub przyjemny wizualnie. Gdy masz już dobrze działającą witrynę mobilną, bez zapytań o media, możesz przestać martwić się o określone rozmiary i po prostu dodać zapytania o media, które obsługują kolejno większe rzutnie.
Jeśli nie próbujesz przypiąć projektu do dokładnego rozmiaru ekranu, to podejście działa, eliminując potrzebę kierowania na określone urządzenia . Integralność samego projektu na każdy punkt przerwania , zapewnia, że będzie trzymać w dowolnym rozmiarze. Innymi słowy, jeśli menu / sekcja zawartości / cokolwiek przestaje być użyteczne dla określonego rozmiaru, należy zaprojektować punkt przerwania dla tego rozmiaru , a nie dla określonego rozmiaru urządzenia.
Zobacz post Lyzy Gardner na temat behawioralnych punktów przerwania , a także post Zeldmana na temat Ethana Marcotte i tego, jak responsywne projektowanie stron internetowych ewoluowało od początkowego pomysłu.
Użyj znaczników semantycznych
Ponadto, prostsze i bardziej semantycznej struktury DOM z
nav
,header
,main
,section
,footer
itd. (Unikanie obrzydliwości jakdiv class="header"
z zagnieżdżonych wewnętrznychdiv
znaczników) łatwiej będzie inżynier reakcji, zwłaszcza unikanie pływaków za pomocą CSS układ siatki (Sarah Drasner za generator siatki jest świetne narzędzie do tego) i Flexbox do aranżacji i ponownego zamawiania zgodnie z planem projektowania RWD.źródło
Jeśli chcesz wycelować w urządzenie, po prostu napisz
min-device-width
. Na przykład:Dla iphone
Do tabletów
Oto kilka dobrych artykułów:
źródło
@media only screen and (min-device-width: 1024){}
lub coś takiego, aby zastąpić te zmiany. Alternatywnie, możesz to zrobić,@media only screen and (MAX-device-width: 1024){}
jeśli zacząłeś od projektowania pulpitu i chcesz wprowadzać zmiany tylko do rzeczy mniejszych niż 1024.Skorzystałem z tej strony, aby znaleźć rozdzielczość i opracowałem CSS według rzeczywistych liczb. Moje liczby różnią się nieco od powyższych odpowiedzi, z wyjątkiem tego, że mój CSS faktycznie trafia na pożądane urządzenia.
Również ten fragment kodu do debugowania należy mieć zaraz po zapytaniu o media, np .:
Dodaj ten element debugowania do każdego zapytania multimedialnego, a zobaczysz, jakie zapytanie zostało zastosowane.
źródło
Najlepsze punkty przerwania zalecane przez Bootstrap na Twitterze
źródło
Zapytania o media dla typowych punktów przerwania urządzenia
źródło
źródło
Nie chodzi o liczbę pikseli, chodzi o rzeczywisty rozmiar (w mm lub calach) znaków na ekranie, który zależy od gęstości pikseli. Dlatego „min-width:” i „max-width:” są bezużyteczne. Pełne wyjaśnienie tego problemu znajduje się tutaj: czym dokładnie jest współczynnik pikseli urządzenia?
Zapytania „@media” uwzględniają liczbę pikseli i współczynnik pikseli urządzenia, w wyniku czego uzyskuje się „wirtualną rozdzielczość”, którą należy wziąć pod uwagę podczas projektowania strony: jeśli czcionka ma stałą szerokość 10 pikseli, a „ wirtualna rozdzielczość pozioma ”wynosi 300 pikseli, do wypełnienia wiersza potrzeba 30 znaków.
źródło
W dzisiejszych czasach najczęstszą rzeczą jest widzenie urządzeń z ekranem siatkówki, innymi słowy: urządzeń o wysokiej rozdzielczości i bardzo dużej gęstości pikseli (ale zwykle o wielkości fizycznej mniejszej niż 6 cali). Dlatego będziesz potrzebować wyświetlania CSS specjalistycznych zapytań o media. To jest najbardziej kompletny przykład, jaki mogłem znaleźć:
Źródło: strona internetowa CSS-Tricks
źródło
Ponieważ istnieje wiele różnych rozmiarów ekranów, które zawsze się zmieniają i najprawdopodobniej zawsze będą się zmieniać, najlepszym rozwiązaniem jest oparcie punktów przerwania i zapytań o media na projekcie.
Najłatwiejszym sposobem na zrobienie tego jest pobranie gotowego projektu pulpitu i otwarcie go w przeglądarce internetowej. Kurczyć ekran powoli , aby węższa. Obserwuj, kiedy projekt zaczyna „łamać” lub wygląda okropnie i ciasno. W tym momencie wymagany byłby punkt przerwania z zapytaniem o media.
Często tworzy się trzy zestawy zapytań o media dla komputerów stacjonarnych, tabletów i telefonów. Ale jeśli twój projekt wygląda dobrze na wszystkich trzech, po co zawracać sobie głowę złożonością dodawania trzech różnych zapytań o media, które nie są konieczne. Zrób to w razie potrzeby!
źródło
Jedną dodatkową funkcją jest to, że można również użyć zapytań o media w atrybucie media
<link>
tagu.Dzięki temu przeglądarka pobierze wszystkie zasoby CSS, niezależnie od atrybutu media . Różnica polega na tym, że jeśli zapytanie medialne atrybutu media zostanie ocenione na false, to plik .css i jego zawartość nie będą blokowały renderowania.
Dlatego zaleca się użycie atrybutu media w
<link>
tagu, ponieważ gwarantuje to lepszą obsługę.Tutaj możesz przeczytać artykuł Google na temat tego problemu https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Niektóre narzędzia, które pomogą zautomatyzować separację kodu css w różnych plikach zgodnie z zapytaniami o media
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
źródło
Zachowanie nie zmienia się na pulpicie. Ale na tabletach i telefonach komórkowych rozszerzam pasek nawigacyjny, aby zakrył duży obraz logo. Uwaga: użyj marginesu (góra i dół) tyle, ile potrzebujesz na wysokość logo.
W moim przypadku górna i dolna 60 pikseli działała idealnie!
Sprawdź pasek nawigacyjny tutaj .
źródło
źródło
Korzystam z poniższego, aby wykonać swoją pracę.
źródło
źródło