Как работает bootstrap на мобильных телефонах с полным hd (1920 × 1080)?

В учебном пособии Bootstrap говорится, что для мобильных устройств (< 768px) есть .col-xs-*. Мой вопрос в том, что если я создаю сайт для небольших мобильных телефонов с использованием классов .col-xs-*, тогда это правило css будет применяться только к тем устройствам, ширина которых меньше 768 пикселей. В настоящее время есть полноприводные мобильные телефоны с шириной 1080 пикселей на 5-дюймовом дисплее. Так будут ли эти мобильные устройства работать как настольный компьютер (≥992px) для моего загрузочного css? Я хочу, чтобы мой css был таким же для любого 5-дюймового экрана мобильного устройства, будь то HD или Full HD.

Ответы

Ответ 1

TL; DR

пиксели CSS не равны физическим пикселям. Пусть каждый из устройств/браузеров выяснит, как они должны отображать ваш контент, скорее всего, все будет правильно.

Экскурсия: медиа-запросы Bootstraps

Во-первых, давайте посмотрим, как работает Bootstrap. Где-то в стандартном bootstrap.css вы найдете этот код (слегка модифицированный и сокращенный для простоты):

/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */

/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm-min) { ... }

/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md-min) { ... }

/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg-min) { ... }

Код, явно заимствованный из официальных загрузочных документов.

Какое разрешение имеет ваш экран?

Итак, как определяется ваш браузер, какие медиа-запросы релевантны? Предположим, что у него есть свойство, которое я бы назвал magicalWidth.

Ваш браузер, чем сравнивает magicalWidth с @media (min-width: @screen-sm-min), а если magicalWidth больше или равен @screen-sm-min, он учитывает все определения внутри { ... }, иначе он просто игнорирует их. То же самое касается всех других медиа-запросов.

Теперь, что такое magicalWidth? Я могу сказать вам, что наиболее вероятно не ширина экрана или окна браузера в (физических) пикселях. CSS использует концепцию логических пикселей для вычисления любого измерения, а наш magicalWidth сверху - это точно ширина вашего устройства или окна браузера в логических пикселях. Вы можете легко проверить это самостоятельно, взгляните на следующий пример:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
  <div class="col-sm-6 col-md-4 col-lg-3" style="background-color:#f00;">Test 1</div>
  <div class="col-sm-6 col-md-4 col-lg-3" style="background-color:#ff0;">Test 2</div>
  <div class="col-sm-6 col-md-4 col-lg-3" style="background-color:#0f0;">Test 3</div>
  <div class="col-sm-6 col-md-4 col-lg-3" style="background-color:#0ff;">Test 4</div>
</div>

Ответ 2

Если вы видите, что в бутстрапе требуется метатег с именем viewport

<meta name="viewport" content="width=device-width, initial-scale=1">

См. использование этого тега в Bootstrap

Что делать, если кто-то не использует этот тег?

Без этого метатега бутстрап будет работать так же, как вы объяснили в своем вопросе

Теперь, если вы видите метатег, есть свойство с именем width, которое устанавливается на device-width.

Теперь, что такое ширина устройства?

Когда вы идете на рынок и покупаете HD-телефон с разрешением 1080 * 1920, тогда есть также что-то называемое коэффициент пикселя устройства, связанный с каждым устройством (от 1, 2,3,4 и более для HD-устройств).

 

Как вычисляется ширина устройства?

ширина устройства вычисляется по формуле

device-width = real-width/ratio-pixel-ratio

Ширина устройства задает ширину страницы для логического CSS-пиксели и составляет около 360 пикселей или 480 пикселей (вуаля теперь у каждого телефона такая же)

Какие пиксели используют медиа-запросы, на которых построен бутстрап?

Запросы в средствах массовой информации используют пиксели CSS, которые теперь изменены на что-то вроде 360 * 480.

Без метатега viewport было 1080 CSS пикселей в ширину, но с этим тегом теперь есть примерно 360 или 480 пикселей CSS.


Для примера, если вы покупаете Lenovo K3 Примечание о разрешении 1920 * 1080, которое имеет коэффициент пикселя устройства 3, тогда ширина устройства будет

1080/3 = 360 пикселей

который будет установлен в свойство width для метатега viewport.

Ответ 3

5inch может перевести на 480px по оси y. Любой мобильный телефон с 5-дюймовым дисплеем обычно меньше 768 пикселей. Размеры не вычисляют разрешение экрана, а фактические размеры. У меня 5-дюймовый экран 1080 full hd телефоном Android, а также мобильным телефоном с низким разрешением 540x960 точек, и это экран 4.3inch, который может перевести на 412.8px по оси y. и все они ведут себя одинаково, когда я использую .col-xs-* bootstrap css.

Мой вердикт

Что касается Ответ здесь и здесь

Я понимаю, что точки останова CSS зависят от ширины устройства, а не от разрешения экрана.