2013-09-06 1 views
0

Я пытаюсь создать «мобильное первое» веб-приложение. И при этом я использую мета-атрибут «viewport», чтобы соответствующим образом масштабировать элементы.Почему фиксированные размеры элементов html height/width больше, чем ожидалось, на мобильных устройствах, несмотря на высокую плотность пикселей?

Но я хочу некоторые элементы должны быть фиксированным размером. Например, я хочу, чтобы div ниже был 598 (h) x450 (w).

<div class="note"> 
    <div class="note_text">Its my birthday, and I have treated myself to a very nice gift. </div> 
    <img class="sticker" src="/assets/sally/sally_04.png"/> 
</div> 

.note { 
    margin-left: 20px; 
    height: 598px; 
    width: 450px; 
} 

.sticker { 
    width:300px; 
    height:300px; 
    position: relative; 
} 

На Iphone это разрешение должно технически поместиться в одном экране (при прокрутке вниз к верхней части элемента DIV),. Однако элемент div возвращает больше, чем ожидалось. Зачем?

Я пропустил что-то супер очевидное?

+0

"к сведению" ДИВ, который указан в 598x450px. На экране iPhone он растягивается дольше и шире, несмотря на то, что разрешение экрана iphone 4 составляет 960x640 (я принимаю во внимание нижний нижний колонтитул экрана). И размер изображения 300x300 (собственное разрешение) –

+0

Не могли бы вы предоставить информацию об атрибутах видового экрана и масштабирования, которые вы установили в метатеге? –

+1

На экране iPhone Retina есть физические пиксели 960x640, но его разрешение по-прежнему составляет 480x320 пикселей. CSS-пиксели не отображают 1: 1 для физических пикселей. http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html – pawel

ответ

3

Ну, можете ли вы быть более конкретным, как то, что вы указали в метатеге и фактическом размере изображения?

Но до этого работа вокруг может состоять в том, чтобы задать ширину и высоту в '%' вместо «пикселей» в классе стикеров. Убедитесь, что вы поддерживаете соотношение высоты и ширины, чтобы изображение не выглядело растянутым и несогласованным.

Что-то вроде:

**.sticker { 
    width:65%; /* or keep width:100% and don't specify the height*/ 
    height:40%; 
    position: relative; 
}** 
Смежные вопросы