Хобрук: Ваш путь к мастерству в программировании

Адаптивный веб-дизайн и дисплеи с высоким разрешением (iPhone 4/5)

Недавно я начал экспериментировать с адаптивным веб-дизайном и провел базовый тест здесь:

http://test.studev.net/

Он отлично работает в настольном браузере, однако я немного запутался в том, как работать с дизайном наименьшей ширины при загрузке на устройстве с высоким разрешением, например, на дисплеях Retina на iPhone. Из-за этого типа дисплея это означает, например, что размер 16px, который является нормальным для чтения на рабочем столе, невозможно прочитать на iPhone 4/5.

Как это обычно решается?


  • Рассматривали ли вы просто оставить базовый размер шрифта в покое и использовать относительные единицы (например, em) для настройки размера шрифта больших/меньших элементов? 18.04.2013
  • Не могли бы вы объяснить немного больше о том, как это сделать? 18.04.2013
  • Суть в том, что вы оставляете свой обычный текст с размером шрифта по умолчанию. Когда вам нужно больше или меньше, вы изменяете его в процентах: codepen.io/cimmanon/pen/GjDwe< /а>. Также полезно прочитать: kyleschaeffer.com /user-experience/ и блог .cloudfour.com/ 18.04.2013
  • Для меня ответ @cimmanon - единственно правильный. Каждое измерение размера в адаптивном дизайне должно основываться на относительных ems, а не на фиксированных pxs. Последний будет отображать текст очень маленьким на экранах с высокой плотностью пикселей, потому что в этом мире пиксели — это особенно крошечные вещи. 26.11.2014

Ответы:


1

Ну, если вы хотите сделать текст меньше на мобильном телефоне или больше, вы бы сделали

@media screen and (max-width: 480px) {
    font-size: 10px; /* Smaller */
}

or

@media screen and (max-width: 480px) {
    font-size: 20px; /*Larger*/
}

И убедитесь, что у вас есть это в вашем теге <HEAD>:

<meta name="viewport" content="width=device-width, initial-scale=1">

Или вы также можете отключить масштабирование следующим образом:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

А для поддержки IE10 попробуйте:

@-ms-viewport{
    width:device-width
}
17.04.2013
  • Пользователям обычно не нравится, когда вы отключаете масштабирование (maximum-scale=1). 18.04.2013
  • Этот мета-код области просмотра, кажется, сделал это, сделав все на моем iPhone намного более читабельным, используя тот же размер шрифта на рабочем столе и мобильном устройстве. Ваше здоровье. 18.04.2013
  • Следует отметить, что IE10 не поддерживает метатег области просмотра. Вместо этого они поддерживают правило CSS @viewport: dev.opera.com/articles/view/ 18.04.2013
  • Оу Эм Джи, твой ответ только что избавил меня от головной боли! :D 30.07.2013
  • @cimmanon Дело не только в том, что пользователям обычно не нравится, когда вы отключаете масштабирование, но и в том, что люди с плохим зрением просто не смогут читать ваш контент. Не делайте этого без действительно уважительной причины. 14.08.2014
  • @ tomasz86 tomasz86 Я просто не могу придумать вескую причину. Я абсолютно ненавижу, когда веб-сайт отключает масштабирование, а я сижу в телефоне, пытаясь увидеть что-то получше. Это действительно раздражает. 21.08.2014
  • +1 за отключение масштабирования, это позволило мне избавиться от автоматического масштабирования, когда пользователь фокусируется на входных данных, однако пользователь всегда может изменить настройку по умолчанию. В мобильном браузере Chrome есть возможность сделать это в разделе специальных возможностей. 13.02.2015
  • Это исправило это для меня: ‹meta name=viewport content=width=device-width, initial-scale=1› Но почему? 10.12.2016

  • 2

    Вы можете выбрать размер шрифта в соответствии с шириной экрана:

        /* Large desktop */
        @media (min-width: 1200px) {
            font-size: 18px;
        }
    
        /* Portrait tablet to landscape and desktop */
        @media (min-width: 768px) and (max-width: 979px) {
            font-size: 16px;
        }
    
        /* Landscape phone to portrait tablet */
        @media (max-width: 767px) {
            font-size: 14px;
        }
    
        /* Landscape phones and down */
        @media (max-width: 480px) {
            font-size: 12px;
        }
    

    Чтобы убедиться, что ваш макет растягивается на экране мобильного устройства, вы должны использовать метатег области просмотра:

    <meta name="viewport" content="width=device-width, initial-scale=1" />
    

    Этот метатег должен находиться внутри тега head. «Ширина устройства» будет максимальным количеством пикселей, которое может отображать ваш экран. Там же можно установить постоянное значение (600px).

    Initial-scale=1 означает, что масштаб будет автоматически увеличен до 100%. (0,5 => 50%)

    17.04.2013
  • Таким образом, это сделает текст меньше, чем меньше устройство? Это своего рода противоположность проблемы, текст должен быть больше на устройстве с высоким разрешением, проблема просто сделать текст намного больше, когда максимальная ширина, например, составляет 480 пикселей или 767 пикселей, заключается в том, что если окно настольного браузера сужается до этого размера, то текст становится огромным. 18.04.2013
  • Тогда вы просто уменьшите текст в меньшем медиа-запросе. 18.04.2013
  • Это сделает текст меньше на меньшем разрешении. обычно меньшее разрешение != меньший экран, просто меньше пикселей в нем. Когда вы используете адаптивный дизайн, вы добавляете область просмотра метатегов. Это растянет макет на весь экран, и 16 пикселей для размера шрифта будет достаточно. В наши дни некоторые мобильные браузеры увеличивают размер шрифта контента независимо от значения размера шрифта, поэтому он будет более читаемым. 18.04.2013
  • Область просмотра метатегов? Как мне это реализовать? 18.04.2013
  • я добавлю это к моему ответу 18.04.2013
  • Новые материалы

    Введение в контекст React
    В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

    Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
    Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

    Это оно
    Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

    7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
    Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

    Базовое руководство по переносу концепций обучения в глубокое обучение
    Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

    C в C.R.U.D с использованием React-Redux
    Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

    5 обязательных элементов современного инструмента конвейера данных
    В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..