Какой тег встраивает изображение в файл
Перейти к содержимому

Какой тег встраивает изображение в файл

  • автор:

HTML/Вставка изображения

Рассмотрим случай вставки изображения в веб-страницу. Для этого используется тег <img>.

Тег <img> [ править ]

Описание [ править ]

Вставляет в содержимое сайта изображение. Обязательно указание URL-адреса изображения или адреса размещения изображения на компьютере.

Пример [ править ]

Результат:

Атрибуты [ править ]

Основные [ править ]
src [ править ]

Обязательный атрибут. В нём должен быть указан URL-адрес изображения или адрес файла на компьютере.

width и height [ править ]

Определяют ширину (width) и высоту (height) изображения. Если значения этих атрибутов не заданны, изображение вставляется в таком размере, в каком оно размещено в файле. Вместо них рекомендуется использовать CSS.

align [ править ]

Выравнивание изображения в блоке, в котором оно находится. Может иметь значения:

  • left — слева
  • center — по центру
  • right — справа

Вместо этого атрибута также рекомендуется использовать CSS.

alt [ править ]

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

Использование чужих изображений [ править ]

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

В интернете есть базы бесплатных изображений. Обычно, в качестве условий использования — требование указать автора изображения где-то в подписях к сайту. Что, в общем-то, приемлемо.

Создание изображений [ править ]

Изображения созданные с помощью ворованного ПО не защищаются авторским правом. Но существуют очень даже функциональные бесплатные графические редакторы. [1]

Тег <img> HTML картинка

++++-

Тег <img> используется для вставки графического изображения (картинки) в HTML документ.

HTML тег <img> имеет два обязательных атрибута: src — адрес файла картинки и alt — альтернативный текст, который будет отображен, если картинка не может быть загружена. Также не лишним будет использование глобального атрибута title .

Изображение из тега <img> может быть ссылкой. Для этого нужно обвернуть тег <img> тегом ссылки <a> (см. пример ниже).

Синтаксис

Отображение в браузере

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

Пример использования <img> в HTML коде

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

Тег
<img> Да Да Да Да Да

Атрибуты

Альтернативный текст, который будет выведен, если картинка не будет загружена.

ismap
пусто

Логический атрибут. Указывает, что картинка является серверной (server-side) картой-изображением.

URL файла, где содержится детальное описание картинки.

Указывает URL файла картинки.

Указывает, что картинка является клиентской (client-side) картой-изображением.

Устаревшие атрибуты

Указанные ниже атрибуты не поддерживаются в HTML5. Используйте CSS вместо них.

Правило выравнивания картинки.

Ширина границ картинки.

Ширина горизонтальных отступов (пустое место слева и справа от картинки).

Ширина вертикальных отступов (пустое место сверху и снизу от картинки).

Поделиться в Facebook Поделиться в ВКонтакте Поделиться в Одноклассники Поделиться в Twitter

++++-

Отдельного урока по этой теме не делал.

Чтобы сделать отступ от изображения, вы можете использовать CSS-свойство margin (например, «margin: 15px;» — отступ 15 пикселей со всех сторон картинки, «margin-right: 10px;» — отступ 10 пикселей справа).

Границу можно сделать с помощью CSS-свойства border (например, «border: 1px solid black;» — черная линия шириной 1 пиксель).

Для выравнивания картинки есть много способов. Тут уже зависит от ваших потребностей. Для выравнивания по центру блока (по горизонтали), например, можете использовать CSS-правило: «text-align: center;» у родительского блока.

<img> HTML – Image Tag Tutorial

Kolade Chris

Kolade Chris

<img> HTML – Image Tag Tutorial

In HTML, you use the <img> tag to add images to websites. It is an inline and empty element, which means that it doesn’t start on a new line and doesn’t take a closing tag (unlike the paragraph ( <p> ) tag, for instance).

The <img> tag takes several attributes, of which src , height , width , and alt are the most important.

Knowing the ins and outs along with some best practices of the <img> tag is crucial because images can negatively affect your site’s load time and SEO.

So in this tutorial, we will take a look at how to add images to websites using the <img> tag, how to use its attributes, some best practices, and modern approaches to using <img> .

Basic HTML <img> Tag Syntax

Here’s the basic syntax for adding an <img> tag to your HTML:

Now let’s talk about its attributes and how they work.

HTML <img> Tag Attributes

The src Attribute

