ݺߣ

ݺߣShare a Scribd company logo
Вопиловский Константин
KamaGames Studio
Предсказуемый
Viewport
?
2
Зачем
Вот зоопарк
3
Плотность пикселей
4
Размер
5
Расстояние
6
Устройства ввода
7
Нам нужно больше макетов
8
9
Нет, нам нужна оптимизация
10
Практика
desktop compact mobile
11
var templateType = ...
12
userAgent
13
mobile compact desktop
14
A B
var templateType = “mobile”
Viewport ?
15
Viewport
16
➔ <meta name="viewport" ...>
➔ @viewport {...}
➔ или не указывать
<meta name="viewport">
content="width=device-width"
content="width=360px"
17
<meta content="width=device-width" …>
18
device-width (css width):
320, 346, 360, 390,
400, 504, …
Не всякая резина одинаково полезна
19
То маленький, то большой
20
<meta name="viewport" content="width=360px">
21
<meta name="viewport" content="width=360px">
22
Неадекватное поведение браузеров
23
<meta name="viewport" content="width=360px">
● меняем width в зависимости от ориентации
● элементы c {overflow: scroll}
● часто по клику появляется лупа
● итд
?
24
rem
25
“pxrem”
26
#!/bin/bash
px2rem2px index.css > index.css
27
rem
28
font-size: calc(100vw / 360)
1px == 1rem
29
font-size: calc(100vw / 360)
1px == 1rem
100 100100
30
100
400
font-size: calc(1000vw / 360)
10px == 1rem
31
.-viewport-mobile-landscape: font-size: calc(1000vw / 520)
.-viewport-mobile-portrait: font-size: calc(1000vw / 360)
32
.-viewport-tablet-landscape: font-size: calc(1000vw / 980)
.-viewport-tablet-portrait: font-size: calc(1000vw / 640)
calc(1000vw / 800)
calc(1000vw / 600)
33
Возможные проблемы
- если виртуальный “px” меньше физического
- не забываем про javascript
- интеграция с внешними виджетами
- это хак ...
34
.-viewport-desktop: font-size: 10px
.-viewport-tablet-landscape: font-size: calc(1000vw / 980)
.-viewport-tablet-portrait: font-size: calc(1000vw / 640)
.-viewport-mobile-landscape: font-size: calc(1000vw / 520)
.-viewport-mobile-portrait: font-size: calc(1000vw / 360)
35
Итого:
Спасибо!
вопросы ?
36
Вопиловский Константин
https://github.com/vflash

More Related Content

Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33