— привычные нам пиксели: самые маленькие элементы любого дисплея, каждый из которых имеет свой цвет и яркость.
— абстрактная величина, используемая браузерами для точного отображения контента на страницах, вне зависимости от экрана
PPI (Pixels Per Inch) - пиксели на дюйм.
— общее маркетинговое название ЖК-дисплеев, используемых в устройствах Apple и отличающихся настолько высокой плотностью пикселей.
Cоздание веб-интерфейса происходит поэтапно, от самого простого к сложному
Начинаете проектирование сервиса с мобильной версии
Вы делаете одну версию вашего веб-проекта для всех устройств с любым размером экранахорошая книга
Safari/Chrome/Opera = 980px
<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 {//@-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
}
<meta
name='viewport'
content='initial-scale=1, viewport-fit=cover'>
.post {
padding: 12px;
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
}
.post {
padding-left: max(12px, env(safe-area-inset-left));
padding-right: max(12px, env(safe-area-inset-right));
}
@supports(padding: max(0px)) {
.post {
padding-left: max(12px, env(safe-area-inset-left));
padding-right: max(12px, env(safe-area-inset-right));
}
}
section {
float: left;
}
@supports (display: -webkit-flex) or
(display: -moz-flex) or
(display: flex) {
section {
display: -webkit-flex;
display: -moz-flex;
display: flex;
float: none;
}
}
var supportsFlex = CSS.supports("display", "flex");
@media [not|only] mediatype [and (media feature)] {
CSS-Code;
}
Media queries - позволяет указать тип устройства, для которого будет применяться указанный стиль.
@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;
}
}
Пример
//landscape | portrait
@media (orientation: landscape) {
body {
color: red;
}
}
Пример
.selector {
background: url(../apple.png) no-repeat;
}
@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>
Позвонить
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);
}
Почему веб-приложения на мобильных платформах работают медленно
– библиотека, которая помогает обработывать события, созданные при помощи мышки или touch
Своего рода 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.
Google – Accelerated Mobile Pages.
Технология ускоренных мобильных страниц
<!doctype html>
<html ⚡>
<head>
<title> Hello World</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<link rel="canonical" href="https://your.websit.ru/original-page">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello AMP!</body>
</html>
На AMP странице:
<link rel="canonical" href="hello.html">
На основной странице:
<link rel="amphtml" href="hello.html">
<amp-img
src="/img/Border_Collie.jpg"
alt="Picture of a dog"
title="Picture of a dog, view in lightbox"
layout="responsive"
width="300"
height="246">
Обычная версия | AMP | |
---|---|---|
Количество запросов | 55 | 21 |
Размер | 835 КБ | 253 КБ |
Время загрузки | 15.42 сек | 1.6 сек |
<rss
xmlns:yandex="http://news.yandex.ru"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:turbo="http://turbo.yandex.ru"
version="2.0"
>
<channel>
<item turbo="true">
<link>http://www.example.com/page1.html</link>
<turbo:content>
<![CDATA[
<header><h1>Заголовок страницы</h1></header>
]]>
</turbo:content>
</item>
</channel>
</rss>
– моментальный просмотр блогов, новостей, статей прямо в telegram
– функция социальной сети Facebook, позволяющая просматривать материалы интернет-изданий в мобильном приложении Facebook без перехода на внешнюю веб-страницу ресурса