JavaRush /Курсы /Модуль 1: Web Core /Медиа-запросы

Медиа-запросы

Модуль 1: Web Core
13 уровень , 1 лекция
Открыта

2.1 Основы медиа-запросов

Медиа-запросы (media queries) являются одним из ключевых инструментов для создания отзывчивых веб-сайтов. С их помощью можно адаптировать стили под различные устройства и размеры экранов, обеспечивая оптимальное отображение и удобство использования. Ниже мы рассмотрим основы использования медиа-запросов, их синтаксис, а также примеры адаптации стилей для разных экранов.

Медиа-запросы используют правило @media, которое позволяет применять определенные стили только при выполнении заданных условий. Условия могут включать размеры экрана, разрешение, ориентацию и другие параметры.

Синтаксис:

    
      @media media-type and (media-feature) {
        /* стили */
      }
    
  

Где:

  • media-type: тип медиа, для которого будут применяться стили. Чаще всего используется screen
  • media-feature: особенности медиа, такие как ширина, высота, ориентация и т. д.

Пример:

  • В этом примере фон страницы станет светло-голубым, если ширина экрана не превышает 768 пикселей.
CSS
    
      @media screen and (max-width: 768px) {
        body {
          background-color: lightblue;
        }
      }
    
  

2.2 Типы медиа-запросов

1. Запросы по ширине и высоте

Эти медиа-запросы позволяют изменять стили в зависимости от ширины и высоты окна просмотра.

Примеры:

CSS
    
      /* Применить стили, если ширина экрана меньше или равна 768px */

      @media (max-width: 768px) {
        .container {
          padding: 10px;
        }
      }

      /* Применить стили, если высота экрана больше 800px */

      @media (min-height: 800px) {
        .header {
          height: 150px;
        }
      }
    
  

2. Ориентация (orientation)

Запросы по ориентации экрана позволяют адаптировать стили в зависимости от того, находится ли устройство в портретном (portrait) или ландшафтном (landscape) режиме.

Примеры:

CSS
    
      /* Применить стили для портретной ориентации */

      @media (orientation: portrait) {
        .sidebar {
          display: none;
        }
      }

      /* Применить стили для ландшафтной ориентации */

      @media (orientation: landscape) {
        .sidebar {
          display: block;
        }
      }
    
  

3. Плотность пикселей (resolution)

Медиа-запросы по плотности пикселей позволяют адаптировать стили для устройств с различной плотностью пикселей, таких как экраны Retina.

Примеры:

CSS
    
      /* Применить стили для экранов с плотностью пикселей 2x и выше */

      @media (min-resolution: 2dppx) {
        .high-res-image {
          background-image: url('high-res-image.png');
        }
      }

      /* Применить стили для экранов с плотностью пикселей менее 2x */

      @media (max-resolution: 1.99dppx) {
        .high-res-image {
          background-image: url('standard-res-image.png');
        }
      }
    
  

2.3 Комбинирование медиа-запросов

Медиа-запросы могут быть объединены с помощью логических операторов and, not и only.

Примеры

Использование оператора and:

CSS
    
      /* Применить стили для устройств с шириной экрана между 600px и 1200px */

      @media (min-width: 600px) and (max-width: 1200px) {
        .main-content {
          margin: 0 auto;
          width: 80%;
        }
      }
    
  

Использование оператора not:

CSS
    
      /* Применить стили для всех устройств, кроме тех, у которых ширина экрана менее 600px */

      @media not all and (max-width: 600px) {
        .footer {
          display: block;
        }
      }
    
  

Использование оператора only:

CSS
    
      /* Применить стили только для экранов */

      @media only screen and (max-width: 768px) {
        .menu {
          display: none;
        }
      }
    
  
1
Задача
Модуль 1: Web Core, 13 уровень, 1 лекция
Недоступна
Медиа-запросы ширины
Медиа-запросы ширины
1
Задача
Модуль 1: Web Core, 13 уровень, 1 лекция
Недоступна
Ориентация экрана
Ориентация экрана
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Андрей Полищук Уровень 18
29 мая 2025
Задача #1. В WS валидация прошла только с 6 попытки т.к.min-width:1200px; конфликтовала с max-width:1200px.
No Name Уровень 48
25 мая 2025
+ лекция в копилке