The src attribute signifies the image source. Without it, the tag itself wouldn’t be functional in the real world.

It indicates to the browser where to find the image. So it takes a relative path if the image is hosted locally, or an absolute URL if the image is hosted online.

The alt Attribute

The alt attribute specifies an alternative text for the image. This could be the text that shows during a network failure, for example. Or it could display something when the image source is wrongly specified, so users know what the image is about.

In the code snippet below, the image source is wrongly specified, showing you the role that the alt attribute plays:

This is the CSS that centers the image horizontally and vertically:

alt-text-1

And it looks like this:

The alt attribute is very important for 2 other reasons:

  • SEO: it indicates to web crawlers what the image is about
  • Accessibility: it helps screen readers know what the image is about so they can report that to visually impaired people. In addition, it lets users with low bandwidth know what the image is about.

The width and height Attributes

You can use these attributes to specify a certain width and height for your images. With these attributes, you can resize the image down or up.

Ideally, though, you shouldn’t resize an image with these attributes. We’ll touch on this more under best practices.

HTML <img> Tag Best Practices

Do not resize an image with the width and height attributes.

This is a bad practice because it can make the image appear distorted and can affect the quality.

Instead, you can optimize the image to your desired dimensions with photo editing software such as Photoshop.

In the code snippet below, I specify a width and height for the image – a bad practice:

wrong-width-height-usage-1

The image looks like this:

no-width-height-1

Without using the width and height attributes, the image looks like this:

Looks better? Yes!

Name Your Images Appropriately

Naming images appropriately can help search engines understand what the image is about. For example, name an image ring-tailed-lemurs.webp instead of photo-1580855733764-084b90737008.webp . The latter is not enough for search engine optimization (SEO).

Reduce Image File Size

The image’s file size is crucial when it comes to page speed. A smaller image size (that preserves the image’s quality) reduces load time while larger images take forever to load.

There are several tools and various software that can help you do this. Some examples are imageOptim, jStrip, and PNGGauntet. And if you’re concerned about SEO, you’ll want to look into these – as page speed is an important ranking factor.

Host Images with a CDN

Imagine if a website is hosted in the United States but a user in Africa wants to accessed it. Assets such as images and icons would have to travel from The States to Africa, which in turn slows download time.

Using a CDN (Content Delivery Network) will allow the website’s images to be cached across several locations around the world. The CDN can then serve them from locations closest to the user, improving load time and providing a better user experience.

Cloudflare is a popular CDN that a lot of developers use to host their images.

Use Descriptive Alternative Text

Using descriptive alternative text helps search engines understand what the image is about. But it doesn’t end there – the alt text must also be relevant to the image.

For example, use this:

Use the title Attribute to Show Tooltips

Just like the alt attribute, you can use the title attribute to show additional information about the image. Browsers display this as a tooltip when the user hovers over the image.

tooltip-1

<img> Tag Modern Approaches

There are various ways you can use the <img> tag that are a bit more up to date and modern. Let’s look at some of them now.

Lazy Load Images

Lazy loading is a newish «load what is needed» concept. With lazy loading, the image is loaded only when the user scrolls to its viewport.

This is in contrast to eager loading, which loads every image immediately after the page is rendered by the browser.

To apply lazy loading, add the loading attribute to the <img> tag and set the value to “lazy”.

Images are often quite high quality and large these days, but this can negatively impact user experience and SEO – hence the introduction of lazy loading.

Use the <figure> and <figcaption> Tags

Often, you might need to specify to the user the caption of an image. A lot of developers do this by placing a <p> tag right after the <img> .

This might not be wrong, but it defies best practices and does not associate the caption with the image, so search engines won’t understand what it is.

wrong-captioning-1

Its is clear that there is no association between the image and the caption in the above example.

HTML5 introduced the <figure> and <figcaption> elements to help with this. You wrap the <img> tag inside a <figure> element, and you specify a caption within the <figcaption> element.

This helps search engines associate the caption with the image, leading to better performance and SEO.

The snippets of code below and the screenshots show you an image with and without the <figure> and <figcaption> elements:

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

right-captioning

You can see now that the image and the caption are beautifully associated.

Use the .webP Image Format

.webP is an image format created by Google. According to the creator, it’s an image format lower in size than its counterparts — JPG, JPEG, PNG, but with the same quality.

This format has been getting more and more widely accepted and is considered the nextgen image format for the web.

