iPhone X / 8/8 Plus CSS медіа-запити


78

Які CSS-медіа-запити відповідають новим пристроям Apple? Мені потрібно встановити body"s", background-colorщоб змінити колір тла безпечної області X.

Відповіді:


152

iPhone X

@media only screen 
    and (device-width : 375px) 
    and (device-height : 812px) 
    and (-webkit-device-pixel-ratio : 3) { }

iPhone 8

@media only screen 
    and (device-width : 375px) 
    and (device-height : 667px) 
    and (-webkit-device-pixel-ratio : 2) { }

iPhone 8 Plus

@media only screen 
    and (device-width : 414px) 
    and (device-height : 736px) 
    and (-webkit-device-pixel-ratio : 3) { }


iPhone 6 + / 6s + / 7 + / 8 + мають однакові розміри, тоді як iPhone 7/8 теж.


Шукаєте конкретну орієнтацію?

Портрет

Додайте таке правило:

    and (orientation : portrait) 

Пейзаж

Додайте таке правило:

    and (orientation : landscape) 



Список літератури:


1
Мій iphone 8+ з iOS 12 потрапляє під запит iPhone X
user1415066

viewportsizes.com/mine повідомляє 320 х 450 для iPhone 8. Також повідомляє: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1.
adrhc,

Запит мультимедіа iPhone 8 Plus не працює, принаймні, з хрому.
Talha Meh

85

Ось деякі з наступних медіа-запитів для iPhone. Ось посилання на посилання https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

        /* iphone 3 */
        @media only screen and (min-device-width: 320px) and (max-device-height: 480px) and (-webkit-device-pixel-ratio: 1) { }
        
        /* iphone 4 */
        @media only screen and (min-device-width: 320px) and (max-device-height: 480px) and (-webkit-device-pixel-ratio: 2) { }
        
        /* iphone 5 */
        @media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-device-pixel-ratio: 2) { }
        
        /* iphone 6, 6s, 7, 8 */
        @media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (-webkit-device-pixel-ratio: 2) { }
            
        /* iphone 6+, 6s+, 7+, 8+ */
        @media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (-webkit-device-pixel-ratio: 3) { }
        
        /* iphone X , XS, 11 Pro, 12 Mini */
        @media only screen and (min-device-width: 375px) and (max-device-height: 812px) and (-webkit-device-pixel-ratio: 3) { }

        /* iphone 12, 12 Pro */
        @media only screen and (min-device-width: 390px) and (max-device-height: 844px) and (-webkit-device-pixel-ratio: 3) { }
       
        /* iphone XR, 11 */
        @media only screen and (min-device-width : 414px) and (max-device-height : 896px) and (-webkit-device-pixel-ratio : 2) { }
            
        /* iphone XS Max, 11 Pro Max */
        @media only screen and (min-device-width : 414px) and (max-device-height : 896px) and (-webkit-device-pixel-ratio : 3) { }

        /* iphone 12 Pro Max */
        @media only screen and (min-device-width : 428px) and (max-device-height : 926px) and (-webkit-device-pixel-ratio : 3) { }


Вам слід додати посилання, наприклад: Посилання на інші відповіді SO, якщо ви їх скопіювали.
Натан

Чи немає різниці між 6, 6, 7 і 8, або я цього не бачу?
Перрі,

@Perry, так, ти мав рацію. Я відредагував свою відповідь. Дякую.
Яш Векарія

Мій iphone 8+ з iOS 12 потрапляє під запит iPhone X
user1415066

1
@GlennG Я також оновив свою відповідь, це питання;)
Yash Vekaria

18

Я помітив , що відповіді тут використовують: device-width, device-height, min-device-width, min-device-height, max-device-width,max-device-height .

Утримайтеся від їх використання, оскільки вони застаріли . див. MDN для довідки . Замість того, щоб використовувати регулярні min-width, max-widthі так далі. Для додаткової впевненості ви можете встановити min і max на однакову величину в px. Наприклад:

iPhone X

@media only screen 
    and (width : 375px) 
    and (height : 635px)
    and (orientation : portrait)  
    and (-webkit-device-pixel-ratio : 3) { }

Ви також можете помітити, що я використовую 635px для висоти. Спробуйте самі, висота вікна насправді 635 пікселів. запустіть iOS-симулятор для iPhone X та у веб-інспекторі Safari window.innerHeight. Ось кілька корисних посилань на цю тему:


Це ЄДИНИЙ метод, що працює, всі інші вище, навіть CSS-хитрощі помилкові, використовуючи такі методи, як Yash Vakeria або Josh works, але їх також викликають на Iphone 6-7-8. АЛЕ! ВИКОРИСТОВУЙТЕ 812 пікселів замість згаданих 635 пікселів, інструмент інспектора хрому не зловив його, як згадував Сем ...
Renegade_Mtl

1

Здається, найточніший (і найпростіший) метод додавання відступів для iPhone X / 8 за допомогою env () ...

padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);

Ось посилання, що описує це:

https://css-tricks.com/the-notch-and-css/


Привіт Васіфе, спробуй поставити `` навколо коду для кращого форматування.
Алан Скарпа

На жаль, це буде застосовано відступ і на iPhone 6, принаймні це стосується симулятора. І це небажано.
emil.c

1

Якщо на вашій сторінці в meta[@name="viewport"]елементі DOM відсутній елемент, то для виявлення мобільного пристрою можна використовувати наступне:

@media only screen and (width: 980px), (hover: none) { … }

Якщо ви хочете уникнути помилкових спрацьовувань на настільних комп’ютерах, для яких просто магічним чином для області перегляду встановлено значення 980px, як це роблять усі мобільні браузери, тоді device-widthдо міксу можна також додати тест:

@media only screen and (max-device-width: 800px) and (width: 980px), (hover: none) { … }

Згідно зі списком https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries , нова hoverвластивість, здається, є остаточним новим способом виявити, що у вас є мобільний пристрій це насправді не робить належним чином hover; він був представлений лише в 2018 році з Firefox 64 (2018), хоча підтримується з 2016 року з Android Chrome 50 (2016) або навіть з 2014 року з Chrome 38 (2014):

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.