Slyweb
На разработку сайта! Скидки 50%!

CSS3 Media Queries - разным устройствам разный стиль!

Всё более серьёзно находят поддержку среди браузеров новые стандарты HTML5 и CSS3, новые технологии и платформы для мобильных устройств. В скором будущем, создавая сайт на ПК, необходимо будет задумываться о его оптимизации для мобильных устройств, иначе Вы рискуете потерять существенную часть посетителей. Рано или поздно, но придётся перейти на CSS3, и что нужно будет знать хорошо, так точно CSS3 Media Queries. Я выбрал CSS3 Media Queries как материал для написания статьи, потому что CSS3 Media Queries представляет удобный набор правил, с помощью которых можно размещать содержимое на сайте подводя его под определённые размеры или разрешение экрана и при этом обходится без javascript.

Сейчас для правильного отображения элементов под разные разрешения или размеры приходится использовать javascript. Со временем надобность в использовании javascript, думаю, отпадёт именно из-за CSS3 Media Queries.

Посмотрите на примеры четырёх изображений, если Вы измените размеры окна браузера, то размеры изображений пропорционально уменьшатся, что достигается благодаря CSS3 Media Queries без javascript, более того изменитя и цвет заголовков - вместо стандартного синего текст станет зелёным.

История новогодних стеклянных игрушек

Вы видите изображения для мобильников!

Вы видите изображения для нетбуков!

Вы видите изображения для ПК!

Согласно общепринятым историческим данным, первые ёлочные игрушки (стеклянные шары) появились в Саксонии в XVI веке. Однако в определении первенства изобретения новогодних игрушек нет одинокого понимания, некоторые авторы считают, что первые стеклянные ёлочные шары были сделаны в 1848 году в местечке Лауша в Тюрингии, и связано это было с тем, что в этот год был неурожай яблок - а именно ими в основном украшали праздничное дерево, но стеклодувы пришли на выручку традиции и сделали стеклянные шары вместо яблок. По сложившийся традиции стеклянные шары затем их начали выдувать в Саксонии в середине XIX века. Позже появились сложные фигурки из стекла.

Новогодние игрушки в России

На Руси первые ёлочные игрушки делали из тряпок, соломы, цветных ленточек, а уже позднее из бумаги и фольги. Этим производством занимались специальные картонажные мастерские. Стеклянные украшения появились позднее.

Производство Елочных игрушек в России!

Курпнейшее производство!

Первое в России стеклянное ёлочное производство открыли на заводе под Клином, в имении Меньшиковых, примерно в начале XIX века. Ныне данное завод переименован в ОАО «Ёлочка».

О ёлке!

В 1916 году, во время Первой мировой войны, ёлка была запрещена Священным синодом как «немецкий обычай» и вновь разрешена специальным указом ВЛКСМ перед новым 1936 годом, но уже как Новогодняя ёлка.

О новом годе!

Начало года с 1 января было установлено римским правителем Юлием Цезарем в 46 году до н. э. В Древнем Риме этот день был посвящён Янусу — богу выбора, дверей и всех начал.

Лучше посмотреть этот пример в новой вкладке браузера окне из-за структуры slyweb.ru - Пример CSS3 Media Queries. Если Вы внимательно присмотритесь, то должны заметить, что изменились не только размеры изображений, но и цвет заголовков.

CSS код

Синтаксис Media Queries прост, разрешение, ширина или высота экрана определяется с помощью правила media:

  • Код
  • Чистый код
  1.@media (min-width:950px)
  2.{
  3. .... css свойства для экрана шириной 950 px или больше, но не меньше....
  4.}
  5.

        

Если нужно определить разрешение экрана в определённом интервале, то синтаксис немного изменится:

  • Код
  • Чистый код
  1.@media (min-width:450px) and (max-width:950px)
  2.{
  3. .... css свойства для экрана шириной 450 px или больше, но не больше 950 px....
  4.}
  5.

        

На сегодняшний день Media Queries поддерживают многие новые браузеры:

  • Google Chrome 15.0.874.120 +
  • Opera 11.52 +
  • Firefox 5 +
  • Apple Safari 5.1.1 +
  • Internet Explorer 9 +

Мобильные устройства имеют различное разрешение и размеры экрана, поэтому нужно предусмотреть, что статьи на больших устройствах могут некорректно смотреться на маленьких, например возьмём следующий css код:

  • Код
  • Чистый код
  1.@media (max-width:450px)
  2.{
  3.
  4..photo img
  5.{
  6. margin: 0 auto;
  7. width: 50%;
  8. max-width: 640px;
  9. max-height: 480px;
10. border-radius: 10px;
11.}
12.
13.}
14.
15.@media (min-width:450px)
16.{
17.
18..photo img
19.{
20. margin: 0 auto;
21. width: 100%;
22. max-width: 640px;
23. max-height: 480px;
24. border-radius: 10px;
25.}
26.
27.}
28.

        

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

Media Queries могут применяться не только в тех случаях, когда нужно изменить представление страницы в зависимости от её разрешения или размера, но и поддержки количества цветов, так как есть экраны поддерживающие 16 мл. цветов, есть экраны поддерживающие 256 цветов. В зависимости от глубины цветовых характеристик могут применятся разные css стили:

  • Код
  • Чистый код
  1./*css стиль для всех устройств независимо от глубины цветопередачи*/
  2.@media all and (color-index) {}
  3.@media all and (min-color-index: 1) {}
  4.
  5./*css стиль для всех устройств, количество цветов у которых 256*/
  6.@media all and (min-color-index: 256) {}
  7.

        

Но и это ещё не все, что появляется и будет развиваться в недалеком будущем интернета! Если Вы читаете на английском, то можно заглянуть в раздел официальной документации по Media Queries находится он по адресу http://www.w3.org/TR/css3-mediaqueries/.

А вдруг не работает?

Стандарт CSS 3 поддерживаться многими браузерами стал совсем недавно, поэтому есть смысл знать про возможности определения через javascript поддержки Media Queries со стороны браузера. Пежде всего для этого предназначен метод "window.matchMedia" для IE это "window.msmatchMedia":

  • Код
  • Чистый код
  1.if (!window.matchMedia) {
  2.
  3. // Media Queries не поддерживаются
  4.
  5.} else {
  6. // Media Queries поддерживаются
  7.}
  8.

        

Много нового пояилось в CSS3 и в HTML 5, про всё сразу не расскажу, но в следующей статье я постараюсь объяснить про работу с видео и аудио используя CSS3 и jQuery.


Александр Ермаков