Conclusion

I hope this article helps you understand how the <img> tag works in HTML so you can use it properly in your projects. If you do so, it’ll help improve your user experience and SEO.

[в закладки] Работа с изображениями в веб

Одно из решений, которые приходится принимать фронтенд-разработчику при создании сайта, касается выбора способа включения изображений в состав веб-страниц. Этот способ может заключаться в использовании HTML-тега <img> . Это может быть применение CSS-свойства background или тега <image> элемента <svg> . Выбор правильного подхода к работе с изображениями весьма важен, так как это может очень сильно повлиять на производительность и доступность проекта.

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

HTML-элемент <img>

Элемент <img> в простейших вариантах его использования содержит лишь необходимый для его правильной работы атрибут src :

▍Настройка атрибутов width и height

Если не будут настроены ширина и высота изображения, то при загрузке странице с последующей загрузкой изображения макет страницы может понадобиться перестроить. Для того чтобы этого избежать, можно задать атрибуты width и height тега <img> :

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

Кадр из видео. У изображения слева ширина и высота не заданы. У изображения справа — заданы

Здесь показана панель Network инструментов разработчика браузера и продемонстрирован процесс загрузки пары изображений. Одно из них, расположенное слева, представлено тегом <img> , у которого атрибуты width и height не заданы. У другого значения этих атрибутов заданы.

Вы заметили, что на странице место под правое изображение резервируется ещё до того, как это изображение будет загружено? Всё дело в заданных атрибутах width и height . Обратите внимание и на то, что происходит с подписями к изображениям в процессе их загрузки. Это — наглядная демонстрация силы атрибутов width и height .

▍Скрытие изображения средствами CSS

Изображение можно скрыть с помощью CSS. Правда, такое изображение всё равно загружается при загрузке страницы. Поэтому, поступая так, следует соблюдать осторожность. Если некое изображение нужно скрыть, то оно, возможно, используется лишь в декоративных целях.

Вот CSS-код, скрывающий изображение:

Повторюсь: при таком подходе браузер будет загружать изображение, делая это даже в том случае, если оно оказывается невидимым. Дело тут в том, что элемент <img> считается замещаемым элементом, поэтому наши возможности по управлению таким элементом из CSS ограничены.

▍О доступности контента

Доступность изображений, выводимых на страницах с помощью HTML-элемента <img> , обеспечивается их атрибутами alt . В таком атрибуте должно содержаться понятное описание изображения. Это может очень пригодиться пользователям, применяющим средства для чтения с экрана.

Однако в том случае, если в alt -описании изображение не нуждается, этот атрибут, всё равно, удалять не рекомендуется. Дело в том, что если это сделать, то «озвучено» будет содержимое атрибута src . Это очень плохо для доступности контента.

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

У нас есть пара изображений:

В атрибуте src записан неправильный адрес к графическому файлу, этот файл не может быть загружен браузером. У первого <img> нет атрибута alt , а у второго есть такой атрибут, в который записана пустая строка. Как вы думаете, как эти элементы будут выведены на странице?

Слева — изображение без атрибута alt. Справа — с пустым атрибутом alt

Под изображение без атрибута alt резервируется пространство страницы, что может запутать пользователя и ухудшить доступность контента. А другое изображение занимает совсем мало места, которое нужно для вывода «содержимого» пустого атрибута alt . В результате оно больше похоже на точку, а не на изображение. Происходит это и-за настроек свойства border изображения.

Правда, когда в атрибут alt что-то записано, изображение будет выглядеть уже по-другому.

Справа — изображение, в атрибут alt которого записан текст

Это гораздо лучше, чем ничего. Кроме того, если не удаётся загрузить файл, выводимый в <img> , можно добавить к нему псевдо-элемент.

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

Изображения разных размеров

Элемент <img> хорош тем, что его можно настроить так, чтобы он выводил бы разные версии изображения в областях просмотра страницы разного размера. Это, например, можно использовать для изображений, применяемых в статьях.

Отзывчивый набор изображений можно настроить двумя способами.

1. Атрибут srcset

Вот код изображения, в котором используется атрибут srcset :

Это — простой пример. Я не считаю идеальным решением использование srcset для описания изображений разных размеров, выводимых на экранах с разными характеристиками. Дело в том, что в такой ситуации последнее слово остаётся за браузером, а разработчик на выбор браузера повлиять не может.

