Как подписать картинку в html
Перейти к содержимому

Как подписать картинку в html

  • автор:

Изображения¶

Декоративные изображения, такие как фоновые градиенты на кнопках или фоновые изображения на участках контента или всей странице, являются презентационными и должны применяться с помощью CSS. Когда изображение добавляет контекст в документ, оно является контентом и должно быть встроено в HTML.

Основным способом включения изображений является тег с атрибутом src , ссылающимся на ресурс изображения, и атрибутом alt , описывающим изображение.

img src="images/eve.png" alt="Eve" /> 
1 2 3 4 5 6
img src="images/eve.png" alt="Eve" srcset="images/eve.png 400w, images/eve-xl.jpg 800w" sizes="(max-width: 800px) 400px, 800px" /> 
1 2 3 4 5 6 7 8
picture> source src="images/eve.png" media="(max-width: 800px)" /> source src="images/eve-xl.jpg" /> img src="images/eve.png" alt="Eve" /> picture> 

В HTML также поддерживается включение SVG-изображений с помощью напрямую, хотя SVG-изображения с расширением .svg (или в виде data-uri) могут быть встроены с помощью элемента .

Как минимум, каждое изображение переднего плана должно содержать атрибуты src и alt .

Файл src — это путь и имя файла встроенного изображения. Атрибут src используется для указания URL-адреса изображения. Затем браузер получает актив и отображает его на странице. Этот атрибут необходим для ; без него нечего рендерить.

Атрибут alt содержит альтернативный текст для изображения, представляющий собой описание изображения для тех, кто не может видеть экран (вспомните поисковые системы и вспомогательные технологии, и даже Alexa, Siri и Google Assistant), и может быть показан браузером, если изображение не загружается. Помимо пользователей с медленными сетями или ограниченной пропускной способностью, текст alt невероятно полезен в HTML-сообщениях, поскольку многие пользователи блокируют изображения в своих почтовых приложениях.

img src="path/filename" alt="descriptive text" /> 

Если изображение имеет тип файла SVG, включите также role=»img» , что необходимо в связи с VoiceOver ошибками.

img src="switch.svg" alt="light switch" role="img" /> 

Эти примеры включают косую черту в конце, также ошибочно называемую самозакрывающимся тегом; это свойство XML, включая SVG и XHTML, но не HTML. Подробнее об этом см. примечание в модуле forms.

Написание эффективных описаний изображений alt .¶

Атрибуты Alt должны быть краткими и лаконичными, содержать всю необходимую информацию, которую передает изображение, и исключать информацию, избыточную по отношению к другому содержимому документа или иную бесполезную. При написании текста тон должен отражать тон сайта.

Чтобы написать эффективный альтернативный текст, представьте, что вы читаете всю страницу человеку, который не может ее видеть. С помощью элемента semantic пользователи и боты, читающие с экрана, получают информацию о том, что данный элемент является изображением. Включать в alt фразу «This is an image/screenshot/photo of» является излишним. Пользователю не нужно знать, что это изображение, но ему нужно знать, какую информацию передает изображение.

Обычно вы не говорите: «Это зернистое изображение собаки в красной шапке». Скорее, вы передадите то, что передает изображение в контексте остальной части документа, а то, что вы передадите, будет меняться в зависимости от контекста и содержания окружающего текста.

Например, фотография собаки будет описана по-разному, в зависимости от контекста. Если Пушистик — это аватарка рядом с отзывом о корме для собак Yuckymeat, то достаточно alt=»Пушистик» .

Если фотография является частью страницы усыновления Пушистика на сайте приюта для животных, то целевой аудиторией является потенциальный родитель собаки. Текст должен описывать информацию, переданную на изображении, которая важна для усыновителя и не дублируется в окружающем тексте. Уместно более длинное описание, например, alt=»Пушистик, трехцветный терьер с очень короткой шерстью, с теннисным мячиком во рту» . В тексте страницы, посвященной усыновлению, обычно указываются вид, порода, возраст и пол усыновляемого животного, поэтому их не нужно повторять в тексте alt. Но в письменной биографии собаки, скорее всего, не будет указана длина шерсти, цвет и предпочтения в игрушках. Обратите внимание, что мы не описывали изображение: потенциальному владельцу собаки не нужно знать, находится ли она в помещении или на улице, или что у нее красный ошейник и синий поводок.

