Я должен использовать Макс-устройства-ширина и максимальная ширина?
С помощью CSS медиа-запросов вы можете использовать max-device-width
для определения ширины устройства (например, устройства iPhone или Android) и / или max-width
это нацелено на ширину страницы.
если вы используете max-device-width
, при изменении размера окна браузера на рабочем столе, CSS не изменится, потому что ваш рабочий стол не меняет размер.
если вы используете max-width
, при изменении размера окна браузера на рабочем столе может отображаться мобильный стиль, например удобные для прикосновения элементы и меню и тому подобное.
таргетинг на конкретные браузеры (и устройства?) теперь устарел, и вы должны быть немного более агностиком с тем, что вы нацелены. Это относится и к медиа-запросам?
почему вы нацелились на один над другим? Какой из них рекомендуется?
это пример медиа-запроса, который я использую на производственном веб-сайте:
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (min-device-height: 480px) and (max-device-height: 640px) {
/* Change a menu to fit the screen better, etc... */
}
Я склонен использовать оба max-device-width
и max-width
.
3 ответа:
TL; DR
если вы делаете отзывчивый сайт, вы, вероятно, хотите использовать
min-width
/max-width
, а неmin-device-width
/max-device-width
для того, чтобы ориентироваться на более широкий диапазон размеров экрана.не забудьте указать мета тег viewport на документ:
<meta name="viewport" content="width=device-width, initial-scale=1">
объяснение
из-за всех различных возможных разрешений экрана и плотности пикселей данное устройство может иметь, пиксель-это не пиксель потому что есть несколько вещей, которые следует учитывать (масштабирование, плотность пикселей, разрешение и размер экрана, ориентация устройства, соотношение сторон и т. д..). В этом случае пиксель фактически называется "оптический эталонный блок" а не физический аппаратный пиксель.
к счастью, вы можете указать мета тег viewport на
<head>
раздел вашего документа для управления шириной и масштабированием видовой экран браузера. Если этот тег имеетcontent
стоимостьюwidth=device-width
, ширина экрана соответствует устройству независимых пикселей и будет гарантировать, что все различные устройства должны масштабироваться и вести себя последовательно.<meta name="viewport" content="width=device-width, initial-scale=1">
С точки зрения медиа-запросов, вы, вероятно, хотите использовать
max-width
, а неmax-device-width
Сmax-width
будет нацелен на видовой экран (текущее окно браузера), в то время какmax-device-width
будет нацелен на фактический полный экран устройства размер/разрешение.другими словами, если вы используете
max-device-width
, вы не увидите различные медиа-запросы, применяемые при изменении размера Вашего браузера рабочего стола, потому что в отличие отmax-width
, учитывается только фактический полноэкранный размер устройства; не текущий размер окна браузера.это имеет огромное значение, если вы пытаетесь создать адаптивный макет, потому что сайт не будет реагировать при изменении размера браузера. Кроме того, если вы используете
max-device-width
запросы мультимедиа, которые вы используете для целевых устройств с меньшими экранами, не будут применяться к рабочим столам даже при изменении размера окна браузера вниз, чтобы соответствовать указанному меньшему размеру экрана.этой статья о разработчиках Google крайне не поощряет использование
max-device-width
:Google Developers-Web Fundamentals-Responsive CSS media queries
также можно создавать запросы на основе на
*-device-width
, хотя эта практика приветствуется.разница тонкая, но очень важная:
min-width
зависит от размера окна браузера, тогда какmin-device-width
зависит от размера экрана. К сожалению, некоторые браузеры, в том числе устаревший браузер Android, могут не сообщать о ширине устройства должным образом и вместо этого сообщать о размере экрана в пикселях устройства вместо ожидаемой ширины видового экрана.кроме того, с помощью
*-device-width
может предотвратить адаптацию контента на настольных компьютерах или других устройствах, которые позволяют изменять размер windows, поскольку запрос основан на фактическом размере устройства, а не на размере окна браузера.Читайте Далее:
Если вы используете max-width, при изменении размера окна браузера на рабочем столе Вам может быть показан мобильный стиль, например, сенсорные элементы и меню и тому подобное.
меня шокирует, что, кажется, популярное мнение, что это желательно. Я не понял, был ли дизайн жидкости/жидкости до того, как мобильный телефон считался плохим по неправильным или правильным причинам. Мне кажется, что это просто более причудливая версия жидкий макет, но тот, который дизайнеры по какой-то причине обнимают.
когда в середине 2000-х годов дизайнерское сообщество в целом решило перейти на сторону фиксированных макетов над жидкостью, это было связано с тем, что переплавка текста препятствовала разборчивости, что часто приводило к вдовам и другим типографским артефактам. Кроме того, поддержание кодовой базы часто было сложно от дизайна до дизайна, чтобы элементы не сталкивались и т. д. Единственное различие между жидкими макетами и отзывчивым дизайном заключается в том, что отзывчивый, из-за лучшие браузеры и распространение масонских фреймворков облегчают его выполнение.
Я лично использую min / max-device-width, потому что я предпочитаю следовать соглашениям о настольных документах, которые имеют десятилетия приоритета. Не все документы, которые вы открываете в интернете, будут вести себя таким образом на рабочем столе, а также другие типы документов или приложений, которые вы загружаете на свой рабочий стол. Страницы, разработанные до доминирования мобильных устройств, так же, как MS Word, Photoshop и т. д. держите их прокрутите позиции и не меняйте их макеты, позволяя пользователям отслеживать содержимое в потоке страниц при выполнении несвязанной задачи управления окнами.
Я обычно использую 3 точки останова: один для телефонов, один для планшета и один для рабочего стола. Рабочий стол и часто, по крайней мере, пейзажный портрет фиксированы, а портрет планшета и ниже являются жидкими. Это сочетание Адаптивного и отзывчивого позволяет рабочему столу вести себя как рабочий стол сайта, сохраняя меня от необходимости к макету 10-нечетные отдельные макеты мобильных устройств фиксированной ширины. Текст не переплавляется на мобильных устройствах, потому что видовой экран не может быть изменен.
избегайте ширины устройства. Причина в том, что вы не можете знать, как браузеры пользователей реагируют на него.
для IOS это кажется простым, по крайней мере, с Safari. Кажется, что это один единственный ответ ширины устройства, независимый от ориентации. Кроме того, ширина устройства указывается только для более короткой стороны устройства. Я проверил это на iPhone 4S и iPad. Они ответили на 320 и 768 соответственно независимо от того, какая ориентация.
для Android это более непредсказуемо. Я проверил шесть браузеры на Huawei Ascend Y330 (браузер Android по умолчанию, Chrome, Opera, Firefox, Firefox Beta, Dolphin). Ответ зависит от типа браузера и ориентации.
Я тестировал на странице с запросом (max-device-width: ***px) и чтобы узнать, какое значение px мне нужно заполнить, чтобы получить запрос в истинном состоянии. Были четыре разных значения (320, 480, 534, 800) в зависимости от типа браузера и ориентации. Это делает ширину устройства непригодной.