Как сделать ширину тела равной ширине устройства автоматически в медиа-запросе CSS3?
Сейчас я делаю мобильный сайт и пытаюсь настроить таргетинг на различные устройства, используя медиа-запросы CSS3. Часть моего кода выглядит следующим образом:
@media screen and (max-width:320px) {
body {
width: 320px;
}
/* some other style */
}
Как вы можете видеть, я должен явно установить ширину тела, чтобы убедиться, что она не отображает ширину, установленную для рабочего стола в моем обычном css, который равен 920px. Мне интересно, есть ли способ, которым ширина тела может быть автоматически установлена на ширину устройства, и мне не нужно устанавливать это вручную каждый раз, когда я создаю новый @media
.
Кстати, я также добавляю следующий код внутри тега head
:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
Ответы
Ответ 1
Просто используйте width: auto;
Разница между width: 100%;
и width: auto;
заключается в том, что внешняя ширина для 100% составляет 100% + padding-left + padding-right
, inner 100%
. Внешняя ширина width: auto
равна 100%
, внутренняя ширина 100% - padding-left - padding-right
тогда и только тогда, когда display
есть block
и не установлен float
(и до тех пор, пока не будет пропущен элемент без очистки).
Ответ 2
Вы также можете использовать
width: 100vw;
Это установит элемент на 100% ширины окна просмотра.
Вы можете проверить совместимость своих браузеров, прежде чем добавлять:
http://caniuse.com/#search=vw
Дополнительная информация о размерах видовых экранов:
https://css-tricks.com/viewport-sized-typography/