При использовании изображений для иконографии, поскольку атрибут alt обеспечивает доступное имя, передавайте смысл пиктограммы, а не описание изображения. Например, атрибут alt значка лупы — search . У пиктограммы, похожей на дом, alt-текстом является home . Описание значка 5-дюймовой дискеты — save . Если есть две иконки Пушистика, используемые для обозначения лучших практик и антипаттернов, то у улыбающейся собаки в зеленом берете может быть установлен атрибут alt=»good» , а у рычащей собаки в красном берете — alt=»bad» . При этом следует использовать только стандартную иконографию, а при использовании нестандартных пиктограмм, таких как «хороший» и «плохой» пушистик, включать легенду и гарантировать, что пиктограммы не являются единственным способом расшифровки значения элементов пользовательского интерфейса,

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

Опускайте информацию, которую пользователь уже знает из контекста и которая иным образом осведомлена в контенте. Например, если вы находитесь на обучающей странице по изменению настроек браузера, а страница посвящена щелчку по значкам в браузере chrome, то URL страницы на снимке экрана не важен. Ограничьте alt темой: как изменить настройки. В качестве alt можно написать: «Значок настроек находится в навигационной панели под полем поиска». Не указывайте «screenshot» или «machinelearningworkshop», так как пользователю не нужно знать, что это скриншот, и не нужно знать, где был технический писатель, когда писал инструкцию. Описание изображения основывается на контексте того, зачем оно было включено.

Если изображение показывает, как найти номер версии браузера по адресу chrome://version/ , включите URL в содержимое страницы в качестве инструкции, а в качестве атрибута alt укажите пустую строку, поскольку изображение не дает никакой информации, которая не содержится в окружающем тексте.

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

img src="svg/magazine.svg" alt="" role="none" /> 

На сайте MachineLearningWorkshop.com имеется семь изображений переднего плана, следовательно, семь изображений с атрибутами alt: выключатель пасхального яйца, значок руководства, две биографические фотографии Хэла и Евы и три аватара блендера, пылесоса и тостера. Изображение переднего плана, похожее на журнал, является единственным чисто декоративным. На странице также есть два фоновых изображения, которые также являются декоративными и, поскольку добавлены с помощью CSS, недоступны.

Журнал, будучи чисто декоративным, имеет пустой атрибут alt и role = none , поскольку изображение является чисто презентационным SVG. SVG-изображения, если они имеют смысл, должны содержать атрибут role=»img» .

img src="svg/magazine.svg" alt="" role="none" /> 

В нижней части страницы расположены три обзора, каждый из которых содержит изображение плаката. Обычно текст alt — это имя человека, изображенного на плакате.

1 2 3 4 5
img src="images/blender.svg" alt="Blendan Smooth" role="img" /> 

Вместо этого, поскольку это шуточная страница, следует передать то, что может быть неочевидным для слабовидящих пользователей, чтобы они не пропустили юмор; мы используем оригинальную функцию машины в качестве alt , вместо того чтобы использовать имя персонажа:

img src="images/blender.svg" alt="blender" role="img" /> 

Фотографии преподавателей — это не просто аватары, это биографические изображения, поэтому они требуют более подробного описания.

Если бы это был реальный сайт, вы бы дали минимальное описание того, как выглядит преподаватель, чтобы будущий студент мог узнать его при входе в аудиторию.

1 2 3 4 5
img src="svg/hal.svg" role="img" alt="Hal 9000; a camera lens containing a red dot that sometimes changes to yellow." /> 

Поскольку это шуточный сайт, вместо этого предоставьте информацию, которая уместна в контексте шутки:

1 2 3 4 5
img src="svg/hal.svg" role="img" alt="Hal 9000, the sentient AI computer from 2001: a Space Odyssey depicted as a camera lens with a red dot that changes to yellow when hovered." /> 

Если бы вы читали эту страницу другу по телефону, ему было бы все равно, как выглядит красная точка. В данном случае важна история создания ссылки на фильм.

При написании описательного текста подумайте, какую важную и значимую для пользователя информацию передает изображение, и включите ее в текст. Помните, что содержание атрибута alt для изображения зависит от контекста. Вся информация, передаваемая на изображении, которая доступна зрячему пользователю и соответствует контексту, — это то, что необходимо передать, и ничего более. Будьте краткими, точными и полезными.

Атрибуты src и alt являются минимальными требованиями для встраиваемых изображений. Есть еще несколько атрибутов, которые мы должны обсудить.