2. HTML-элемент picture

Вот код, в котором используется элемент <picture> :

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

Вот демонстрационный проект к этому разделу.

▍Изменение размеров изображений

Слева — изображение, у которого не задано CSS-свойство object-fit. Справа — изображение, у которого это свойство задано

CSS-свойства object-fit и object-position — это замечательные инструменты, которые можно использовать с элементом <img> . Они дают нам контроль над тем, как изменяется и позиционируется содержимое элемента <img> . Это напоминает работу с CSS-свойством background .

Свойство object-fit может иметь следующие значения: fill , contain , cover , none , scale-down .

Вот как им пользоваться:

Теперь, когда мы немного разобрались с элементом <img> , пришло время двигаться дальше и осваивать следующую методику работы с изображениями.

Изображения, задаваемые CSS-свойством background

Когда для вывода изображений используют CSS-свойство background , нужно, чтобы это свойство применялось бы к элементу с неким содержимым, или к элементу, у которого заданы размеры. Обычно главной сферой использования этого свойства являются декоративные элементы.

▍Как пользоваться CSS-свойством background

Для того чтобы воспользоваться CSS-свойством background , нам сначала понадобится элемент:

Потом понадобится стиль:

▍Задание нескольких изображений в свойстве background

Приятное свойство изображений, выводимых средствами CSS-свойства background , заключается в том, что таких изображений может быть несколько. Этими изображениями можно управлять средствами CSS:

▍Скрытие изображения

Средствами CSS можно скрывать и показывать изображения в конкретной области просмотра. При этом изображения, которые не будут выводиться, не будут и загружаться. Если изображение в CSS не настроено как видимое, то и загружаться оно не будет. Это — дополнительное преимущество CSS-свойства background перед элементом <img> .

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

▍О доступности контента

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

▍Сложности с загрузкой background-изображений обычными пользователями

Обычные пользователи знают о том, что если нужно сохранить некое изображение — достаточно щёлкнуть по нему правой кнопкой мыши и выбрать соответствующую команду контекстного меню. Может, это покажется вам забавным, но с изображениями, задаваемыми с помощью CSS-свойства background , этот приём не работает. Такое изображение обычным способом не загрузить. Для его загрузки потребуется исследовать код элемента в инструментах разработчика и воспользоваться ссылкой из url .

▍Псевдо-элементы

Псевдо-элементы можно использовать и с изображениями, задаваемыми CSS-свойством background . Например — для показа одного изображения поверх другого. В случае с элементом <img> этого можно достичь только с использованием дополнительного элемента, накладываемого на другой элемент.

Теперь поговорим об использовании SVG-изображений

SVG-изображения

Основной сильной стороной SVG-изображений считается возможность их масштабирования без потери качества. Более того, элемент <svg> может выводить, помимо SVG-изображений, ещё и файлы формата JPG и PNG. Вот HTML-код SVG-изображения:

JPG-изображение, выведенное средствами элемента SVG

Обратили внимание на атрибут preserveAspectRatio ? Благодаря ему изображение занимает полную ширину и высоту элемента <svg> , не растягиваясь и не сжимаясь.

Если ширина элемента <image> больше, оно заполнит родительский элемент ( <svg> ) по ширине, но при этом не будет растягиваться.

Изображение не растягивается

Это очень похоже на то, как работают CSS-свойства object-fit: cover или background-size: cover .

▍О доступности контента

Если говорить о доступности контента при использовании SVG-изображений, то могу сказать, что такой разговор сразу напоминает мне об элементе <title> . Ниже показан пример кода, в котором к изображению, выводимому средствами <svg> , добавлен такой элемент:

Тут, более того, можно воспользоваться и элементом <desc> :

▍Сложности с загрузкой <svg>-изображений обычными пользователями

Изображение, выведенное с помощью <svg> , можно загрузить, лишь проанализировав его код и добравшись до ссылки на изображение. Это минус, но в том случае, если некто хочет ограничить возможности обычных пользователей по загрузке изображений, эта особенность может и пригодиться. По меньшей мере, это снизит шансы на загрузку такого изображения.

→ Вот пример к этому разделу

Сценарии использования разных способов вывода изображений

▍Раздел страницы, выводимый в её верхней части

