Как сделать ширину тела равной ширине устройства автоматически в медиа-запросе 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/