ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

CSS учебник

CSS HOME CSS Introduction CSS Syntax CSS How To CSS Colors CSS Backgrounds CSS Borders CSS Margins CSS Padding CSS Height/Width CSS Box Model CSS Outline CSS Text CSS Fonts CSS Icons CSS Links CSS Lists CSS Tables CSS Display CSS Max-width CSS Position CSS Overflow CSS Float CSS Inline-block CSS Align CSS Combinators CSS Pseudo-class CSS Pseudo-element CSS Opacity CSS Navigation Bar CSS Dropdowns CSS Image Gallery CSS Image Sprites CSS Attr Selectors CSS Forms CSS Counters CSS Website Layout CSS Units CSS Specificity

CSS Advanced

CSS Rounded Corners CSS Border Images CSS Backgrounds CSS Colors CSS Gradients CSS Shadows CSS Text Effects CSS Web Fonts CSS 2D Transforms CSS 3D Transforms CSS Transitions CSS Animations CSS Tooltips CSS Style Images CSS object-fit CSS Buttons CSS Pagination CSS Multiple Columns CSS User Interface CSS Variables CSS Box Sizing CSS Flexbox CSS Media Queries CSS MQ Examples

CSS Responsive

RWD Intro RWD Viewport RWD Grid View RWD Media Queries RWD Images RWD Videos RWD Frameworks

CSS Grid

Grid Intro Grid Container Grid Item

CSS Examples

CSS Templates

CSS References

CSS Reference CSS Selectors CSS Functions CSS Reference Aural CSS Web Safe Fonts CSS Animatable CSS Units CSS PX-EM Converter CSS Colors CSS Color Values CSS Default Values CSS Browser Support


Responsive Web Design - Images картинки


Измените размер окна обозревателя, чтобы увидеть, как масштабируется изображение по размеру страницы.


Использование свойства Width

Если свойство width имеет значение 100%, изображение будет реагировать и масштабироваться вверх и вниз:

Пример

img {
    width: 100%;
    height: auto;
}

Обратите внимание, что в приведенном выше примере изображение может быть увеличено до размера, превышающего его исходный размер. Лучшим решением, во многих случаях, будет использование Вместо этого max-width свойство.


Использование свойства max-width

Если свойство max-width имеет значение 100%, изображение будет масштабироваться, если это необходимо, но никогда не масштабироваться, чтобы быть больше, чем его исходный размер:

Пример

img {
    max-width: 100%;
    height: auto;
}

Добавление изображения на веб-страницу примера

Пример

img {
    width: 100%;
    height: auto;
}


Фоновые изображения

Фоновые изображения также могут реагировать на изменение размера и масштабирование.

Здесь мы будем показывать три различных метода:

1. Если свойство background-size имеет значение "содержать", фоновое изображение будет масштабироваться и попытаться вписать область содержимого. Однако изображение будет сохранять соотношение сторон (пропорциональное отношение между шириной и высотой изображения):


Вот код CSS:

Пример

div {
    width: 100%;
    height: 400px;
    background-image: url('img_flowers.jpg');
    background-repeat: no-repeat;
    background-size: contain;
    border: 1px solid red;
}

2. Если свойство background-size имеет значение "100% 100%", фоновое изображение будет растягиваться, чтобы охватить всю область содержимого:


Вот код CSS:

Пример

div {
    width: 100%;
    height: 400px;
    background-image: url('img_flowers.jpg');
    background-size: 100% 100%;
    border: 1px solid red;
}

3. Если для свойства background-size установлено значение "Cover", фоновое изображение будет масштабироваться для охвата всей области содержимого. Обратите внимание, что значение "Cover" сохраняет пропорции, и часть фонового изображения может быть обрезана:


Вот код CSS:

Пример

div {
    width: 100%;
    height: 400px;
    background-image: url('img_flowers.jpg');
    background-size: cover;
    border: 1px solid red;
}

Различные изображения для различных устройств

Большое изображение может быть совершенным на большом экране компьютера, но бесполезно на маленьком устройстве. Зачем загружать большие изображения, когда вы должны масштабировать его в любом случае? Для уменьшения нагрузки или по другим причинам можно использовать мультимедийные запросы для отображения различных изображений на различных устройствах.

Вот одно большое изображение и одно меньшее изображение, которое будет отображаться на разных устройствах:

Пример

/* For width smaller than 400px: */
body {
    background-image: url('img_smallflower.jpg');
}

/* For width 400px and larger: */
@media only screen and (min-width: 400px) {
    body {
        background-image: url('img_flowers.jpg');
    }
}

Вы можете использовать медиа-запрос min-device-width вместо min-width, который проверяет ширину устройства, а не ширину обозревателя. После этого изображение не изменится при изменении размера окна обозревателя:

Пример

/* For devices smaller than 400px: */
body {
    background-image: url('img_smallflower.jpg');
}

/* For devices 400px and larger: */
@media only screen and (min-device-width: 400px) {
    body {
        background-image: url('img_flowers.jpg');
    }
}

HTML5 <picture> элемент

HTML5 представил элемент <picture>, который позволяет определить более одного изображения.

Поддержка браузера

Element
<picture> 13 38.0 38.0 9.1 25.0

Элемент <picture> работает аналогично элементам <video> и <audio>. Вы устанавливаете различные источники, и первым источником, который соответствует предпочтениям, является тот, который используется:

Пример

<picture>
  <source srcset="img_smallflower.jpg" media="(max-width: 400px)">
  <source srcset="img_flowers.jpg">
  <img src="img_flowers.jpg" alt="Flowers">
</picture>

Атрибут srcset является обязательным и определяет источник изображения.

Атрибут media является необязательным и принимает запросы мультимедиа, которые вы найдете в Правило CSS @media.

Необходимо также определить элемент <img> для браузеров, которые не поддерживают <picture> элемент.