Кувалдин Артем, Мохов Олег
— привычные нам пиксели: самые маленькие элементы любого дисплея, каждый из которых имеет свой цвет и яркость.
— абстрактная величина, используемая браузерами для точного отображения контента на страницах, вне зависимости от экрана
PPI (Pixels Per Inch) - пиксели на дюйм.
— общее маркетинговое название ЖК-дисплеев, используемых в устройствах Apple и отличающихся настолько высокой плотностью пикселей.
Ширина контента не меняется в зависимости от размеров окна браузера.
Подстраивание контента под ширину экрана путем сжатия элементов.
Cоздание веб-интерфейса происходит поэтапно, от самого простого к сложному
Начинаете проектирование сервиса с мобильной версииНе mobile first
Вы делаете одну версию вашего веб-проекта для всех устройств с любым размером экранахорошая книга
<meta name="viewport" content="width=device-width">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0
maximum-scale=1.0, user-scalable=no">
@viewport {//@-o-viewport | @-ms-viewport
width: auto; // auto | device-width | length | %
max-width: auto;
min-width: auto;
zoom: auto; // auto | number | %
max-zoom: 5; // Largest allowed zoom factor.
min-zoom: 0.25; // Smallest allowed zoom factor.
user-zoom: zoom; // fixed | zoom
orientation: auto; // auto | portrait | landscape
}
Правило @media - позволяет указать тип устройства, для которого будет применяться указанный стиль.
@media [not|only] mediatype [and (media feature)] {
CSS-Code;
}
@media {
a {
color: red;
}
}
body {
color: red
}
@media print {
body {
color: blue
}
}
@media print, screen {
body {
color: blue
}
}
– задают технические характеристики устройства, на котором отображается документ.
@media (min-width:600px) {
aside {
float: left;
width: 300px;
margin: 10px;
}
}
@media (max-width:600px) {
aside {
float: none;
color: blue;
}
}
Пример
h1 {
font-size: 50px;
}
@media (min-width:400px) and (max-width:600px) {
h1 {
font-size: 20px;
color: red;
}
}
Пример
h1 {
font-size: 50px;
}
@media (min-width:600px), (max-width:400px) {
h1 {
font-size: 20px;
color: red;
}
}
Пример
@media (min-device-width: 200px) and
(max-device-width: 400px) {
body {
color: red;
}
}
Пример
@media (min-width: 300px) {
body {
color: red;
}
}
@media (min-device-width: 300px) and
(max-device-width: 400px) {
body {
color: blue;
}
}
Пример
//landscape | portrait
@media (orientation: landscape) {
body {
color: red;
}
}
Пример
.selector {
background: url(../apple.png) no-repeat;
}
// -o-min-device-pixel-ratio
// min--moz-device-pixel-ratio
// -webkit-min-device-pixel-ratio
@media (min-device-pixel-ratio: 2) {
.selector {
background-image: url(../apple@2x.png);
background-size: cover;
}
}
@media (min-device-pixel-ratio:2),
//dpi (dots per inch) - точек на дюйм
//для экранов 1DPI = 1PPI
(min-resolution: 192dpi),
//dppx (dots per pixel) - точек на пиксель
(min-resolution: 2dppx) { ... }
@media not all and (monochrome) { ... }
@media not (all and (monochrome)) { ... }
@media (not all) and (monochrome) { ... }
@media not screen and (color), print and (color) { ... }
@media (not (screen and (color))), print and (color) { ... }
<link rel="stylesheet" media="(max-width: 640px)" href="max-640px.css">
<link rel="stylesheet" media="(min-width: 640px)" href="min-640px.css">
<link rel="stylesheet" media="(orientation: portrait)" href="portrait.css">
<link rel="stylesheet" media="(orientation: landscape)" href="landscape.css">
+73191111110
<head> </head>
+73191111110
button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, number, radio, range, reset, search, submit, tel, text, time, url, week
Устанавливает цвет подсветки ссылки или любого кликабельного элемента
.wrapper {
–webkit-tap-highlight-color: transparent
}
Изменяет внешний вид кнопок и других элементов управления, чтобы походить на стандартные средства управления.
.element {
–webkit-appearance: none | button | radio | ...;
}
.element {
-webkit-overflow-scrolling: touch;
}
.logo {
background: url(image.png);
}
@media screen and (device-pixel-ratio: 2) {
.logo {
background: url(image-x2.png);
}
}
.logo {
background: url(logo.svg);
background-size: 100px 60px;
}
.logo {
background-image: image-set(
"logo.png" 1x,
"logo-2x.png" 2x,
"logo-print.png" 600dpi);
}

Почему веб-приложения на мобильных платформах работают медленно
Своего рода modernizr. Навешивает необходимые классы на body
.i-ua_svg_ yes/no
.i-ua_platform_ ios/android/wp/opera/bada/other
.i-ua_orientation_ portrait/landscape
.i-ua_size_ small/normal/big
iScroll is a high performance, small footprint, dependency free, multi-platform javascript scroller.