В процессе разработки интерфейса статические веб-страницы обычно необходимо адаптировать к устройствам с разным разрешением Обычно используемые адаптивные решения включают медиа-запросы, проценты ./rem
иvw
vh
px
Один px
и окно просмотра
В общем, когда мы пишем веб-страницы, наиболее часто используемой единицей для описания длины и ширины является пиксель ( px
), в pc
конце обычно считается, css
что 1px
реальная длина представления фиксирована.
На самом деле это не так, px
это связано с устройством, например, 16px
когда размер шрифта равен , pc
размер терминала и мобильного терминала разные.
Итак, что определяет истинную длину css
? 1px
Прежде всего, нам нужно знать, что такое пиксели и области просмотра.
1. Пиксель
Пиксели являются основой макета веб-страницы. Пиксель представляет собой наименьшую область, которая может отображаться на экране компьютера. Пиксели делятся на два типа: css
пиксели и физические пиксели. Пиксель — это абстрактная единица, используемая в пикселях для css
веб-разработчиков ; физические пиксели связаны только с аппаратной плотностью устройства, а физические пиксели любого устройства фиксированы.css
Чтобы прояснить css
отношения преобразования между пикселями и физическими пикселями, мы должны сначала понять, что такое окно просмотра.
2. Окно просмотра
Широкая область просмотра относится к области, в которой браузер отображает контент, а узкая область просмотра включает в себя область просмотра макета, визуальную область просмотра и идеальную область просмотра.
(1) Окно просмотра макета
Окно просмотра макета — это pc
поведение макета по умолчанию для веб-страниц на мобильной стороне, поскольку обычно pc
разрешение больше, а окно просмотра макета по умолчанию имеет значение 980px
. viewport
То есть , если веб-страница не задана , pc
веб-страница на мобильном терминале будет отображаться на мобильном терминале по умолчанию на основе области просмотра макета.
(2) Визуальное окно просмотра
Область визуального просмотра — это область отображения веб-сайта, видимая в браузере, и пользователь может просматривать содержимое веб-страницы, увеличивая масштаб, тем самым изменяя область визуального просмотра. Определение визуального окна просмотра эквивалентно удерживанию увеличительного стекла для наблюдения за одним и тем же объектом с разных расстояний. Визуальное окно просмотра только похоже на содержимое, отображаемое в увеличительном стекле, поэтому визуальное окно просмотра не влияет на ширину и высоту объекта. видовой экран макета.
(3) Идеальное окно просмотра
Идеальное окно просмотра — это лучшее «окно просмотра макета» с учетом физических элементов устройства.
Какая связь между разрешением и физическими пикселями DPR
?
DPR = 物理像素/分辨率
Без масштабирования одному css
пикселю соответствует один dpr
, то есть без масштабирования:
CSS像素 = 物理像素/分辨率
В макете мобильного терминала мы можем viewport
управлять макетом с помощью метатегов, например, в обычных условиях мы можем использовать следующие теги, чтобы сделать макет мобильного терминала в идеальном окне просмотра:
<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1; user-scalable=no;">
width=device-width;
Как правило, это означает ширину разрешения.С помощью этой настройки мы устанавливаем окно просмотра макета на идеальное окно просмотра.
имя атрибута | ценить | описывать |
---|---|---|
ширина | положительное число | Определяет ширину области просмотра макета в пикселях. |
высота | положительное число | Определяет высоту окна просмотра макета в пикселях, обычно не используется. |
начальный масштаб | [0,10] | Инициализируйте коэффициент масштабирования, 1 означает отсутствие масштабирования. |
минимальный масштаб | [0,10] | минимальный коэффициент масштабирования |
максимальный масштаб | [0,10] | Максимальный коэффициент масштабирования |
масштабируемый пользователем | да нет | Разрешить ли ручное масштабирование страницы, значение по умолчанию — «да». |
3. px
Адаптивный
Разрешения разных мобильных устройств различны, то есть физические css
пиксели, которые могут быть представлены пикселем, различны, поэтому, если он css
используется только px
как единица длины и ширины в , в результате невозможно достичь каждой цели с помощью набора стилей дочерней адаптации
2. Запросы СМИ
Медиа-запрос @media предназначен для определения разных стилей для разных типов мультимедиа, особенно для адаптивных страниц, вы можете написать несколько наборов стилей для разных размеров экрана, чтобы добиться адаптивных эффектов.
@media screen and (max-width: 960px){
body{
background-color:#6633FF;
}
}
@media screen and (max-width: 768px){
body{
background-color:#00FF66;
}
}
/*
通过max-width设置样式生效时的最大分辨率,上述的代码分别对分辨率在0~768px以及768px~960px的屏幕设置了不同的背景颜色。
*/
Через медиазапросы можно писать разные стили для устройств с разным разрешением для достижения отзывчивости, но недостатки медиазапросов тоже очень очевидны.При изменении размера браузера слишком много стилей нужно менять, т.е. , наборов стилей много, код выглядит очень сложно
3. Процент
Мы также можем использовать проценты для достижения адаптивных эффектов.Конкретный эффект заключается в том, что при изменении размера браузера ширина и высота компонентов в браузере могут изменяться по мере изменения браузера через процентную единицу.
Самый важный вопрос css
, чей процент является процентом подэлементов?
В обычных условиях первое, о чем мы думаем, это то, что он полностью эквивалентен родительскому элементу.Это правильная идея, но для блочной css
модели, помимо атрибутов высоты и ширины, у него есть еще такие атрибуты, как отступ, граница и маржа.
1, специальный анализ
Далее разберем на примерах
<div class="box1">
<div class="box2"></div>
</div>
.box1{
width: 200px;
height: 150px;
background-color: darkseagreen;
}
(1) Процент высоты и ширины дочернего элемента
Когда есть только атрибуты ширины и высоты
.box2{
width: 50%;
height: 50%;
background-color: darkslategray;
}
текущий результат:
(2) сверху и снизу, слева и справа
Когда дочерний элемент позиционируется по умолчанию, при установке top
процента bottom
от суммы он относится к высоте родительского элемента, а left
при установке right
процента от суммы он относится к ширине родительского элемента.
.box2{
width: 80px;
height: 60px;
position: relative;
top: 50%;
bottom: 50%;
left: 50%;
right: 50%;
background-color: darkslategray;
}
Результат операции следующий:
(3) padding
/margin
При padding
установке процента, будь то вертикальный или горизонтальный, он относится только к прямому родительскому элементу width
и тому подобному margin
.padding
.box2{
width: 80px;
height: 60px;
position: relative;
/*padding-left和padding-top均为60px,因为父元素的width为200px*/
padding-left: 30%;
padding-top:30%;
background-color: darkslategray;
}
результат операции:
(4)border-radius
Это атрибут закругленного угла, если процент установлен относительно ширины самого дочернего элемента.
.box2{
width: 80px;
height: 80px;
position: relative;
border-radius: 50%;
background-color: darkslategray;
}
результат операции:
### 2. Применение макета в процентах
Когда мы хотим установить прямоугольник с фиксированным соотношением сторон, мы можем padding
добиться этого с помощью атрибутов. Поскольку padding
процентная единица относится к ширине родительского элемента независимо от вертикального или горизонтального направления, ее можно установить padding-top
в процентах, чтобы получить адаптивный прямоугольник.
<div class="box1"></div>
.box1{
width: 600px;
height: 0;
padding-top:40%;
background-color: darkseagreen;
}
/*任意缩放,盒子大小改变,高度比例不变*/
4. Адаптивные сценарииrem
1. rem
Блок
rem
Это гибкая и расширяемая единица, которая преобразуется браузером в пиксели и отображается. В отличие от единиц em, rem
единицы относятся только к размеру шрифта корневого элемента браузера (элемента HTML), независимо от уровня вложенности. По умолчанию html
размер шрифта элемента16px
Для удобства расчетов обычно можно установить
html{
font-size:62.5% }
В этой ситуации,1rem=10px
2. rem
Недостатки макета
В адаптивном макете размер js
корневого элемента должен динамически контролироваться с помощью font-size
.
То есть между css
стилем и кодом js
существует определенная связь . font-size
И измененный код должен быть размещен css
перед стилем.
5. Осуществить самоадаптацию через vw
/vh
css3
Введена новая единица vw
/ vh
, относящаяся к окну просмотра, vw
указывающая ширину относительно окна просмотра и vh
указывающая высоту относительно окна просмотра.
vh
vw
и делятся на 100 равных частей по ширине и высоте окна, 100vh
что означает полную высоту и 50vh
половину высоты