What are the correct CSS media queries used to target Apple\'s 2018 devices: iPhone XR/XS/XS Max ?
/* 1792x828px at 326ppi */
@media only screen
and (device-width : 414px)
and (device-height : 896px)
and (-webkit-device-pixel-ratio : 2) { }
/* 2436x1125px at 458ppi */
@media only screen
and (device-width : 375px)
and (device-height : 812px)
and (-webkit-device-pixel-ratio : 3) { }
/* 2688x1242px at 458ppi */
@media only screen
and (device-width : 414px)
and (device-height : 896px)
and (-webkit-device-pixel-ratio : 3) { }
Looking for a specific orientation ?
Portrait
Add the following rule:
and (orientation : portrait)
Landscape
Add the following rule:
and (orientation : landscape)
References:
The info from Nathan is great. Thanks for the breakpoints which every browser's inspector doesn't seem to have. Only challenge I ran into was that all of my previous media queries use things like
/* Landscape */
@media only screen
and (min-device-width : 414px)
and (max-device-height : 896px)
and (-webkit-device-pixel-ratio : 3)
and (orientation : landscape) {
whereas the solution above uses only
and (device-width : 414px)
which can cause issues with queries you may already have that use both min-device and max-device.
Thanks very much for these sizes and DPRs!
The above is correct, but designers need to target the true screen dimensions to avoid scaling, cropping etc. For example the default landscape screen size is actually 808px for an XR.
So this may be more appropriate: @media (max-width: 808px) {...
This will in fact override this query: @media (max-width: 896px) {...
The problem is Apples safe area insets. These can be overcome and get true 896px edge to edge width by adding the following;
Meta tag: viewport-fit=cover
CSS: body { padding: env(safe-area-inset, 0px); }
The 0px size padding can be changed, or left right top bottom variables added, or adapt for portrait/landscape. But most will already have sufficient padding in their design.
Reference: https://webkit.org/blog/7929/designing-websites-for-iphone-x/
Not tested on other devices but seems they are all adopting same.