— привычные нам пиксели: самые маленькие элементы любого дисплея, каждый из которых имеет свой цвет и яркость.
— абстрактная величина, используемая браузерами для точного отображения контента на страницах, вне зависимости от экрана
PPI (Pixels Per Inch) - пиксели на дюйм.
— общее маркетинговое название ЖК-дисплеев, отличающихся достаточной плотностью пикселей, чтобы человеческий глаз не смог заметить, что изображение состоит из них.
Это способность сайта продолжать своё функционирование в случае отказа некоторых компонентов.
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;
}
}
@media [not|only] mediatype [and (media feature)] {
CSS-Code;
}
Media queries - позволяет указать тип устройства, для которого будет применяться указанный стиль.
@media {
a {
color: red;
}
}
– задают технические характеристики устройства, на котором отображается документ.
@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;
}
}
<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
<meta name="format-detection" content="telephone=no">
<a href="tel:+73191111110">Позвонить</a>
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;
}
<img width="200" src="image-400px.jpg">
.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);
}
img src="logo.png" srcset="logo-1x.png 1x,
logo-2x.png 2x">
<picture>
<source srcset="logo-x2.png" media="(min-width: 600px)">
<img src="logo.png">
</picture>
<div id="target">click me </div>
<script type="text/javascript">
const div = document.getElementById('target');
div.addEventListener('click', onDivClick);
</script>
Своего рода 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
<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>
Google – Accelerated Mobile Pages.
Технология ускоренных мобильных страниц
– моментальный просмотр блогов, новостей, статей прямо в telegram