Проектируя раздел страницы, находящийся в её верхней части (такой раздел называют «Hero Section»), иногда нужно сделать так, чтобы в нём выводилось бы изображение, поверх которого выводится заголовок и какие-то другие данные о странице. Выглядеть это может примерно так, как показано ниже.

Верхняя часть страницы с изображением и надписями

Обратите внимание на то, что тут имеется фоновое изображение. Как бы вы подошли к разработке подобного раздела страницы? Но, прежде чем вы ответите на этот вопрос, позвольте мне сформулировать некоторые требования:

  • Изображение должно поддерживать лёгкую динамическую смену при интеграции страницы с бэкенд-CMS.
  • Поверх изображения должен быть наложен элемент, упрощающий чтение текста.
  • Нужно поддерживать вывод изображения в трёх размерах: в маленьком, среднем и большом. Каждый из них предназначен для собственной области просмотра.
  1. Важно ли это изображения с точки зрения пользователя, или он ничего не потеряет в том случае, если оно будет не видно?
  2. Нужно ли, чтобы это изображение выводилось в областях просмотра всех размеров?
  3. Является ли это изображение статическим, или оно динамически меняется (из CMS, например)?
Первый вариант решения задачи

Используя CSS-свойство background с несколькими заданными в нём изображениями, одно из них можно использовать для элемента, накладываемого на основное изображение, а другое — для представления самого изображения. Взгляните на этот CSS-код:

Этот подход позволяет достичь желаемого, background-image можно менять средствами JavaScript:

Свойство background я определил во встраиваемом стиле. Хотя это и рабочий код, выглядит он плохо и отличается непрактичностью.

Может быть, можно воспользоваться здесь CSS-переменными?

Вот результат исследования стиля.

Исследование стиля элемента

Теперь для изменения фонового изображения нам достаточно поменять переменную —bg-url . Это в миллион раз лучше, чем встроенные стили.

Анализ
  1. Предложенный здесь вариант решения задачи хорош лишь в том случае, если изображение не особенно важно.
  2. Он может подойти в том случае, если изображение не планируется менять динамически, средствами CMS, используемой на бэкенде проекта.
Второй вариант решения задачи

Здесь мы воспользуемся HTML-средствами вывода изображения:

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

Это решение хорошо тем, что при его использовании очень легко поменять атрибут изображения src . Кроме того, оно лучше для того случая, когда выводимое изображение важно.

Кроме того, отмечу, что мне нравится в <img> -изображениях то, что при их использовании можно использовать резервные механизмы, срабатывающие в том случае, если файл изображения загрузить не удаётся. Такой вспомогательный механизм, скажем, вывод вместо изображения простого цветного фона, по крайней мере, позволит пользователям прочитать текст:

Фоновый цвет, выводимый в том случае, если изображение загрузить не удаётся

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

▍Логотип веб-сайта

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

  • Элемент <img> , выводящий PNG, JPG или SVG-изображение.
  • Встроенное SVG-изображение.
  • Фоновое изображение.
Логотип с множеством деталей

Если логотип имеет множество деталей или содержит много фигур, вывод его с использованием встроенного SVG-изображения может оказаться не такой уж хорошей идеей. В такой ситуации я рекомендую использовать тег <img> , средствами которого выводится PNG, JPG или SVG-изображение.

Разные логотипы

Вот код для вывода подобного логотипа, хранящегося в формате SVG:

Простой логотип, который нужно анимировать

Простой анимированный логотип

Рассмотрим ситуацию, когда имеется простой логотип, содержащий некую фигуру или текст. При наведении на него указателя мыши нужно изменить цвет фигуры и текста. Как это сделать? Мне кажется, что в этой ситуации лучше всего воспользоваться встроенным SVG-изображением:

Вот демонстрационный проект к этому разделу:

Отзывчивый логотип

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

Отзывчивый логотип

Для реализации такого поведения логотипа идеально подойдёт элемент <picture> , который позволяет описать две версии логотипа:

В CSS нужно поменять ширину логотипа в том случае, если ширина область просмотра будет равной или большей 1350px :

Перед нами — простое и понятное решение проблемы отзывчивых логотипов.

→ Вот рабочий пример к этому разделу

Логотип с градиентом

Пример логотипа с градиентом

Работая с логотипами, на которых имеется градиент, нужно знать о том, что экспорт подобного логотипа из приложения для дизайна, вроде Adobe Illustrator или Sketch, может завершиться далеко не идеально. В ходе этого процесса что-то в логотипе может «поломаться».

