2014-01-21 4 views
3

Я тестирую как Nexus 4 - 4.1.1 - 768x1280, так и Xperia Z - 4.2.2 - 1080x1920 ... В обоих случаях мой сайт (который реагирует на настольные компьютеры) лишь частично реагирует на телефоны Android. WP8 работает отлично (удивительно) - и iPhone 5 работает - кроме высоты немного больше, чем должно быть (липкий нижний колонтитул не появляется). Это похоже на то, что CSS считает, что есть дополнительные 100 пикселей или около того - вещи просто немного срезаны, когда их не должно быть. Пример медиа-запроса:Отзывчивый дизайн не работает на Android?

/* if device is less than 768px */ 
@media (max-width: 768px) { 
    .container{ 
     width: auto; 
     max-width: calc(100% ~"-" 20px); 
     margin-left: 10px; 
    } 
    .banner-info{ 
     padding-right: 15px; 
     width: auto; 
     max-width: 300px; 
     font-size: 13px !important; 
    } 

} 

В моем заголовке:

<meta content="True" name="HandheldFriendly"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 

Что здесь происходит?

+0

что, если вы пытаетесь' экран @media и (макс-ширина: 768px) {...} 'вместо ? –

+0

@beworker пытается сейчас .. – SB2055

+0

@beworker - это не сработало ... Я также заменил запятую запятой, и это не сработало. Нет ошибок, просто неправильная калибровка. – SB2055

ответ

0

Adroid телефон, как Nexus или Galaxy серии имеют «сетчатка desplay» мениц соотношение пикселя равно 2, так что вы должны добавить это (-webkit-мин-устройства пиксел соотношение: 2)

так

@media (max-width: 768px) and (-webkit-min-device-pixel-ratio : 2)

+0

Этот инструмент должен помочь найти exqct-запрос на устройство http://pieroxy.net/blog/pages/css-media-queries/test-features.html –

+0

Я просто попробовал это - отзывчивость на моем рабочем столе перестает работать, поэтому это isn вариант. Если вы не говорите, что мне нужны повторяющиеся запросы, один для рабочего стола и один для Android? Надеюсь нет... – SB2055

+0

На самом деле я ошибся, вы должны делить количество пикселей на коэффициент пикселизации с вашим телефоном на точное количество максимальной ширины и соотношение пикселей там [link] pieroxy.net/blog/pages/css-media- queries/test-features.html [link] –

5

Попробуйте добавить target-densityDpi=device-dpi к вашему meta viewport. Это значение Android.

<meta name="viewport" content="width=device-width, target-densityDpi=device-dpi"> 

UPDATE:

Я недавно узнал, что target-densityDpi больше не поддерживается. Я решил аналогичную проблему путем объединения -webkit-min-device-pixel-ratio с max-width в то же время не используется target-densityDpi в моем meta viewport:

@media all and (max-width:360px), 
      screen and (-webkit-min-device-pixel-ratio: 3.0) and (max-width: 1080px), 
      screen and (-webkit-min-device-pixel-ratio: 2.0) and (max-width: 720px) { 
     // CSS HERE 
    } 
0

Я использовал этот код в заголовке

<meta name="viewport" 
content="target-densitydpi=device-dpi,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"> 

он работал для меня

+2

I «Не собираюсь голосовать, но отключить масштабирование не должно быть частью вашего шаблона или скопировать/вставить панель инструментов. Вы должны полностью отключить зум ** **, если вы абсолютно уверены **, ваши пользователи никогда не захотят ** увеличивать масштаб. (Я говорю «хочу» b/c, это сильно отличается от того, что, по вашему мнению, нужно пользователям »). –

1

http://caniuse.com/#feat=calc

Версия на Android, которую вы используете, не поддерживает calc, и вы должны предоставить резервную копию. Я предлагаю примерно следующее:

width: 90%; /* fallback */ 
width: calc(100% - 20px); 

Но теперь ваш пиксельный запас не приведет к центрированной компоновке. В этот момент, я предлагаю вам просто забыть «известково» вообще и использовать обычный «ол CSS:

width: 90%; 
margin: 0 auto; 
+0

Я не знаю, почему это было проголосовано, вы абсолютно правы, что calc не работает до Android 4.4/KitKat с браузером акций и в веб-представлениях. –

Смежные вопросы