Отзывчивые изображения¶

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

srcset атрибут¶

Атрибут srcset позволяет предлагать несколько файлов изображений, причем браузер выбирает, какое изображение запрашивать, на основе нескольких медиа-запросов, включая размер области просмотра и разрешение экрана.

Для элемента может использоваться один атрибут srcset , но этот srcset может ссылаться на несколько изображений. Атрибут srcset принимает список значений, разделенных запятыми, каждое из которых содержит URL-адрес актива, за которым следует пробел, а затем дескрипторы для данного варианта изображения. Если используется дескриптор ширины, то для каждого параметра srcset , кроме последнего, необходимо также включить атрибут sizes с медиазапросом или размером источника. Стоит ознакомиться с разделами, посвященными отзывчивым изображениям с srcset и описательным синтаксисам.

При совпадении изображений srcset будет иметь приоритет над изображением src .

и ¶

Браузер будет рассматривать каждый дочерний элемент и выбирать среди них наиболее подходящий. Если совпадений не найдено, то выбирается URL атрибута src элемента . Доступное имя берется из атрибута alt вложенного элемента . Стоит также ознакомиться с разделами Learn, посвященными элементу и прескриптивные синтаксисы.

Дополнительные возможности производительности¶

Ленивая загрузка¶

Атрибут loading указывает браузеру, поддерживающему JS, как загружать изображение. Значение по умолчанию eager означает, что изображение загружается сразу же после разбора HTML, даже если оно находится за пределами видимой области просмотра. При установке значения loading=»lazy» загрузка изображения откладывается до тех пор, пока оно, скорее всего, не попадет в область просмотра. «Вероятность» определяется браузером на основе расстояния, на котором изображение находится от области просмотра. Это значение обновляется по мере прокрутки изображения пользователем. Ленивая загрузка позволяет экономить полосу пропускания и процессор, повышая производительность для большинства пользователей. Если JavaScript отключен, то в целях безопасности все изображения по умолчанию будут иметь значение eager .

img src="switch.svg" alt="light switch" loading="lazy" /> 

Соотношение сторон¶

Браузеры начинают рендеринг HTML с момента его получения и делают запросы к активам по мере их появления. Это означает, что когда браузер встречает тег и делает запрос, он уже отрисовывает HTML. А загрузка изображений может занять некоторое время. По умолчанию браузеры не резервируют место для изображений, кроме размера, необходимого для отображения текста alt .

Элемент всегда поддерживал атрибуты height и width , не имеющие единицы измерения. Эти свойства вышли из употребления в пользу CSS. В CSS можно определять размеры изображения, часто задавая одно измерение, например max-width: 100%; , чтобы обеспечить сохранение соотношения сторон. Поскольку CSS обычно включается в , он разбирается до того, как встретится какой-либо . Однако без явного указания height или соотношения сторон, зарезервированное место является высотой (или шириной) текста alt . Поскольку большинство разработчиков указывают только ширину, получение и отрисовка изображений приводит к кумулятивному сдвигу макета, что вредит web vitals. Для решения этой проблемы браузеры поддерживают соотношение сторон изображения. Включение атрибутов height и width в действует как подсказки по размерам, сообщая браузеру соотношение сторон, что позволяет зарезервировать необходимое количество места для последующего рендеринга изображения. Указывая в изображении значения высоты и ширины, браузер узнает соотношение сторон этого изображения. Когда браузер сталкивается с одним измерением, как в нашем примере с 50%, он сохраняет место для изображения, придерживаясь CSS-измерения, а другое измерение сохраняет соотношение сторон по ширине и высоте.

1 2 3 4 5 6 7
img src="switch.svg" alt="light switch" role="img" width="70" height="112" /> 

Изображения по-прежнему будут отзывчивыми, если CSS был настроен правильно, чтобы сделать их отзывчивыми. Да, включенные в состав атрибуты height и width будут переопределены с помощью CSS. Цель включения этих атрибутов — зарезервировать пространство с правильным соотношением сторон, что повышает производительность за счет уменьшения смещения макета. Страница будет загружаться примерно столько же времени, но пользовательский интерфейс не будет перескакивать при отображении изображения на экране.

Другие возможности изображения¶