При использовании формата SVG можно легко применить к логотипу градиентный цвет. В следующем примере я использовал <linearGradient> , настроив с его помощью атрибут текста fill :

▍Аватар пользователя

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

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

Пара удачных аватаров

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

Неудачный аватар

Обратите внимание на то, что на предыдущем рисунке изображён аватар с очень светлым фоном. В результате для того чтобы понять то, что он имеет круглую форму, к нему приходится присматриваться. Это плохо. Для того чтобы исправить эту проблему, нужно добавить к аватару внутреннюю границу. Эта граница будет использоваться в качестве вспомогательного решения, применяемого в том случае, когда изображение оказывается слишком светлым.

Слева — аватар со слишком светлым фоном. Справа — результат решения этой проблемы

Решить эту задачу можно несколькими способами:

  • С использованием <img> .
  • С использованием <img> и вспомогательного элемента <div> .
  • С использованием <div> и CSS-свойства background .
  • С использованием <image> в <svg> .
Использование <img>

Как решить эту задачу? Может — просто настроить границу элемента? Исследуем эту возможность (сразу извиняюсь за то, что ниже вы часто будете видеть мою фотографию).

Вот как это выглядит.

Результат оказался не таким, как ожидается: тёмная граница расположена за пределами границ изображения

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

Использование <img> и вспомогательного элемента <div>

Напомню, что перед нами стоит задача добавления к изображению внутренней тени. Эту задачу мы не можем решить с помощью внутренней тени ( box-shadow ) и ключевого слова inset , так как HTML-элементы <img> внутреннюю тень не поддерживают. Для решения этой задачи нужно поместить аватар в элемент <div> и воспользоваться ещё одним элементом, единственное предназначение которого — вывод внутренней границы.

Если у элемента <div> имеется граница, окрашенная в 10%-й чёрный цвет, это обеспечит нам то, что такая граница на тёмном изображении будет не видна, а на светлом будет заметна, выделяя его границу. Вот как это выглядит.

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

→ Вот пример к этому разделу

Использование <div> и CSS-свойства background

Если бы я использовал для вывода аватара элемент <div> , то это, возможно, значило бы, что изображение играет декоративную роль. Мне тут приходит в голову один пример, показанный ниже. Здесь разные аватары просто разбросаны по странице.

Аватары, разбросанные по странице

HTML-код здесь будет таким:

Здесь можно найти работающий пример.

Использование <image> в <svg>

Я полагаю, что это — наиболее интересное решение нашей задачи. Я обнаружил этот приём, изучая новый дизайн Facebook.

Сначала разберём этот код. Вот что тут есть:

  1. Маска, обрезающая изображение в виде круга.
  2. Группа, к которой применяется маска.
  3. Само изображение с атрибутом preserveAspectRatio=«xMidYMid» .
  4. Круг, который используется в роли внутренней границы.

→ Здесь можно найти пример

С аватарами мы на этом разобрались. Поэтому идём дальше.

▍Поле ввода с иконкой

Вот пример поля ввода с иконкой.

Поле ввода с иконкой

Такие поля встречаются довольно часто. Как оснастить поле иконкой? Что происходит при получении таким полем фокуса? Исследуем эти вопросы.

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

Для изменения цвета иконки при получении полем фокуса можно использовать URL-кодированное SVG-изображение. Сделать это очень легко. Например, для этого предназначен данный инструмент, разработанный Yoksel.

▍CSS-стили для печати

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

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

Постарайтесь не включать в страницы, предназначенные для печати, изображения, выводимые с помощью CSS-свойства background

Если изображение включается в состав страницы с помощью CSS-свойства background , тогда на печать оно выводиться не будет. То место, где оно отображалось, при печати окажется пустым. Вот о чём я говорю.

Пустые места вместо изображений, включённых в страницу с помощью CSS-свойства background

От такой печатной версии рецепта будет мало пользы. Исправить это можно, заставив браузер выводить подобные изображения в печатной версии страницы. Но этот подход не работает в Firefox и в IE. Вот как это выглядит в CSS:

В подобных ситуациях лучше всего пользоваться HTML-элементом <img> . Изображения, включённые в страницу с помощью этого элемента, выводятся на печать без проблем.

Итоги

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

Уважаемые читатели! Сталкивались ли вы с проблемами при выводе изображений на веб-страницах?

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

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