Тем временем во внешнем интерфейсе многое изменилось. Сейчас мы все делаем адаптивный дизайн страниц для многих устройств и размеров одновременно (мобильные, планшетные, настольные ...).
Итак, мне интересно, нужно ли еще указывать атрибуты ширины и высоты и по какой причине (для отзывчивости, скорости страницы, SEO ...)?
6 ответов
Элемент img
имеет атрибуты ширины и высоты, но они не требуются ни для какого DOCTYPE
.
Атрибуты ширины и высоты были «обязательными» или важными только для резервирования места на странице и предотвращения перемещения страницы при загрузке - что важно. Этого можно достичь с помощью CSS, вместо того, чтобы CSS загружался достаточно быстро - он, скорее всего, загрузится раньше изображений, так что все должно быть хорошо.
Также возможно (и допустимо) указать только один атрибут, ширину или высоту, и браузер будет вычислять пропущенное значение для поддержания правильного соотношения сторон.
При необходимости вы можете указать процентные значения в атрибутах. Вам не нужно использовать для этого CSS, если вы это имеете в виду.
Кроме того, уместно добавить: в HTML5 ширина и высота могут принимать только значение в пикселях, другими словами, действительное неотрицательное целое число.
Использование атрибутов ширины и высоты зависит от вашего дизайна. Если у вас много изображений разного размера, вы хотите объединить все размеры в CSS или включить их в img?
Да . По-прежнему актуально указывать атрибуты ширины и высоты изображений в HTML.
Изображения часто загружаются дольше, чем HTML-код, составляющий остальную часть страницы. Поэтому рекомендуется указать размер изображение, чтобы браузер мог отобразить остальной текст на страницы, оставляя нужное количество места для изображения, которое все еще загружается.
Следовательно, указание атрибутов ширины и высоты на изображении улучшит производительность веб-страницы за счет защиты от задержки при загрузке.
Если мы говорим об адаптивности, вы можете использовать бутстрап (если нет, начните делать это). При работе с изображениями вы должны добавить класс img-responseive, это при необходимости изменит ширину изображения, а высота будет автоматической, поэтому при уменьшении ширины уменьшится и высота.
У вас всегда будет изображение, которое сохраняет тот же% своего контейнера и никогда не теряет соотношение сторон.
Нет никакого отношения к объявлениям SEO и размера изображения. Скорость страницы всегда будет одинаковой, поэтому, если изображение 800 x 600 пикселей, вы загрузите полное изображение, даже если вы объявите его как 60 x 40 пикселей.
Вы должны думать, что даже при использовании img-responseive максимальная ширина и высота этого изображения будут реальными размерами изображения. Таким образом, если у нас есть изображение 800 x 600 пикселей, оно не будет увеличивать его (потому что оно теряет качество).
Поэтому в 2016 году НЕ рекомендуется указывать высоту и ширину изображения. Вместо этого используйте загрузочный класс img-responsive, другой адаптивный класс фреймворка, который дает тот же результат, или вручную сделайте правильный jquery и css, чтобы достичь того же.
Надеюсь, это поможет!
Хорошие стандарты всегда заслуживают рекомендации. С помощью небольшого дополнительного кода довольно легко объединить статические (px) значения тега img и общие (em,%) значения, предоставленные CSS. И что еще проще, полностью избавьтесь от тега img и установите изображение в качестве фона для div с уникальным идентификатором. Если у вас несколько изображений, используйте спрайты и назначьте каждое изображение соответствующему div. Тогда ваши источники разметки будут выглядеть примерно как <div id="image_001"></div>
- вот и все. Весы сами по себе; нет необходимости в раздутом ПО, таком как JQuery и т. д.
Что ж, основной ответ на этот вопрос (как и на большинство проблем с кодированием) таков: это зависит от ситуации.
Я бы сказал, что «лучшая практика» - всегда указывать атрибуты height
и width
изображений, существенно влияющие на скорость рендеринга страниц, восходит к тем временам, когда дизайнеры создавали свои веб-сайты с помощью таблиц и разделителей. Гифки. С тех пор мы прошли долгий путь.
Индикатором на будущее является введение в HTML нового элемента picture
. Элемент picture
фактически является оболочкой для существующего элемента img
, который позволяет вам указать несколько изображений разных размеров с помощью элемента source
, а пользовательский агент фактически определяет, какая версия используется.
<picture>
<source media="(min-width: 64em)" src="high-res.jpg">
<source media="(min-width: 37.5em)" src="med-res.jpg">
<source src="low-res.jpg">
<img src="fallback.jpg" alt="This picture loads on non-supporting browsers.">
<p>Accessible text.</p>
</picture>
Как видно из приведенного выше примера кода (взятого из В статье Intel Developer Zone об элементе HTML5 picture
) отсутствуют атрибуты height
или width
в самом элементе img
.
Вот подборка ресурсов, которые помогут вам выбрать наиболее подходящий метод объявления размеров изображений:
- Группа сообщества адаптивных изображений
- Примечание рабочей группы W3C: варианты использования и требования для стандартизации адаптивных изображений
- WHATWG HTML Living Standard: элемент
picture
ДА, вы хотите указать ширину и высоту изображения в 2016 году.
- Чтобы они были готовы к сетчатке
Если вы хотите, чтобы ваше изображение было готово к сетчатке, вы должны определить ширину и высоту ниже фактических пикселей. Если изображение 800x600, укажите <img width="400" height="300" />
.
- Чтобы избежать перехода на страницу
Без ширины и высоты изображение не знает, насколько оно велико, что вызывает нежелательный скачок на странице при загрузке (перекомпоновка). Объявление высоты и ширины решает эту проблему.
Обратите внимание, что:
- Изображения с определенной шириной и высотой по-прежнему могут реагировать. Просто добавьте
max-width
иmax-height
в свой CSS. Это приведет к уменьшению изображения (не вверх), когда оно не умещается на экране (см. Эту сладкую сетчатку- готовый, отзывчивый котенок). Определениеmin-width
иmin-height
сделает обратное. - Если вы используете одно (относительно большое) изображение для всех размеров экрана, рекомендуется добавить к вашему JPG огромное сжатие (около 50%), чтобы уменьшить размер файла.
Похожие вопросы
Связанные вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].