Тег source
HTML5CSS.ru
ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
❮Назад Полный HTML Ссылки Дальше ❯
Пример
Аудио проигрыватель с двумя исходными файлами. Браузер должен выбрать, какой файл (если таковой имеется) он имеет поддержку:
<audio controls>
<source src=»horse.ogg» type=»audio/ogg»>
<source src=»horse.mp3″ type=»audio/mpeg»>
Your browser does not support the audio element.
</audio>
Подробнее примеры ниже.
Определение и использование
Тег <source> используется для указания нескольких мультимедийных ресурсов для элементов мультимедиа, таких как <video>, <audio> и <picture>.
Тег <source> позволяет указать альтернативные файлы видео/аудио/изображения, которые может выбрать браузер, в зависимости от типа носителя, поддержки кодеков или мультимедийного запроса.
Поддержка браузера
Номера в таблице указывают первую версию браузера, которая полностью поддерживает элемент.
Элемент | |||||
---|---|---|---|---|---|
<source> | 4.0 | 9.0 | 3.5 | 4.0 | 10.5 |
Различия между HTML 4,01 и HTML5
Тег <source> является новым в HTML5.
Атрибуты
Атрибут | Значение | Описание |
---|---|---|
src | URL | Требуется, когда <source> используется в <audio> и <video>. Указывает URL-адрес файла мультимедиа |
srcset | URL | Требуется, когда <source> используется в <picture>. Указывает URL-адрес изображения для использования в различных ситуациях |
media | media_query | Принимает любой допустимый запрос носителя, который обычно определяется в CSS |
sizes | Определяет размеры изображения для различных макетов страниц | |
type | MIME-type | Задает MIME-тип ресурса |
Глобальные атрибуты
Тег <source> также поддерживает Глобальные атрибуты в HTML.
Атрибуты события
Тег <source> также поддерживает Атрибуты событий в HTML.
Другие примеры
Пример
Элемент <source> с двумя исходными файлами и резервным изображением:
<picture>
<source media=»(min-width: 650px)» srcset=»img_pink_flowers.jpg»>
<source media=»(min-width: 465px)» srcset=»img_white_flower.jpg»>
<img
src=»img_orange_flowers.jpg» alt=»Flowers»>
</picture>
Похожие страницы
Учебник по HTML: HTML5 Video
HTML Учебник: HTML5 Audio
HTML DOM Ссылки: Source Object
Параметры CSS по умолчанию
Нет.
❮Назад Полный HTML Ссылки Дальше ❯
Популярное
html картинка
как вставить картинку в html
цвет текста фона
размер текста html
цвет размер шрифта html
формы html
список html
таблица html
как сделать ссылку в html
html элементы
Copyright 2018-2020 HTML5CSS. ru
Правила и Условия Политика конфиденциальности О нас Контакты
CSS: иллюстрации & подписи
CSS: иллюстрации & подписиНа этой странице:
- Добавление подписей
- Масштабирование изображения
- Подписи сверху
- Иллюстрации в HTML4
Иллюстрации & подписи
Масштабированная модель Эйфелевой башни в Парке Мини-Франция
В HTML5 включен новый элемент для вставки иллюстрации с подписью. (Мы покажем, как сделать тоже самое в HTML4 ниже.)
<figure> <p><img src="eiffel.jpg" alt="Эйфелева башня"> <figcaption>Масштабированная модель Эйфелевой башни в Парке Мини-Франция</figcaption> </figure>
Например, чтобы сместить изображение вправо на расстояние, равное 30% от ширины окружающих абзацев, используйте следующие правила:
figure { float: right; width: 30%; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; border: thin silver solid; margin: 0. 5em; padding: 0.5em; }
На самом деле, действительно необходимы только две первые декларации (float и width), а остальные использованы исключительно для оформления.
Масштабирование изображения
Здесь только одна проблема, и она заключается в том, что изображение может быть слишком широким. В этом случае, ширина изображения всегда будет составлять 136 px и иллюстрация будет занимать 30% от окружающего текста. И если вы сузите окно, то изображение может не поместиться и вылезти за рамку (попробуйте!).
Если вы знаете ширину всех изображений в документе, вы можете указать минимальную ширину иллюстрации следующим образом:
figure { min-width: 150px; }
Сен-Тропе и его форт в вечернем солнце
Другой способ — это задать масштаб самого изображения. Именно это мы и сделали с изображением справа. Как вы, возможно, видете, если вы сделаете окно браузера слишком широким, изображения в формате JPEG масштабируются не очень хорошо. Но если это изображение — диаграмма или график в формате SVG, то масштабирование работает просто великолепно.
<figure> <p><img class=scaled src="st-tropez.jpg" alt="Сен-Тропе"> <figcaption>Сен-Тропе и его форт в вечернем солнце</figcaption> </figure>
А вот таблица стилей:
figure { float: right; width: 30%; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; border: thin silver solid; margin: 0.5em; padding: 0.5em; } img.scaled { width: 100%; }
И в дополнение последнее правило: этот приём делает изображение настолько широким, насколько позволяет пространство внутри иллюстрации (область внутри рамок и отступов — border и padding).
Размещение подписи сверху
Средиземное море около Кап Ферра
HTML позволяет элементу figcaption быть либо первым, либо последним элементом внутри иллюстрации. Если не применять каких-либо правил CSS, это приведёт к тому, что подпись будет размещена либо над иллюстрацией, либо под ней соответственно.
Однако, независимо от разметки текста, вы можете указать в CSS, чтобы подпись появилась либо над изображением, либо под ним. Этого можно достичь, указав браузеру, что изображение должно быть отформатировано как таблица, в которой картинка является единственной ячейкой, а подпись становится заголовком таблицы. Просто добавьте эти правила в таблицу стилей из предыдущей секции:
figure { display: table; } figcaption { display: table-caption; caption-side: top; }
Стиль, который мы использовали на этой странице, содержит рамку серого цвета. Она обрамляет иллюстрацию. К сожалению, когда мы используем табличную разметку, чтобы поместить подпись сверху или снизу, мы должны указать рамку другим способом, потому что подпись размещена за пределами границы таблицы. Мы можем исправить это, поместив часть границы на саму подпись:
figure { border-top: none; padding-top: 0; } figcaption { padding: 0.5em; border: thin silver solid; border-bottom: none; }
Иллюстрации & подписи в HTML4
Масштабированная модель Эйфелевой башни в Парке Мини-Франция
HTML4, в отличие от HTML5, не имеет элементов, которые бы позволили вставить в документ изображение с подписью. Это предлагалось сделать (см HTML3), но в итоге в HTML4 предложение не вошло. Вот единственная возможность воспроизвести элемент figure:
<div class=figure> <p><img src="eiffel.jpg" alt="Эйфелева башня"> <p>Масштабированная модель Эйфелевой башни в Парке Мини-Франция </div>
Затем в таблице стилей вы используете класс «figure» для форматирования иллюстрации так, как вам необходимо. Например, чтобы сместить иллюстрацию вправо на расстояние, равное 30% от ширины окружающих абзацев, необходимо применить следующие правила:
div.figure { float: right; width: 30%; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; border: thin silver solid; margin: 0.5em; padding: 0.5em; }
Как и ранее, необходимы только две первые декларации (float и width), а остальные использованы исключительно для оформления.
Масштабирование изображения в HTML4
Чтобы избежать выхода изображения за рамки иллюстрации и при условии, что вы знаете ширину всех изображений в документе, вы можете добавить минимальную ширину DIV следующим образом:
div. figure { min-width: 150px; }
Сен-Тропе и его форт в вечернем солнце
Чтобы смасштабировать изображение на всю ширину иллюстрации (как мы сделали с изображением справа), вы можете добавить атрибут КЛАССА и соответствующее правило CSS, очень похожее на пример с HTML5 выше. Вот разметка, которую мы использовали:
<div class=figure> <p><img class=scaled src="st-tropez.jpg" alt="Сен-Тропе"> <p>Сен-Тропе и его форт в вечернем солнце </div>
А вот таблица стилей:
div.figure { float: right; width: 30%; border: thin silver solid; margin: 0.5em; padding: 0.5em; text-align: center; font-style: italic; font-size: smaller; text-indent: 0; } img.scaled { width: 100%; }
Одно дополнение: этот приём делает изображение настолько широким, насколько позволяет DIV (площадь внутри border и padding).
Размещение описания сверху в HTML4
Средиземное море около Кап Ферра
Чтобы разместить подпись сверху, добавьте эти правила в таблицу стилей из предыдущих секций:
div. figure { display: table; } div.figure p + p { display: table-caption; caption-side: top; }
‘+’ приводит к тому, что правило действует на элемент P, который следует за другим P. Что означает, что условие действует на второй элемент P иллюстрации, который содержит описание картинки.
(Эта техника может привести к ошибкам в некоторых браузерах, разработанных ранее 2003, особенно в комбинации с масштабированием изображений, как в примере выше)
Как и прежде, серая рамка, которую мы выбрали для обрамления иллюстраций на этой странице, будет обрамлять только само изображение. Чтобы рамка была вокруг изображения и подписи, добавьте эти правила:
div.figure { border-top: none; padding-top: 0; } div.figure p + p { padding: 0.5em; border: thin silver solid; border-bottom: none; }
Created 17 January 2001;
Файловая структура и части CSS — WP Rig
Чтобы работать с CSS в WP Rig, важно сначала узнать, как работает CSS в WP Rig. Давайте разберем структуру файлов и папок, что делают разные файлы и как они работают вместе, начиная с style.css
, найденного в корне.
style.css
— это заполнитель в WP Rig Традиционно в темах WordPress style.css
— это таблица стилей для всего в теме, что означает, что все правила стиля компилируются в один файл. В WP Rig все наоборот. Style.css
— это просто заполнитель. Комментарии говорят WordPress, «Эй, это тема. Он имеет название «WP Rig» и содержит все сведения о версии WP Rig, которую вы загрузили». Затем WordPress берет эту информацию и отображает ее на странице темы в панели администратора, чтобы люди могли видеть информацию о теме до ее установки.
Этот комментарий необходим для того, чтобы темы WordPress распознавались как темы самим WordPress. Без него WordPress не узнает, что в этой папке есть тема. Этот комментарий должен находиться в файле с именем стиль.css
. Тем не менее, это единственная часть информации, которая должна быть в style. css
, чтобы тема работала, поэтому WP Rig размещает все фактические правила стиля в другом месте. Вы увидите, где и почему, когда будете читать дальше.
Когда вы начнете работать над своей собственной темой, рекомендуется сразу же отредактировать комментарий в style.css
, так как он содержит информацию, которую WordPress будет отображать на странице выбора темы. (Вы можете изменить эту информацию на что угодно, и вы всегда можете изменить ее позже, потому что это просто динамическая информация, которую использует WordPress.) Тема, которую я собираюсь создать в этом курсе, будет называться «Новая установка», поэтому я поместите это имя там на данный момент. Затем, в самом конце курса, мы вернемся к этому файлу и убедимся, что все по-прежнему правильно.
Расположение редактируемого CSS
Фактические таблицы стилей, с которыми вы будете работать, находятся в папке /assets/css/src
. Это редактируемая часть таблицы стилей. Здесь вы фактически редактируете код, а затем процесс сборки возьмет содержимое папки « src
», скомпилирует его, минимизирует и построит, а затем поместит в корневую папку CSS. Это то, что вы увидите, когда запустите процесс сборки. У вас будет комментария.min.css
, который является уменьшенной версией comments.css
и так далее. Внутри папки « src
» у вас будут основные файлы, которые включают обычные модульные таблицы стилей (например, /assets/css/src/comments.css
), а также частичные (например, /assets/css/src/ _blocks.css
).
Редактор блоков (Gutenberg) CSS-файлы
Папка «редактор» содержит стили редактора блоков WordPress ( /assets/css/src/editor/editor-styles.css
). Это стили, которые применяются только к редактору блоков (также известному как редактор блоков «Гутенберг»). Эти стили нужны только для того, чтобы редактор выглядел так же, как интерфейс. Когда вы запускаете редактор, он фактически импортирует все стили из ваших обычных таблиц стилей. Это просто пользовательские вещи, которые должны быть на месте, потому что в некоторых случаях редактор делает некоторые странные вещи. Вы заметите, что таблица стилей здесь действительно мала по сравнению с тем, что на самом деле происходит в общих стилях.
Основные CSS-файлы и их части
Присмотревшись к файлам в исходной папке, вы заметите, что есть два типа файлов. У нас есть файлы с обычными именами, а также файлы с подчеркиванием (_) перед именем. Если вы когда-либо работали с Sass или LESS, вы узнаете их как партиалы. Они работают так же, как партиалы, только на чистом CSS. Здесь нет ни Sass, ни LESS. На самом деле WP Rig не поддерживает Sass или LESS. Это просто чистый CSS. Как я уже сказал, работает так же.
Как работает процесс сборки CSS?
Давайте сначала посмотрим на global.css
. В самом верху global.css
вы увидите все эти правила @import
, которые вызывают эти партиалы. Если вы раньше работали с CSS, вы, вероятно, скажете: «Эй, @import внутри таблицы стилей? Это не очень хорошая производительность, потому что теперь вы делаете кучу обращений к серверу». Здесь начинается магия процесса сборки.
Благодаря PostCSS эти вызовы @import
фактически превращаются в настоящий код, когда код компилируется, то есть, когда мы компилируем код, PostCSS находит содержимое пользовательских свойств вместо этого вызова @import
. внутри global.css
. Затем то же самое для _reset.css
, _typography.css
, _elements.css
и _links.css
, то есть когда мы компилируем global.css
, 9000ss0004 будет содержать содержимое всех этих частичных файлов. Это работает только с частичными и работает только для правила @import
во время процесса сборки.
/*----------------------------------------------------------------------------- ---------------- # Импорт -------------------------------------------------- ------------*/ @import "_custom-properties.css"; @import "_reset.css"; @import "_typography.css"; @import "_elements. css"; @import "_links.css";
Одно важное предостережение; вы можете делать это сколько угодно, но вы должны добавить эти правила @import
вверху вашей таблицы стилей ПЕРЕД любыми фактическими правилами стиля . Если вы попытаетесь добавить их ниже, вы получите сообщение об ошибке от PostCSS: «Эй, эй, эй! Ты делаешь то, чего не должен делать». Для этого есть разные причины, но в основном всякий раз, когда вы используете партиал, его нужно вызывать в самом верху документа.
Поскольку style.css
не содержит реального CSS, вам, вероятно, интересно, «Где находится CSS, который управляет общим макетом и внешним видом сайта?» Ответ: вот этот файл: global.css
.
Основная таблица стилей =
global.css
/*------------------------------------------------- --------------------------- >>> СОДЕРЖАНИЕ: -------------------------------------------------- -------------- # Импорт # Пользовательские свойства # Перезагрузить # Типография # Элементы # Ссылки # Доступность # Макет # Формы # Заголовок # Главное меню навигации # Навигация по содержимому # Нижний колонтитул # Бесконечная прокрутка -------------------------------------------------- ------------*/ /*------------------------------------------------ -------------- # Импорт -------------------------------------------------- ------------*/ @import "_custom-properties. css"; @import "_reset.css"; @import "_typography.css"; @import "_elements.css"; @import "_links.css";
Global.css
вызывается для каждого просмотра, каждого сообщения, каждой страницы, каждого индекса и всего остального. Global.css
— основная таблица стилей для всего. Здесь вы найдете основные компоненты обычного вида.
В комментариях в разделе «СОДЕРЖАНИЕ» в верхней части файла global.css
(см. фрагмент кода выше) вы можете увидеть, какие стили содержатся в файле. Вы увидите «Импорт» (включая пользовательские свойства, сброс, типографику, элементы и ссылки). У нас также есть необходимые стили «Специальные возможности», которые делают такие вещи, как скрытие текста. У нас есть общие «Макеты» для представлений, а затем «Формы». Затем «Заголовок», потому что заголовок всегда будет загружаться независимо от того, как вы загружаете страницу. Внутри «Заголовка» у нас есть стили «Главное меню навигации». Затем у нас есть «Контентная навигация». Это «предыдущий» и «следующий» пост или «предыдущий» и «следующий» пост и индексы. И, наконец, «Нижний колонтитул» и «Бесконечная прокрутка». Это относительно редкие стили, которые стилизуют только внешние слои темы.
Файлы CSS для неглобальных стилей
Все, что происходит внутри публикации, страницы или чего-либо еще, хранится в отдельном файле из global.css
. Вы можете увидеть все эти файлы в /assets/css/src/
. В дополнение к global.css
у нас есть comments.css
, который загружается только в том случае, если комментарии действительно присутствуют на странице. У нас есть content.css
, так что это будет контент постов или страниц. У нас есть front-page.css
, который загружается только в том случае, если используется шаблон главной страницы. У нас есть sidebar.css
, который загружается только при использовании боковой панели, а затем widgets.css
, который загружается только в том случае, если на странице присутствуют виджеты.
Теперь, когда вы видите конструкцию, надеюсь, вам понятно, почему она построена именно так. Разделив все эти разные стили на отдельные компоненты, работать с ними становится намного проще.
Если вам нужно внести некоторые изменения в содержимое публикации, вы переходите к content.css
(см. ниже код, взятый из content.css
), и там вы найдете стили только для того, что находится в контенте. Например, если вы прокрутите вниз, вы найдете все пользовательские цвета блоков для темы. В самом верху вы увидите @import
для партиала _blocks.css
. Блоки — это настоящие блоки, созданные редактором блоков Gutenberg. Там вы можете настроить части блока и так далее.
/*----------------------------------------------------------------------------- ---------------- >>> СОДЕРЖАНИЕ: -------------------------------------------------- -------------- # Импорт # Блоки # СМИ # Подписи # Галереи (устаревшие) # Содержание поста и страницы # Выравнивания # Пользовательские цвета блоков # Пользовательские размеры шрифта -------------------------------------------------- ------------*/ /*------------------------------------------------ -------------- # Импорт -------------------------------------------------- ------------*/ @import "_blocks. css"; @import "_media.css"; /*------------------------------------------------ -------------- # Содержание поста и страницы -------------------------------------------------- ------------*/ /* Пользовательское правило для прикрепленных сообщений: липкий { } */ .вход { нижняя граница: 1re; }
Стало намного проще обнаруживать, где находятся разные стили, а также становится намного проще контролировать, когда что именно загружается. Это также означает, что при создании собственных пользовательских таблиц стилей и пользовательских разделов убедитесь, что они остаются модульными, чтобы их было легко понять и легко применять только тогда, когда они необходимы.
Краткое и простое руководство »
Раскрытие информации: Ваша поддержка помогает сайту работать! Мы зарабатываем комиссионные за некоторые услуги, которые мы рекомендуем на этой странице. Узнать больше
- Атрибут
- Теги HTML Руководство по добавлению изображений в ваши веб-документы
- Что делает
Что делает Img Srcset в HTML5: Краткое и простое руководство
делает? - Определяет несколько размеров одного и того же изображения, позволяя браузеру выбирать соответствующий источник изображения.
Содержание
- 1 Проблема: разные разрешения и размеры экрана
- 2 Ужасное решение: гигантские изображения для всех
- 3 Лучшее решение: показывать разные изображения разным посетителям
- 3.1 The Old Way (S)
- 3.2 The New Way: SRCSET
- 4 Использование SRCSET
- 4.1. 4.2 Разметка. Какой выбрать?
- 5 Значения атрибута srcset
- 6 Все атрибуты элемента img
- 7 Поддержка браузером srcset
Проблема: разные разрешения и размеры экрана
Это, вероятно, очевидно для вас (мы надеемся), но не все просматривают Интернет с таким же размером экрана. Мы используем все, от огромных настольных мониторов до крошечных экранов, которые мы носим в карманах. Это создает некоторые проблемы, связанные с тем, как мы работаем с дизайном страницы, включая изображения.
И дело не только в размере, но и в разрешении. Мониторы 4K HD и дисплей Retina от Apple упаковывают больше пикселей, чем когда-либо, на меньшем пространстве, и эта тенденция, вероятно, сохранится. чтобы изображения хорошо выглядели на этих экранах, исходные файлы должны быть намного больше — в два, три или даже в четыре раза больше изображений, предназначенных для обычных дисплеев.
Ужасное решение: гигантские изображения для всех
Один из способов справиться с поддержкой экранов с высоким разрешением — просто постоянно показывать максимально возможное изображение.
Почти хорошая идея. Экраны с низким разрешением и малые размеры могут без проблем отображать гигантское изображение высокой четкости. Они просто не увидят никакой выгоды. Это будет выглядеть для них в основном так же, как если бы вы дали им изображение вдвое меньшего размера. Таким образом, пользовательский опыт улучшается для высококлассных зрителей, и все остальные не затрагиваются. Отлично, правда?
Надеюсь, вы видите здесь проблему. Предоставление изображений гораздо большего размера не оставляет равнодушным всех остальных. Их еще нужно скачать. Это стоит им полосы пропускания, и это стоит вам полосы пропускания. Это также замедляет время загрузки их страниц и использует больше памяти их компьютера.
Лучшее решение: показывать разные изображения разным посетителям
На самом деле вам нужно иметь возможность показывать самое большое изображение, которое действительно имеет значение для каждого пользователя. Если кто-то может увидеть ваше высококачественное гигантское изображение с высоким разрешением, значит, вы хотите предоставить его ему. Но кому-то, кто приходит к вам в гости с 5-летнего смартфона, вы хотите дать им изображение меньшего размера.
Легко, верно?
Старый способ
Первая волна решений этой проблемы включала сложные медиа-запросы, JavaScript или выбор изображения на стороне сервера. Их было сложно настроить, сложно было понять, и они были несколько подвержены ошибкам. Хуже всего то, что они требовали от вас (ну, от вашей системы) выяснить, какую версию образа выбрать. Это потребовало много догадок и возложило бремя будущих улучшений на код вашего веб-сайта.
Но благодаря HTML5 мы можем сделать все это довольно легко.
Новый способ:
srcset
Использование атрибута srcset
значительно упростило изменение размера адаптивного изображения. Он позволяет определить список версий одного и того же изображения разного размера и предоставить информацию о размере каждой из них. Затем клиент (браузер) принимает решение.
Эта последняя часть заслуживает особого внимания, потому что клиентское устройство на самом деле знает, на что оно способно, тогда как код вашего веб-сайта должен делать запросы и догадки, чтобы понять это. Более того, браузерные технологии продолжают совершенствоваться, в то время как дизайн большинства веб-сайтов находится в цикле разработки «настроил и забыл».
Использование
srcset
Использование srcset
состоит из двух частей — создание отдельных файлов, а затем разметка.
Индивидуальные размеры файлов
Во-первых, необходимо создать несколько версий одного и того же изображения разного размера. Это немного отличается в зависимости от того, используете ли вы фотографии и существующие изображения или создаете новые изображения с нуля.
В любом случае вам обычно потребуется создать как минимум четыре версии каждого изображения: одну «нормального» размера, а затем одну в два раза больше (2x), в три раза (3x) и в четыре раза (4x ). Когда вы создаете свои изображения, полезно добавить спецификацию размера к каждому файлу:
- image-1x.jpg
- image-2x.jpg
- image-3x.jpg
- image-4x.jpg
Это не имеет никакого значения для браузера, но сделает вашу жизнь проще. Также обратите внимание, что вы можете создать больше версий разного размера (больше, меньше), и нет ограничений на количество исходных файлов, указанных в атрибуте srcset
. Тем не менее, общая практика, похоже, остановилась на четырех размерах (по крайней мере, на данный момент).
Новая работа
Работа с новыми произведениями искусства упрощается. Вероятно, для создания изображений вы используете что-то вроде Adobe Illustrator или Inkscape. Когда вы их экспортируете, просто экспортируйте их в разных размерах. (В приведенном выше примере именования используется .jpg
. Не забывайте, что большинство нефотографических иллюстраций выглядят лучше с PNG.) , вы должны сделать это вместо этого и игнорировать все это.Файлы SVG бесконечно масштабируемы, отлично выглядят на всех экранах независимо от разрешения и теперь поддерживаются во всех текущих версиях браузеров.)
Существующие произведения искусства и фотографии
Хитрость здесь заключается в том, чтобы начать с максимально возможного изображения или, по крайней мере, с самого большого изображения, которое вы планируете показывать. Затем масштабируйте его для каждой отдельной версии.
- Наибольшее или исходное изображение — image-4x.jpg
- Уменьшено до 75 % — image-3x.jpg
- Уменьшено до 50 % — image-2x.jpg
- Уменьшено до 25 % — image-1x. jpg
Подсказка: Когда я делаю это, я устанавливаю качество изображения на 100% для 4x, 3x и 2x. Затем используйте значение по умолчанию (какое бы оно ни было) для 1x. Я также делаю один только с именем базового изображения того же размера, что и 1x, и устанавливаю качество экспорта примерно на 75% или около того. Я использую его в качестве резервного изображения по умолчанию, потому что его видят браузеры, которые не поддерживают атрибут `srcset`.
Разметка
Атрибут srcset
позволяет указать список URL-адресов файлов изображений вместе с описаниями размеров. Вам также необходимо по-прежнему использовать атрибут src
для определения источника изображения «по умолчанию», который будет использоваться в браузерах, не поддерживающих srcset
.
Разметка выглядит так:
(Мы знаем, кажется странным, что HTML-тег занимает несколько строк, но это значительно упрощает отслеживание. )
В примерах ниже мы будем использовать следующие изображения:
- flamingo4x.jpg — 4025 × 2672 — 3,8 МБ
- flamingo3x.jpg — 3019 × 2005 — 3,7 МБ jpg flamingo2 — 1,9 МБ
- flamingo1x.jpg — 1006 × 668 — 338 КБ
- flamingo-fallback.jpg — 1006 × 668 — 108 КБ
Обратите внимание на разницу в размере файла между 1x и 4x. Версия 4x более чем в 11 раз больше. Вот почему вы не должны показывать высококачественные изображения на экранах с низким разрешением.
Указание плотности изображения
Более распространенный способ включить информацию о размере в атрибут srcset
— пометить каждый файл плотностью изображения. Вы делаете это, помещая 1x
, 2x
, 3x
и так далее после URL-адреса. Это работает, если вы сделали разные изображения пропорционально друг другу (что мы и сделали).
<изображение исходный набор = " /wp-content/uploads/flamingo4x.jpg 4x, /wp-content/uploads/flamingo3x. jpg 3x, /wp-content/uploads/flamingo2x.jpg 2x, /wp-content/uploads/flamingo1x.jpg 1x " src="/wp-content/uploads/flamingo-fallback.jpg" >
Если вы откроете контекстное меню (щелкните правой кнопкой мыши или коснитесь двумя пальцами) на изображении выше и откроете изображение в новой вкладке, вы увидите, какую версию выбрал ваш браузер.
Указание ширины изображения
Другой способ сообщить браузеру о различных размерах — указать ширину изображения в пикселях. Кажется, это имеет некоторые преимущества, потому что дает браузеру больше информации об изображениях, поэтому он может принять лучшее решение о том, какое из них выбрать. Это также хорошо, если ваши версии изображений не соответствуют друг другу в точной пропорции. (Это может быть в том случае, если они были автоматически изменены вашей системой управления контентом или если вы загрузили их в разных размерах с таких сайтов, как WikiMedia Commons или Flikr.)
Для ширины изображения вы используете w
вместо x
.
<изображение исходный набор = " /wp-content/uploads/flamingo4x.jpg 4025 Вт, /wp-content/uploads/flamingo3x.jpg 3019w, /wp-content/uploads/flamingo2x.jpg 2013 г., /wp-content/uploads/flamingo1x.jpg 1006 Вт " src="/wp-content/uploads/flamingo-fallback.jpg" >
Ускорение рендеринга с размерами
Если вы используете srcset
для указания ширины, браузер должен принять некоторые решения о том, какое изображение загрузить. К сожалению, он не может понять это, пока не узнает отображаемый размер изображения — насколько большим оно будет на самом деле отображаться на экране.
Вы можете позволить браузеру подождать, чтобы понять это (после того, как он проанализирует весь CSS), или вы можете заранее предоставить ему достаточно информации, чтобы он мог сразу начать загрузку правильного изображения. Эта информация может быть предоставлена с помощью атрибутов ширина
и высота
.
Плотность изображения и ширина.
Какой выбрать? На основании ненаучных опросов (т.е. оглядываясь вокруг ), кажется, что плотность изображения ( 2x, 3x, 4x
) встречается чаще. Тем не менее, есть несколько веских причин для предпочтения указания ширины в пикселях:
- более гибкий — вы можете создать больше вариаций размера с нерегулярными кратными значениями.
- проще — Многие CMS, конструкторы веб-сайтов и сайты для обмена изображениями уже создают или предоставляют несколько размеров изображений. Вы можете просто использовать их, не убедившись, что они точно пропорциональны друг другу.
- умнее — указание фактической ширины в пикселях предоставляет браузеру клиента больше информации, что означает, что он с большей вероятностью сможет выбрать наиболее подходящее изображение для контекста.
Хотя любой способ должен работать, вероятно, лучше всего указать точную ширину изображения.
Значения
srcset
АтрибутИмя значения | Примечания |
---|---|
список источников | Список URL-адресов источников изображений и их соответствующих размеров. |
Все атрибуты
img
ЭлементИмя атрибута | Значения | Примечания |
---|---|---|
height | Определяет внутреннюю высоту файла изображения в пикселях CSS. | |
srcset | список источников | Определяет несколько размеров одного и того же изображения, позволяя браузеру выбирать соответствующий источник изображения. |
выравнивание | вправо влево | Ранее использовался для указания выравнивания и размещения изображения относительно окружающего текста. Он устарел и не должен использоваться. |
alt | текст | Определяет альтернативный текст, который может быть представлен вместо изображения. |
граница | пикселей | Ранее использовался для определения границы элемента изображения. Он устарел и больше не должен использоваться. |
элементы управления | Переключаемые элементы управления медиаплеером при использовании в сочетании с атрибутом dynsrc . Оба атрибута теперь устарели. | |
dynsrc | ||
hspace | Ранее использовался для добавления горизонтального пространства с обеих сторон изображения. Сейчас это устарело. | |
ismap | Идентифицирует изображение как карту изображения на стороне сервера. При нажатии на содержащую якорную ссылку координаты мыши будут включены в запрос. | |
longdesc | Определяет URL-адрес, по которому можно найти дополнительную информацию об изображении. Он был выписан из спецификации HTML5, но его статус не так ясен, как другие устаревшие функции. | |
Цикл | Ранее использовался для указания количества раз, которое должно воспроизводиться видео, при использовании в сочетании с атрибутом dynsource. Оба атрибута устарели. | |
lowsrc | Задает версию изображения меньшего размера или более низкого качества. | |
имя | Идентифицировал изображение или предоставил дополнительную информацию о нем. Устарело в HTML 4.0 в пользу других атрибутов. | |
naturalsizeflag | Этот атрибут ничего не делает. Когда-то он использовался проприетарной программной системой. | |
nosave | Предназначался для предотвращения загрузки изображений пользователями. Никогда не был частью спецификации HTML и широко не применялся. | |
запуск | открытие файла наведение курсора мыши | |
подавление | Используется ныне несуществующим браузером Netscape для подавления отображения изображения до завершения загрузки изображения. | |
usemap | Указывает карту изображения на стороне клиента, которая будет использоваться с изображением. | |
ширина | Указывает внутреннюю ширину изображения в пикселях CSS. | |
src | Указывает URL-адрес отображаемого изображения. |
Адам Вуд
Адам — технический писатель, специализирующийся на документации и руководствах для разработчиков.