Прокрустовы окна

Вадим Макеев, Opera Software

Прокрустовы окна

Прокрустовы окна

Проблема

Хочу мобильный сайт

Клиент

Мабiлка 240 × 320

Мабiлка

Смартфон 480 × 800

Смартфон

Планшет 1280 × 800

Планшет
iPhone

IE6, помните?

IE6

Выньте iPhone
из задницы

Бендер

Выньте iPhone из задницы

Меня тошнит от извращенцев, по сути просто Apple-зависимых идиотов, называющих себя «мобильными веб-разработчиками», у которых iPhone застрял в заднице настолько глубоко, что их мозг погибает без кислорода — Питер Поль Кох (PPK)

The iPhone Obsession и There is no WebKit on Mobile

Десктоп

Nexus

Nexus

iPhone

iPhone

iPad

iPad

Хм-м…

Фрай

Вьюпорт

Вьюпорт

				<meta name="viewport" content="width=320">
			

Придумали в Apple

				@viewport { width:320px }
			

Переосмыслили в Opera, см. CSS Device Adaptation

Вьюпорты
Ширины

Просто так

Текст

Вьюпорт по умолчанию

  • 980px — Mobile Safari
  • 850px — Opera
  • 800px — Android WebKit
  • 974px — Internet Explorer

Symbian WebKit, Samsung WebKit, BlackBerry…

Приближаем

Приближаем

Новый вьюпорт

				<meta name="viewport" content="width=320">
			
				@viewport {
				    width:320px
				    }
			

Фиксируем

Текст ограничен

Выбиратор вьюпорта

Относительный вьюпорт

				<meta name="viewport" content="width=device-width">
			
  • Для адаптирующихся, универсальных резиновых сайтов
  • Для строго мобильных версий
  • Значение — выставляется самим девайсом

Фиксированный вьюпорт

				<meta name="viewport" content="width=1024">
			
  • Для обычных фиксированных десктопных сайтов
  • Значение — минимальная ширина для просмотра вашего сайта
  • Рекомендуется всем

Добавье вьюпорт сегодня! Я проверю…

Опираемся на вьюпорт

				<meta name="viewport" content="width=320">
			
				@media screen and (device-width:320px) {
				    Ага, мобилка!
				    }
			

Ширина устройства

				<meta name="viewport" content="width=device-width">
			
				@media screen and (max-width:360px) {
				    Поймали Nokia 5800!
				    }
			

Как угодить всем?

Маобилка и планшет

Вставить смартфон!

Мобилка, смартфон и планшет

Вьюпортики и вьюпортища

  • Крочешные: 84, 96, 101, 128, 130, 132
  • Маленькие: 160, 176
  • Средние: 208, 220, 240
  • Большие: 320, 360, 480+
  • Десктоп: 800+
Адаптация

FBI

DPI

iPhone vs. Finder
Screen vs. Finder

Пикселы?
Пикселы!
Пикселы…

Пикселы

Э-э-э…

Эми

Фан!

Никому нелья верить!

Everybody Lies!

Device DPI

  • Ширина экрана HTC Desire — 480px
  • Итоговый device-width300px

Всё из-за настройки Zoom: 480px ÷ 160% = 300px

				<meta name="viewport" content="target-densitydpi=device-dpi">
			
Portrait
Landscape

От девайса к девайсу…

  • Значение device-width для iPad всегда 768px,
    как его ни поворачивай
  • Значение device-width для Galaxy Tab 600px или 1024px,
    в зависимости от ориентации
  • При открытой клавиатуре Galaxy Tab всегда в ландшафтной ориентации, как его ни… ну, вы поняли

Тестирование

Тестирование
Статистика

Opera Mobile

Opera Mobile Emulator

Opera Mini

Opera Mini

Opera Mini

Opera Mini

microemu.org

opera.com/developer/tools

Android SDK

Android SDK

XCode

XCode

Сто килограммов девайсов

Девайсы

Прокрустовы окна

Вадим Макеев, Opera Software

Презентация: pepelsbey.net/pres/procrustes