CSS @media запросы для дисплеев с высоким разрешением не работают
Я настроил немного CSS, чтобы определить, использует ли клиент Retina или другой дисплей HiDPI, и отображать различные background-image
для различных div
s на основе этого. Вот мой синтаксис:
<!-- LoDPI and MedDPI displays -->
#div {
opacity:0.4;
position:absolute;
top:0px;
z-index:2;
width:1600px;
height:900px;
animation-name:ring;
animation-delay:0s;
animation-duration:1500ms;
animation-timing-function:cubic-bezier(0.225, 1.650, 0.000, 0.805);
animation-fill-mode:forwards;
background-image:url(/valid/path/to/regular/file);
}
<!-- For Retina and HiDPI displays -->
@media only screen and (min-device-pixel-ratio: 1.4) {
#div {
background-image:url(/valid/link/to/HiDPI/file);
background-position:center;
background-size:contain;
}
}
Проблема в том, что, когда я пробую это на своем Retina MBP, чье отношение пикселей установлено на 1.5 ("действует как 1920х1200), отображает изображения с нормальным разрешением, а не с высоким разрешением.2 ответа:
У вас не все фигурные скобки закрыты. Независимо от этого, для лучшей матрицы поддержки, замените ваш медиа-запрос на
@media only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { /*your rules*/ }
У меня была та же проблема.: min-device-pixel-ratio, похоже, не поддерживается (с префиксами) без префиксов js!? min-device-pixel-ratio не соответствует стандарту W3C.
Когда я использую его с префиксами поставщиков, все работает нормально?!
Это прекрасно работает для меня (удалить комментарии)
@media (-webkit-min-device-pixel-ratio: 2), /* Firefox16, Chrome, Safari, iOS, Android */ (min--moz-device-pixel-ratio: 2), /* Older Firefox browsers (prior to Firefox16) */ (-o-min-device-pixel-ratio: 2/1), /* Opera */ (min-device-pixel-ratio: 2), /* not defined yet, http://www.w3.org/TR/css3-mediaqueries/ */ (min-resolution: 2dppx), /* not yet, probably in future, see http://www.w3.org/TR/css3-mediaqueries/ */ (min-resolution: 192dpi) /* works for non css3 browser */ { /* your styles go here */ }
Значения Opera должны быть 1/1, 3/2, 2/1 эквивалентны 1, 1.5 и 2.
- значения dpi должны быть 96, 144, 192 эквивалентны 1, 1.5 и 2.
При использовании - webkit-text-size-adjust:нет; font-sizes не взорвется на iPhone при переходе из портретного режима в альбомный; -)