Чи є спосіб отримати ширину пристрою користувачів на відміну від ширини перегляду за допомогою javascript?
Медіа-запити CSS пропонують це, як я можу сказати
@media screen and (max-width:640px) {
/* ... */
}
і
@media screen and (max-device-width:960px) {
/* ... */
}
Це корисно, якщо я орієнтуюсь на смартфони в ландшафтній орієнтації. Наприклад, на iOS декларація max-width:640px
націлятиметься як на пейзажний, так і на портретний режими, навіть на iPhone 4. Це не так, як для Android, наскільки я можу сказати, тому використання ширини пристрою в цьому випадку успішно націлює обидві орієнтації, без націлювання на настільні пристрої.
Однак якщо я посилаюсь на прив'язку JavaScript на основі ширини пристрою, я, здається, обмежуюся тестуванням ширини вікна перегляду, що означає додатковий тест, як у наступному,
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Мені це не здається елегантним, враховуючи натяк, що ширина пристрою доступна для css.
Modernizr
може допомогти вам зробити це «чистий і загальний шлях»: stackoverflow.com/questions/25935686 / ... . Щодо першого коментаря: ви можете перейти в Google "Modernizr vs <otherLib> медіа-запит", щоб дізнатися, що найкраще підходить для вашого випадку використання