Элемент также поддерживает атрибуты crossorigin , decoding , referrerpolicy и, в браузерах на базе Blink, fetchpriority . Редко используется, если изображение является частью карты на стороне сервера, то для пользователей, не имеющих указательных устройств, следует включить булевский атрибут ismap и вложить в ссылку.

Атрибут ismap не нужен и даже не поддерживается для , поскольку координаты x и y места щелчка передаются во время отправки формы, добавляя значения к имени ввода, если таковое имеется. Например, что-то вроде &imageSubmitName.x=169&imageSubmitName.y=66 будет передано вместе с формой, когда пользователь щелкнет на изображении, отправив его. Если изображение не имеет атрибута name , то отправляются значения x и y: &x=169&y=66 .

Как добавить подпись под фотографией?

Добавить под фотографией подпись так, чтобы они одновременно обтекались близлежащим текстом.

Решение

Подпись под фотографией обычно применяется для комментирования изображения и краткого его описания. Хотя добавить подпись можно с помощью обычного абзаца, этот способ не работает, как только фотографию необходимо расположить по правому или левому краю веб-страницы. Подпись должна быть неразрывна с изображением, независимо от способа его расположения на странице.

Чтобы связать фотографию и подпись к ней воедино, их следует поместить в один блок и присвоить ему имя класса, к которому будут применяться стилевые параметры. Такой блок можно выравнивать по правому или левому краю, добавляя стилевое свойство float со значением right или left , а также задавать цвет фона и параметры рамки (пример 1).

Пример 1. Подпись под фотографией

HTML5 CSS 2.1 IE Cr Op Sa Fx

    Подрисуночная подпись  


Рис. 1. Фотография с подписью, выровненная по правому краю страницы

Поскольку в нашем случае ширина блока с фотографией не задавалась, то она будет определяться автоматически исходя из размера изображения и подписи к нему. Как видно на рис. 1 такой подход приводит к тому, что отступы слева и справа от фотографии получаются разными. Исправляется данная особенность добавлением к стилям блока свойства width с фиксированным значением.

Каскадные таблицы стилей CSS советы & приёмы

Эйфелева башня

Например, чтобы сместить изображение вправо на расстояние, равное 30% от ширины окружающих абзацев, используйте следующие правила:

figure

На самом деле, действительно необходимы только две первые декларации (float и width), а остальные использованы исключительно для оформления.

Масштабирование изображения

Здесь только одна проблема, и она заключается в том, что изображение может быть слишком широким. В этом случае, ширина изображения всегда будет составлять 136 px и иллюстрация будет занимать 30% от окружающего текста. И если вы сузите окно, то изображение может не поместиться и вылезти за рамку (попробуйте!).

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

figure

Сен-Тропе

 

class=scaled src="https://www.w3.org/Style/Examples/007/st-tropez.jpg" alt="Сен-Тропе">

Сен-Тропе и его форт в вечернем солнце

А вот таблица стилей:

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

И в дополнение последнее правило: этот приём делает изображение настолько широким, насколько позволяет пространство внутри иллюстрации (область внутри рамок и отступов — border и padding).

Размещение подписи сверху

Кап Ферра

HTML позволяет элементу figcaption быть либо первым, либо последним элементом внутри иллюстрации. Если не применять каких-либо правил CSS, это приведёт к тому, что подпись будет размещена либо над иллюстрацией, либо под ней соответственно.

Однако, независимо от разметки текста, вы можете указать в CSS, чтобы подпись появилась либо над изображением, либо под ним. Этого можно достичь, указав браузеру, что изображение должно быть отформатировано как таблица, в которой картинка является единственной ячейкой, а подпись становится заголовком таблицы. Просто добавьте эти правила в таблицу стилей из предыдущей секции:

figure < display: table; >figcaption

Стиль, который мы использовали на этой странице, содержит рамку серого цвета. Она обрамляет иллюстрацию. К сожалению, когда мы используем табличную разметку, чтобы поместить подпись сверху или снизу, мы должны указать рамку другим способом, потому что подпись размещена за пределами границы таблицы. Мы можем исправить это, поместив часть границы на саму подпись:

figure < border-top: none; padding-top: 0; >figcaption

Иллюстрации & подписи в HTML4

Эйфелева башня

Масштабированная модель Эйфелевой башни в Парке Мини-Франция

HTML4, в отличие от HTML5, не имеет элементов, которые бы позволили вставить в документ изображение с подписью. Это предлагалось сделать (см HTML3), но в итоге в HTML4 предложение не вошло. Вот единственная возможность воспроизвести элемент figure:

Масштабированная модель Эйфелевой башни в Парке Мини-Франция

Затем в таблице стилей вы используете класс "figure" для форматирования иллюстрации так, как вам необходимо. Например, чтобы сместить иллюстрацию вправо на расстояние, равное 30% от ширины окружающих абзацев, необходимо применить следующие правила:

div.figure

Как и ранее, необходимы только две первые декларации (float и width), а остальные использованы исключительно для оформления.

Масштабирование изображения в HTML4

Чтобы избежать выхода изображения за рамки иллюстрации и при условии, что вы знаете ширину всех изображений в документе, вы можете добавить минимальную ширину DIV следующим образом:

div.figure

Сен-Тропе и его форт в вечернем солнце

Чтобы смасштабировать изображение на всю ширину иллюстрации (как мы сделали с изображением справа), вы можете добавить атрибут КЛАССА и соответствующее правило CSS, очень похожее на пример с HTML5 выше. Вот разметка, которую мы использовали:

Сен-Тропе

Сен-Тропе и его форт в вечернем солнце

А вот таблица стилей:

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

Одно дополнение: этот приём делает изображение настолько широким, насколько позволяет DIV (площадь внутри border и padding).

Размещение описания сверху в HTML4

Кап Ферра

Средиземное море около Кап Ферра

Чтобы разместить подпись сверху, добавьте эти правила в таблицу стилей из предыдущих секций:

div.figure < display: table; >div.figure p + p

'+' приводит к тому, что правило действует на элемент P, который следует за другим P. Что означает, что условие действует на второй элемент P иллюстрации, который содержит описание картинки.

(Эта техника может привести к ошибкам в некоторых браузерах, разработанных ранее 2003, особенно в комбинации с масштабированием изображений, как в примере выше)

Как и прежде, серая рамка, которую мы выбрали для обрамления иллюстраций на этой странице, будет обрамлять только само изображение. Чтобы рамка была вокруг изображения и подписи, добавьте эти правила:

div.figure < border-top: none; padding-top: 0; >div.figure p + p

Навигация по сайту

Bert Bos, style activity lead
Copyright © 1994–2021 W3C ® Privacy policy

Created 17 January 2001;
Last updated Ср 06 янв 2021 05:40:49

Как наложить текст на картинку в html?

Или вариант что был предложен или воспользуйтесь position: absolute что бы поместить блок поверх другого.

14 фев 2018 в 4:25

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

   Наука.ру - главная   

Космоинфо

Погрузись в космос вместе с нами!

Новости Вопросы Основная


Отслеживать
ответ дан 14 фев 2018 в 4:22
user176262 user176262

Попробуй задать как фоновое изображение через CSS/SASS.

.image < background: url('image/image1.png'); width: 320px; height: 280px; //размер условный >
 

Текст Текст Текст

Отслеживать
6,651 6 6 золотых знаков 30 30 серебряных знаков 53 53 бронзовых знака
ответ дан 28 июл 2019 в 17:05
Анна Панина Анна Панина
21 1 1 бронзовый знак

Вариант 1, с использованием position: absolute

.container < position: relative; >.container img < position: absolute; >.container p
 

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Itaque, nulla?

Вариант 2, с использованием background-image (нужно знать размеры блока)

.bg < background: url('https://d626yq9e83zk1.cloudfront.net/files/2017/12/26-770x425.jpg') center center no-repeat; width: 300px; height: 300px; >.bg span
 
Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, rerum.

Отслеживать
ответ дан 14 фев 2018 в 4:31
2,298 1 1 золотой знак 9 9 серебряных знаков 12 12 бронзовых знаков

* < margin: 0; padding: 0; box-sizing: border-box; >.wrapper < display: grid; gap: 10px; grid-template-columns: 1fr; >.container < display: grid; place-items: end center; >.container img < width: 100%; object-fit: cover; >.container p < position: absolute; font-size: 20px; color: #fff; margin: 10px 10px 20px; > 

Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus, fugiat. A, ipsum architecto sit nihil minus tenetur mollitia sequi est nostrum laudantium praesentium doloremque blanditiis recusandae, dolorum assumenda sed qui perspiciatis dolores? Quidem, itaque suscipit rerum, cupiditate delectus nesciunt dignissimos vel, odio corporis exercitationem facere nihil modi ducimus quas fugit.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *