Media and screen: CSS @media: (screen, width, type). .
Использование медиа-запросов — Веб-технологии для разработчиков
Медиазапросы используются в тех случаях , когда нужно применить разные CSS-стили, для разных устройств по типу отображения (например: для принтера, монитора или смартфона), а также конкретных характеристик устройства (например: ширины окна просмотра браузера), или внешней среды (например: внешнее освещение). Учитывая огромное количество подключаемых к интернету устройств, медиазапросы являются очень важным инструментом при создании веб-сайтов и приложений, которые будут правильно работать на всех доступных устройствах, которые есть у Ваших пользователей.
Медиа для разных типов устройств
Медиа запросы позволяют адаптировать страницу для различных типов устройств, таких как: принтеры, речевых браузеров, устройств Брайля, телевизоров и так далее. Например это правило для принтеров:
@media print { ... }
Вы также можете писать правила сразу для нескольких устройств. Например этот @media написан сразу для экранов и принтеров:
@media screen, print { ... }
Список устройств вы можете найти перейдя по этой ссылке. Но для задания более детальных и узконаправленных правил вам нужно просмотреть следующий раздел.
Media features описывают некие характеристики определенного user agent, устройства вывода или окружения. Например, Вы можете применить выбранные стили только для широкоэкранных мониторов, компьютеров с мышью, или для устройств, которые используются в условиях слабой освещенности. В примере ниже стили будут применены только когда основное устройство ввода пользователя (например мышь) будет расположено над элементами:
@media (hover: hover) { ... }
Многие медиа-выражения представляют собой функцию диапазона и имеют префиксы «min-» или «max-«. Минимальное значение и максимальное значение условия, соответственно. Например этот CSS код применяется только если ширина viewport меньше или равна 12450px:
@media (max-width: 12450px) { ... }
Если вы создаете медиа-запрос без указания значения, вложенные стили будут использоваться до тех пор, пока значение функции не равно нулю. Например, этот CSS будет применяться к любому устройству с цветным экраном:
@media (color) { ... }
Если функция не применима к устройству, на котором работает браузер, выражения, включающие эту функцию, всегда ложны. Например, стили, вложенные в следующий запрос, никогда не будут использоваться, потому что ни одно речевое устройство не имеет формат экрана:
@media speech and (aspect-ratio: 11/5) { ... }
Дополнительные примеры медиа запросов, смотрите на справочной странице для каждой конкретной функции.
Создание комплексных медиа запросов
Иногда вы хотите создать медиа-запрос, включающий в себя несколько условий. В таком случае применяются логические операторы: not
, and
, and only
. Кроме того, вы можете объединить несколько медиа-запросов в список через запятую; это позволяет применять одни и те же стили в разных ситуациях.
В прошлом примере мы видели как применяется оператор and
для группировки type и функции. Оператор
так же может комбинировать несколько функций в одно медиа-выражение. Между тем, оператор not отрицает медиазапрос, полностью инвертируя его значение. Единственный оператор не позволяет старым браузерам применять стили.
Note: In most cases, the all
media type is used by default when no other type is specified. However, if you use the not
or only
operators, you must explicitly specify a media type.
and
The and
keyword combines a media feature with a media type or other media features. This example combines two media features to restrict styles to landscape-oriented devices with a width of at least 30 ems:
@media (min-width: 30em) and (orientation: landscape) { ... }
To limit the styles to devices with a screen, you can chain the media features to the screen
media type:
@media screen and (min-width: 30em) and (orientation: landscape) { ... }
comma-separated lists
You can use a comma-separated list to apply styles when the user’s device matches any one of various media types, features, or states. For instance, the following rule will apply its styles if the user’s device has either a minimum height of 680px or is a screen device in portrait mode:
@media (min-height: 680px), screen and (orientation: portrait) { ... }
Taking the above example, if the user had a printer with a page height of 800px, the media statement would return true because the first query would apply. Likewise, if the user were on a smartphone in portrait mode with a viewport height of 480px, the second query would apply and the media statement would still return true.
not
The not
keyword inverts the meaning of an entire media query. It will only negate the specific media query it is applied to. (Thus, it will not apply to every media query in a comma-separated list of media queries.) The not
keyword can’t be used to negate an individual feature query, only an entire media query. The not
is evaluated last in the following query:
@media not all and (monochrome) { ... }
… so that the above query is evaluated like this:
@media not (all and (monochrome)) { ... }
… rather than like this:
@media (not all) and (monochrome) { ... }
As another example, the following media query:
@media not screen and (color), print and (color) { ... }
… is evaluated like this:
@media (not (screen and (color))), print and (color) { ... }
only
The only
keyword prevents older browsers that do not support media queries with media features from applying the given styles. It has no effect on modern browsers.
<link rel="stylesheet" media="only screen and (color)" href="modern-styles.css" />
Смотрите также
Media Screen CSS в адаптивной верстке
Пришло время разобраться, что такое Media Screen в CSS3 и как это применять в своих проектах. Это так называемые Медиа-запросы CSS, с помощью которых можно адаптировать элементы дизайна под разные размеры экранов. Например можно скрыть определенный блок на мобильных и наоборот показывать его только на широких экранах (десктопах). Как я с этим столкнулся. На клиентском сайте логотип на мобильных съезжает вправо, на компьютерах он наоборот слева. Была поставлена задача написать текст, который будет показан слева от лого на маленьких экранах. На больших его быть не должно. На выручку как раз и пришли медиа-запросы Media Screen CSS. Я знаю, что многие из вас очень любят, когда им показывают наглядно, поэтому приготовил пример.
Media-screen примеры
Если кто-то думает, что это очень сложно и непостижимо, то сейчас ваше мнение изменится и вы на моем примере убедитесь в том, что не так страшен черт, как его малюют. Итак, у нас есть страница, на которой есть шапка с картинкой и блок с контентом черного цвета на желтом фоне.
Для начала в head нужно добавить такую строчку:
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> |
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″/>
CSS код сейчас такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #header{ height:120px; position:relative padding:5px; } #content{ background:#fff000; padding:5px; } p { padding: 5px; } .txt { font: 65px Verdana bold; position: relative; top: 16px; color: #fff; left: 80px; } img{ margin:5px; } |
#header{ height:120px; position:relative padding:5px; } #content{ background:#fff000; padding:5px; } p { padding: 5px; } .txt { font: 65px Verdana bold; position: relative; top: 16px; color: #fff; left: 80px; } img{ margin:5px; }
Ставим пред собой задачу на экранах шириной меньше 1000 px изменять цвет текста, фона, покрасить шапку, сместить значок вправо, а слева от него будет появляться надпись. И выглядеть это будет вот так:
То есть мы произведем кардинальные изменения на странице средствами Media screen CSS. Для этого пишем те самые медиа-запросы, которые будут определять ширину экрана девайса и выдавать тот или иной вид.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | @media screen and (max-width: 1000px) { #header { background:#543567; /* Красим шапку */ } } @media screen and (min-width: 1000px) { .txt { font: 25px Verdana bold; /* Показываем заголовок */ position:relative; top; 15px; left: 30px; display:none; } } @media screen and (max-width: 1000px) { #content { background:#657493; /* Меняем цвет текста и фона содержимого */ color:#fff; } } @media screen and (max-width: 1000px) { img { float:right; /* Смещаем логотип вправо */ } } |
@media screen and (max-width: 1000px) { #header { background:#543567; /* Красим шапку */ } } @media screen and (min-width: 1000px) { .txt { font: 25px Verdana bold; /* Показываем заголовок */ position:relative; top; 15px; left: 30px; display:none; } } @media screen and (max-width: 1000px) { #content { background:#657493; /* Меняем цвет текста и фона содержимого */ color:#fff; } } @media screen and (max-width: 1000px) { img { float:right; /* Смещаем логотип вправо */ } }
Более подробно можно посмотреть код демонстрационной страницы и самостоятельно разобраться что к чему.
Демо
Изменяйте ширину окна браузера, чтобы увидеть изменения. В Хроме есть функция просмотра на разных устройствах. Клавиша F12 Фактически в Media screen CSS мы создаем новые правила, которые вступят в силу только при определенных условиях. В данном случае, если дисплей будет меньше или равен 1000 px. Если будет больше, то ничего меняться не будет.
Надеюсь, что вы уловили мою мысль, которую я хотел донести до вас касательно медиа-запросов. Таким образом можно создавать отдельные таблицы стилей CSS специально для определенных устройств и даже для печати. Такой подход будет гораздо правильней, чем прописывать все стили для каждого устройства в одном файле. Подключается это вот так:
1 | <link rel= "stylesheet" href= "device.css" media= "only screen and (max-device width:640px)"/> |
<link rel= «stylesheet» href= «device.css» media= «only screen and (max-device width:640px)»/>
Можно так же взять готовые стили из Bootstrap CSS и подогнать под свой дизайн.
CSS: Правило @media | медиа запросы
CSS предоставляет способ отображения содержимого веб-страницы по разному, в зависимости от устройства, на котором оно просматривается, или разрешения экрана (размера области просмотра в браузере) без необходимости изменения самого содержимого. Медиа запросы состоят из выражения, которое ограничивает область действия таблицы стилей и самой таблицы стилей, размещаемой в фигурных скобках.
Синтаксис
@media тип_устройства and|not|only (медиа_особенности) { CSS код; }
Также можно включать различные стили для различных устройств вывода информации с помощью атрибута media тега link:
<link rel="stylesheet" media="тип_устройства and|not|only (медиа_особенности)" href="stylesheet.css">
Типы устройств
Тип | Описание |
---|---|
all | Используется для всех типов устройств. |
aural | Используется для синтезаторов речи и звука. |
braille | Используется для тактильной обратной связи устройств Брайля. |
embossed | Используется для принтеров Брайля. |
handheld | Используется для небольших или портативных устройств. |
Используется для принтеров | |
projection | Используется для презентаций, таких как слайды. |
screen | Используется для экранов компьютеров, планшетов, смартфонов и т.д. |
speech | Используется для речевых браузеров. |
tty | Используется для носителей, использующих сетки с фиксированным шагом символов, такие как телетайпы и терминалы. |
tv | Используется для телеэкранов. |
К сожалению тип устройства дает слишком мало информации, поэтому редко используется по прямому назначению. Современные смартфоны и планшеты, ноутбуки и настольные компьютеры идентифицируют себя как тип screen. Поэтому тип носителя обычно используется для различения экранных версий документа от печатных, что позволяет совершенно по разному их оформлять:
/* только для печати */ @media print { /* скрыть меню */ #navigation { display: none; } /* начинать каждую новую страницу с заголовка h2 */ h2 { page-break-before: always; } }
Особенности устройств для медиа запросов
Особенность | Описание |
---|---|
aspect-ratio | Определяет соотношение ширины и высоты области просмотра. Значение состоит из двух положительных чисел, разделенных прямой косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «min» или «max». |
color | Определяет количество бит на цвет для устройства. Может иметь префикс «min» или «max». |
color-index | Указывает количество цветов, которое устройство может отображать. Может иметь префикс «min» или «max». |
device-aspect-ratio | Определяет соотношение ширины и высоты устройства вывода. Значение состоит из двух положительных чисел, разделенных прямой косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «min» или «max». |
device-height | Указывает высоту устройства, такого как экран компьютера (имеется в виду весь экран или страницу, а не только область просмотра). Может иметь префикс «min» или «max». |
device-width | Указывает ширину устройства, такого как экран компьютера (имеется в виду весь экран или страницу, а не только область просмотра). Может иметь префикс «min» или «max». |
grid | Определяет как устроен вывод у устройства: на основе сетки или точечный. Если устройство на основе сетки (например, терминал, телетайп или дисплей телефона, поддерживающий только один шрифт), то значение 1, в противном случае значением будет 0. |
height | Указывает высоту области просмотра, например, окно браузера. Может иметь префикс «min» или «max». |
monochrome | Указывает количесвто бит на пиксель для устройств с монохромными экранами. Может иметь префикс «min» или «max». |
orientation | Указывает в каком режиме просмотра находится дисплей: ландшафтном (ширина дисплея больше, чем высота) или портретном (высота дисплея больше, чем ширина). |
resolution | Указывает разрешение (плотность пикселей) устройства вывода. Может быть указана в dpi (точек на дюйм) или в dpcm (точек на сантиметр). Может иметь префикс «min» или «max». |
scan | Определяет процесс сканирования телевизионных устройств вывода. |
width | Указывает ширину области просмотра, например, окно браузера. Может иметь префикс «min» или «max». |
Наиболее важными из особенностей устройств для медиа запросов являются min-width и max-width, позволяющие создавать гибкие конструкции, в которых изменение макета сайта происходит на основе области просмотра браузера, установленного на устройстве.
Медиа запросы сочетают в себе тип устройства и условие, состоящее из одной или нескольких особенностей устройства. Например правила в следующем запросе применяются только при просмотре на экране с минимальной шириной области просмотра 600px:
@media screen and (min-width: 600px) {}
Медиа запросы не чувствительны к регистру, но скобки вокруг условия являются обязательной частью синтаксиса запроса. Оператор and здесь используется для объединения типа устройства с условием, но он также может объединять несколько особенностей устройства вместе:
@media (max-width: 500px) and (min-aspect-ratio: 1/1) {}
Этот медиа запрос имеет значение true, если устройство для просмотра имеет максимальное разрешение области просмотра 500px и соотношение сторон 1:1 (квадрат или ландшафтный просмотр). Обратите внимание, что в этом запросе нет типа устройства, поэтому это правило будет применяться ко всем типам устройств.
Логические операторы
В дополнение к логическому оператору and (и), медиа запросы могут включать в себя логическое not (не), only (только) и or (или). Запятая (,) используется в качестве оператора or, то есть каждый запрос рассматривается индивидуально. Это означает, что с помощью запросов, разделенных запятой, можно одно правило @media ориентировать на различные типы устройств и их особенности.
Следующее правило @media применяется либо к устройству с минимальной областью просмотра 700px в ширину, либо если устройство находится в ландшафтном режиме просмотра:
@media (min-width: 700px), (orientation: landscape) {}
Оператор not используется для отрицания условий медиа запроса. Соответствующие стили применяются, если устройство не соответствует указанным вслед за not параметрам. Например следующее правило применяется только в том случае, если экран устройства не 800px в ширину:
@media not screen and (device-width: 800px) {}
Оператор only применяется, когда нужно скрыть правило @media от старых браузеров, которые не поддерживают описываемый синтаксис. Браузеры, которые поддерживают медиа запросы, оператор only просто проигнорируют.
/* Не работает в старых браузерах */ @media only screen and (min-width: 600px) {}
Почему мои медиа-запросы CSS3 не работают на мобильных устройствах?
в стилях.css, я использую медиа-запросы, оба из которых используют вариант:
/*--[ Normal CSS styles ]----------------------------------*/
@media only screen and (max-width: 767px) {
/*--[ Mobile styles go here]---------------------------*/
}
сайты изменяют размер до макета, который я хочу в обычном браузере (Safari, Firefox), когда я сжимаю окно, однако мобильный макет вообще не отображается на телефоне. Вместо этого я просто вижу CSS по умолчанию.
может ли кто-нибудь указать мне в правильном направлении?
9 ответов
все три из них были полезными советами, но похоже, мне нужно было добавить мета-тег:
<meta content="width=device-width, initial-scale=1" name="viewport" />
теперь он, похоже, работает как в Android (2.2), так и в iPhone…
344
автор: redconservatory
Не забудьте иметь стандартные объявления css выше медиа-запрос или запрос также не будет работать.
.edcar_letter{
font-size:180px;
}
@media screen and (max-width: 350px) {
.edcar_letter{
font-size:120px;
}
}
42
автор: The4thIceman
Я подозреваю, что ключевое слово only
может быть проблема здесь. У меня нет проблем с использованием медиа-запросов, таких как:
@media screen and (max-width: 480px) { }
20
автор: Moin Zaman
я использовал bootstrap на пресс-сайте, но он не работал на IE8, я использовал css3-mediaqueries.JS javascript, но все еще не работает. если вы хотите, чтобы ваш медиа-запрос работал с этим файлом javascript, добавьте экран в строку медиа-запроса в css
вот пример :
<meta name="viewport" content="width=device-width" />
<style>
@media screen and (max-width:900px) {}
@media screen and (min-width:900px) and (max-width:1200px) {}
@media screen and (min-width:1200px) {}
</style>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<script type="text/javascript" src="css3-mediaqueries.js"></script>
css Link line так же просто, как и выше.
сегодня у меня была аналогичная ситуация. Медиа-запрос не работает. Через некоторое время я обнаружил, что место после » и » отсутствует. Правильный медиа-запрос должен выглядеть так:
@media screen and (max-width: 1024px) {}
@media all and (max-width:320px)and(min-width:0px) {
#container {
width: 100%;
}
sty {
height: 50%;
width: 100%;
text-align: center;
margin: 0;
}
}
.username {
margin-bottom: 20px;
margin-top: 10px;
}
1
автор: Ketam Srinivas
Я использую несколько методов в зависимости от. В той же таблице стилей я использую: @media (max-width: 450px), или для отдельного убедитесь, что у вас есть ссылка в заголовке правильно. Я посмотрел на ваш fixmeup, и у вас есть запутанный массив ссылок на css. Он действует, как вы говорите, также на HTC desire S.
убедитесь, что все ваши комментарии css используют эту разметку /*
… */
— который является правильной разметкой комментария для css в соответствии с MDN
Я скопировал bootstrap 4 media queries прямо из своих документов, и каждый запрос помечен той же разметкой комментариев в стиле javascript //
!
кроме того, IntelliJ text editor позволил мне комментировать определенные строки css в меньшем файле, но автоматически использовать //
. Это не бесплатная программа, поэтому я предположил, что все правильно. Существует меню предпочтений для исправления этого поведения.
кроме того, проверьте свой css с надежным онлайн-валидатором. вот на В3
0
автор: Cameron Donahue
для меня я указал max-height
вместо max-width
.
Если это вы, пойти изменить его !
@media screen and (max-width: 350px) { // Not max-height
.letter{
font-size:20px;
}
}
0
автор: Ruto Collins
Использование медиа-запросов — Веб-технологии для разработчиков
Медиазапросы используются в тех случаях, когда нужно применить разные CSS-стили, для разных устройств по типу отображения (: для принтера, монитора или смартфона), а также специальные характеристики устройства (например: ширины окна просмотра) или внешней среды (например: внешнее освещение). Благодаря огромному количеству подключаемых к интернету устройств, программным обеспечением являются важными инструментами по созданию веб-сайтов и приложений, которые будут правильно работать на всех доступных устройствах, которые есть у Ваших пользователей.
Медиа для разных типов устройств
Медиа запросов позволяет адаптировать страницу для различных устройств, таких как принтеры, речевых браузеров, устройств Брайля, телевизоров и так далее. Например это правило для принтеров:
@media print {...}
Вы также можете писать правила сразу для нескольких устройств. Например этот @media написан сразу для экранов и принтеров:
@media screen, print {...}
Список устройств вы можете найти перейдя по этой ссылке.Но для задания более подробных и узконаправленных правил вам нужно просмотреть следующий раздел.
Media features описывают некие характеристики определенного пользовательского агента, устройства вывода или окружения. Например, Вы можете применить выбранные стили только для широкоэкранных мониторов, компьютеров с мышью, или для устройств, которые используются в условиях слабой освещенности. В примере ниже применены только когда основное устройство ввода пользователя (например, мышь) будет расположено над элементами:
@media (hover: hover) {...}
Многие медиа-выражения имеют длину диапазона и имеют префиксы «min-» или «max-«. Минимальное значение и максимальное значение условия, соответственно. Например, этот код CSS используется, если ширина области просмотра меньше или равна 12450px:
@media (max-width: 12450px) {...}
Если вы создадите медиа-запрос без указания, вложенные стили инет до тех пор, пока значение функции не равно нулю. Например, этот CSS будет к любому устройству с цветным экраном:
@media (цвет) {...}
Если функция не применима к устройству, на котором работает браузер, включающие эту функцию, всегда ложны. Например, стили, вложенные в следующий запрос, никогда не вложенные, потому что ни одно речевое устройство не имеет формат экрана:
@media speech и (соотношение сторон: 11/5) {...}
Дополнительные примеры медиа запросов, смотрите справочную страницу для каждой конкретной функции.
Создание комплексных медиа запросов
Иногда вы хотите создать медиа-запрос, включающий в себя несколько условий.В таком случае применяются логические операторы : , а не
, и
, а только
. Кроме того, вы можете объединить несколько медиа-запросов в список через запятую; это позволяет применять одни и те же стили в разных ситуациях.
В прошлом примере использовали оператор и
для группировки типа и функции. Оператор и
так же может комбинировать несколько функций в одно медиа-выражение. Между тем, оператор не отрицает медиазапрос, полностью инвертируя его значение.Единственный оператор не позволяет старым браузерам применять стили.
Примечание: В большинстве случаев тип носителя все
используется по умолчанию, если другой тип не указан. Однако, если вы используете операторы , а не
или , только операторы
, вы должны явно указать тип носителя.
и
Ключевое слово и
объединяет медиа-функцию с типом медиа или другими медиа-функциями. В этом примере сочетаются две мультимедийные функции, чтобы ограничить стили для устройств с альбомной ориентацией и шириной не менее 30 ems:
@media (min-width: 30em) и (ориентация: альбомная) {...}
Чтобы ограничить стили устройствами с экраном, можно связать функции мультимедиа с экраном
Тип носителя:
@media screen и (min-width: 30em) и (ориентация: альбомная) {...}
списков, разделенных запятыми
Вы можете использовать список, разделенный запятыми, для применения стилей, когда устройство пользователя соответствует любому из различных типов, функций или состояний мультимедиа. Например, следующее правило будет применять свои стили, если устройство пользователя имеет минимальную высоту 680 пикселей или является экранным устройством в портретном режиме:
@media (min-height: 680px), экран и (ориентация: портретная) {...}
В приведенном выше примере, если у пользователя есть принтер с высотой страницы 800 пикселей, оператор мультимедиа вернет истину, потому что будет применяться первый запрос. Точно так же, если бы пользователь находился на смартфоне в портретном режиме с высотой области просмотра 480 пикселей, будет применяться второй запрос, и оператор мультимедиа все равно вернет истину.
не
Ключевое слово , а не
инвертирует значение всего медиа-запроса. Это только отрицает конкретный медиа-запрос, к которому он применяется.(Таким образом, это не будет применяться к каждому медиа-запросу в списке медиа-запросов, разделенных запятыми.) Ключевое слово , а не
не может использоваться для отмены отдельного запроса функции, только всего медиа-запроса. , а не
, оценивается последним в следующем запросе:
@media not all and (монохромный) {...}
… так что вышеупомянутый запрос оценивается так:
@media not (all and (монохромный)) {...}
… а не так:
@media (не все) и (монохромные) {...}
В качестве другого примера, следующий медиа-запрос:
@media not screen and (color), print and (color) {...}
… оценивается так:
@media (не (экран и (цвет))), печать и (цвет) {...}
только
Ключевое слово only
не позволяет старым браузерам, которые не поддерживают медиа-запросы с медиа-функциями, применять заданные стили. Не влияет на современные браузеры.
Смотрите также
.Media Screen CSS в адаптивной верстке
Пришло время разобраться, что такое Media Screen в CSS3 и как это применять в своих проектах. Это так называемые Медиа-запросы CSS, с помощью которых можно адаптировать элементы дизайна под разные размеры экрана. Например, можно скрыть блок на мобильных и наоборот показывать его только на широких экранах (десктопах). Как я с этим столкнулся. На клиентском сайте логотип на мобильных съезжает вправо, на компьютерх он наоборот слева.Была поставлена задача написать текст, который будет показан слева от лого на маленьких экранах. На больших его не должно быть. На выручку как раз и пришли медиа-запросы Media Screen CSS. Я знаю, что многие из вас очень любят, когда им показывают наглядно, поэтому приготовил пример.
Медиа-экран примеры
. Итак, у нас есть страница, на которой есть шапка с картинкой и блок с контентом черного цвета на желтом фоне.
Для начала в голову нужно добавить такую строчку:
CSS код сейчас такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 год 22 | #header { высота: 120 пикселей; позиция: относительная отступ: 5 пикселей; } #content { фон: # fff000; отступ: 5 пикселей; } п { отступ: 5 пикселей; } .текст { шрифт: 65px Verdana bold; положение: относительное; верх: 16 пикселей; цвет: #fff; слева: 80 пикселей; } img { маржа: 5 пикселей; } |
#header { высота: 120 пикселей; позиция: относительная отступ: 5 пикселей; } #content { фон: # fff000; отступ: 5 пикселей; } п { отступ: 5 пикселей; } .текст { шрифт: 65px Verdana bold; положение: относительное; верх: 16 пикселей; цвет: #fff; слева: 80 пикселей; } img { маржа: 5 пикселей; }
Ставим пред собой задача на экранах шириной меньше 1000 пикселей, чтобы изменить цвет текста, фона, покрасить шапку, сместить значок вправо, а слева от него будет появляться надпись.И это будет выглядеть вот так:
То есть мы произведем кардинальные изменения на странице средств массовой информации на экране CSS. Для этого пишем те самые медиа-запросы, которые определяют тот же самый формат девайса и выдавать тот или иной вид.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 год 22 23 24 25 | @media screen and (max-width: 1000px) { #header { фон: # 543567; / * Красим шапку * / } } @media screen и (min-width: 1000px) { .текст { шрифт: 25px Verdana bold; / * Показываем заголовок * / положение: относительное; Топ; 15 пикселей; слева: 30 пикселей; дисплей: нет; } } @media screen и (max-width: 1000 пикселей) { #content { фон: # 657493; / * Меняем цвет текста и фона содержимого * / цвет: #fff; } } @media screen и (max-width: 1000 пикселей) { img { float: right; / * Смещаем логотип вправо * / } } |
@media screen and (max-width: 1000px) { #header { фон: # 543567; / * Красим шапку * / } } @media screen и (min-width: 1000px) { .текст { шрифт: 25px Verdana bold; / * Показываем заголовок * / положение: относительное; Топ; 15 пикселей; слева: 30 пикселей; дисплей: нет; } } @media screen и (max-width: 1000 пикселей) { #content { фон: # 657493; / * Меняем цвет текста и фона содержимого * / цвет: #fff; } } @media screen и (max-width: 1000 пикселей) { img { float: right; / * Смещаем логотип вправо * / } }
Более подробно можно посмотреть код демонстрационной страницы и самостоятельно разобраться что к чему.
Демо
Изменяйте ширину окна. В Хроме есть функция просмотра на разных устройствах. Клавиша F12 Фактически в экран мультимедиа CSS мы создаем новые правила, которые вступают в силу только при определенных условиях. В данном случае, если дисплей будет меньше или равен 1000 пикселей. Если будет больше, то ничего меняться не будет.
Надеюсь, что вы уловили мою мысль, которую я хотел донести до вас касательно медиа-запросов. Таким образом можно создать таблицу отдельных стилей CSS специально для определенных устройств и даже для печати.Такой подход будет гораздо правильней, чем прописывать все стили для каждого устройства в одном файле. Подключается это вот так:
1 |
Можно так же взять готовые стили из Bootstrap CSS и подогнать под свой дизайн.
.
CSS: Правило @media | медиа запросов
CSSпозволяет отображать веб-страницы по разному, в зависимости от устройства, на котором оно просматривается, или разрешение экрана (размера области просмотра в браузере) без необходимости изменения самого содержимого. Медиа запросы состоят из выражения, которое ограничивает область действия таблицы стилей и самой таблицы стилей, размещаемой в фигурных скобках.
Синтаксис
@media тип_устройства и | не | только (медиа_особенности) { CSS код; }
Также можно различные стили для различных устройств вывода информации с помощью атрибута media тега link:
Типы устройств
Тип | Описание |
---|---|
все | Используется для всех типов устройств. |
слуховой | Используется для синтезаторов речи и звука. |
Брайля | Используется для тактильной обратной связи устройств Брайля. |
с тиснением | Используется для принтеров Брайля. |
портативное | Используется для небольших или портативных устройств. |
печать | Используется для принтеров |
проекция | Используется для презентаций, как слайды. |
экран | Используется для экранов компьютеров, планшетов, смартфонов и т.д. |
речь | Используется для речевых браузеров. |
tty | Используется для носителей, использующих сетки с фиксированным шагом символов, таких как телетайпы и терминалы. |
телевизор | Используется для телеэкранов. |
К сожалению, тип устройства дает слишком мало информации, поэтому редко используется по прямому назначению. Современные смартфоны и планшеты, ноутбуки и настольные компьютеры идентифицируют себя как тип экрана. Поэтому тип носителя обычно используется для различения экранных версий документа от печатных, что позволяет совершенно по разному оформлять:
/ * только для печати * / @media print { / * скрыть меню * / #navigation {display: none; } / * начинать каждую новую страницу с заголовка h2 * / h2 {разрыв страницы перед: всегда; } }
Особенности устройств для медиа запросов
Особенность | Описание |
---|---|
соотношение сторон | Определение ширины и высоты области просмотра.Значение состоит из двух положительных чисел, разделенных прямым косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «мин» или «макс». |
цвет | Определяет количество бит на цвет для устройства. Может иметь префикс «мин» или «макс». |
color-index | Указывает количество цветов, которое устройство может отображать. Может иметь префикс «мин» или «макс». |
device-aspect-ratio | Определение распределения ширины и высоты вывода устройства. Значение состоит из двух положительных чисел, разделенных прямым косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «мин» или «макс». |
Высота устройства | Указывает высоту устройства, такого как экран компьютера (имеется в виду весь экран или страницу, а не только область просмотра).Может иметь префикс «мин» или «макс». |
ширина устройства | Указывает ширину устройства, такого как экран (имеется в виду весь экран или страницу, а не только область просмотра). Может иметь префикс «мин» или «макс». |
сетка | Определяет, как устроен вывод у устройства: на основе сетки или точечный. Если устройство на основе сетки (например, терминал, телетайп или телефона, поддерживающий только один шрифт), то значение 1, в противном случае дисплей будет 0. |
высота | Высота экрана просмотра, например, окно. Может иметь префикс «мин» или «макс». |
монохромный | обозначает количество бит на пиксель для устройств с монохромными экранами. Может иметь префикс «мин» или «макс». |
ориентация | Указывает в каком режиме просмотра находится дисплей: ландшафтном ширина (дисплей больше, чем высота) или портретном (высота дисплея больше, чем ширина). |
разрешение | Указывает разрешение (плотность пикселей) вывод устройства. Может быть указана в dpi (точек на дюйм) или в dpcm (точках на сантиметр). Может иметь префикс «мин» или «макс». |
scan | Определяет процесс сканирования устройств вывода. |
ширина | Указывает ширину области просмотра, например, окно. Может иметь префикс «мин» или «макс». |
Наиболее важными из устройств для медиа-запросов являются минимальная ширина и максимальная ширина, позволяющие создавать гибкие конструкции, в которых позволяет создавать гибкие конструкции, которые позволяют создавать гибкие конструкции, установленное на устройстве.
Медиа требований сочетают в себе условие устройства, состоящее из одного или нескольких вариантов устройства. Пример правила в следующем запросе применяются только при просмотре на странице с минимальной шириной области просмотра 600px:
@media screen и (min-width: 600 пикселей) {}
Медиа запросов не чувствительны к запросу, но скобки вокруг условий являются обязательной частью синтаксиса запроса. Оператор и здесь используется для объединения типа устройства с условием.
@media (max-width: 500 пикселей) и (min-aspect-ratio: 1/1) {}
Этот медиа-запрос имеет значение true, если устройство для просмотра имеет максимальное разрешение области просмотра 500px и соотношение сторон 1: 1 (квадратный или ландшафтный просмотр).Обратите внимание, что в этом запросе нет правил типа устройств.
Логические операторы
В дополнение к логическому оператору и (и), дополнительные запросы могут быть включены в себя логическое не (не), только (только) и или (или). Запятая (,) используется в качестве оператора или есть каждый запрос индивидуально. Это означает, что с помощью запросов, разделенных запятой, можно одно правило @media ориентировать на различные устройства и особенности их.
Следующее правило @media как к устройству с минимальной областью просмотра 700px в ширину, либо если устройство находится в ландшафтном режиме просмотра:
@media (min-width: 700px), (ориентация: альбомная) {}
Оператор не используется для отрицания условий медиа запроса. Следующие стили применяются, если устройство не соответствует указанным следующим за не параметрами. Например, следующее применяемое устройство в том случае, если экран не 800px в ширину:
@media, а не экран, а (ширина устройства: 800 пикселей) {}
Используется только метод, когда нужно скрыть @media от старых браузеров, которые не описываемый синтаксис.Браузеры, которые, стандартные запросы, оператор только просто проигнорируют.
/ * Не работает в старых браузерах * / Только экран @media и (min-width: 600 пикселей) {}.
Почему мои медиа-запросы CSS3 не работают на мобильных устройствах?
в стилях.css, я использую медиа-запросы, оба они используют вариант:
/ * - [Обычные стили CSS] ---------------------------------- * /
@media only screen и (max-width: 767px) {
/ * - [Здесь можно найти мобильные стили] --------------------------- * /
}
сайтов изменяют размер до макета, который я хочу в обычном браузере (Safari, Firefox), когда я сжимаю окно, однако мобильный макет вообще не отображается на телефоне.Вместо этого я просто вижу CSS по умолчанию.
может ли кто-нибудь указать мне в правильном направлении?
9 ответов
все три из них были полезными советами, но похоже, мне нужно было добавить мета-тег:
теперь он, похоже, работает как в Android (2.2), так и в iPhone …
344
автор: redconservatory
Не забудьте иметь стандартные объявления css выше медиа-запрос или запрос также не будет работать.
.edcar_letter {
размер шрифта: 180 пикселей;
}
@media screen и (max-width: 350px) {
.edcar_letter {
размер шрифта: 120 пикселей;
}
}
42
автор: The4thIceman
Я подозреваю, что используйте слово только
может быть проблемой здесь.У меня нет проблем с использованием медиа-запросов, таких как:
@media screen и (макс. Ширина: 480 пикселей) {}
20
автор: Moin Zaman
я использовал bootstrap на пресс-сайте, но он не работал на IE8, я использовал css3-mediaqueries.JS javascript, но все еще не работает. Если вы хотите, чтобы ваш медиа-запрос работал с этим файлом javascript, введите экран в строку медиа-запроса в css
вот пример:
<стиль>
@media screen и (max-width: 900 пикселей) {}
@media screen и (min-width: 900px) и (max-width: 1200px) {}
@media screen и (min-width: 1200 пикселей) {}
css Линия ссылки так же просто, как и выше.
сегодня у меня была аналогичная ситуация. Медиа-запрос не работает. Через некоторое время я обнаружил, что место после «и» отсутствует. Правильный медиа-запрос должен выглядеть так:
@media screen и (max-width: 1024px) {}
@media all and (max-width: 320px) and (min-width: 0px) {
#container {
ширина: 100%;
}
sty {
высота: 50%;
ширина: 100%;
выравнивание текста: центр;
маржа: 0;
}
}
.имя пользователя {
нижнее поле: 20 пикселей;
маржа сверху: 10 пикселей;
}
1
автор: Кетам Шринивас
Я использую несколько методов в зависимости от. В той же таблице стилей я использую: @media (max-width: 450px), или для отдельного убедитесь, что у вас есть ссылка в заголовке правильно.Я посмотрел на ваш fixmeup, и у вас есть запутанный массив ссылок на css. Он действует, как вы говорите, в том числе на HTC desire S.
убедитесь, что все ваши комментарии css используют эту разметку / *
… * /
— который является правильной разметкой комментария для css в соответствии с MDN
Я скопировал bootstrap 4 медиа-запроса прямо из своих документов, и каждый запрос помечен той же разметкой комментариев в стиле javascript //
!
кроме того, текстовый редактор IntelliJ позволил мне комментировать строки css в меньшем файле, но автоматически использовать //
.Это не бесплатная программа, поэтому я предположил, что все правильно. Существует меню предпочтений для исправления этого поведения.
кроме того, проверьте свой css с надежным онлайн-валидатором. вот на В3
0
автор: Кэмерон Донахью
для меня я указал max-height
вместо max-width
.
Если это вы, пойти изменить его!
@media screen and (max-width: 350px) {// Не max-height
.письмо{
размер шрифта: 20 пикселей;
}
}
0
автор: Руто Коллинз
.