Я должен определить атрибуты высоты и ширины для своего IMGs в HTML?

Если Вы ищете пример полной NP проблемы тогда, я предлагаю, чтобы Вы смотрели на с 3 SAT .

основная предпосылка - Вы, имеют выражение в соединительная нормальная форма , который является способом сказать, что у Вас есть ряд выражений, к которым присоединяется ORs, что все должны быть верными:

(a or b) and (b or !c) and (d or !e or f) ...

проблема с 3 SAT состоит в том, чтобы найти решение, которое удовлетворит выражение, где каждое из ИЛИ-ВЫРАЖЕНИЙ имеет точно 3 булевских переменные для соответствия:

(a or !b or !c) and (!a or b or !d) and (b or !c or d) ...

решение для А этого могло бы быть (a=T, b=T, c=F, d=F). Однако никакой алгоритм не был обнаружен, который решит эту проблему в общем случае в полиномиальное время. То, что это означает, - то, что лучший способ решить эту проблему состоит в том, чтобы сделать по существу предположение-и-проверку грубой силы и попробовать различные комбинации, пока Вы не находите тот, который работает.

то, Что является особенным о проблеме с 3 SAT, - то, что ЛЮБАЯ полная NP проблема может быть уменьшена до проблемы с 3 SAT. Это означает, что, если можно найти, что полиномиально-разовый алгоритм решает эту проблему тогда, Вы добираетесь 1 000 000$ , не говоря уже об уважении и восхищении программистов и математиков во всем мире.

72
задан Josh Gibson 8 August 2009 в 01:21
поделиться

5 ответов

Согласно Google Page Speed ​​, вы всегда должны определять ширину и высоту в теге изображения. Но для проверки вы не можете использовать тег стиля.

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

Я бы посоветовал сделать это

<img src="..." height="20" width="50">

Изменить: Кто-то предположил в комментариях, что было бы быстрее просто не добавлять никаких атрибутов. Согласно Google (не то, что они являются концом всех знаний браузера):

Если в содержащем документе размеры не указаны или если указанные размеры не соответствуют размерам фактических изображений, браузер потребует перекомпоновки и перекрасить после загрузки изображений. Чтобы предотвратить перекомпоновку, укажите ширину и высоту всех изображений в теге HTML, или в CSS. - Подробнее

Учитывая это, вы можете делать размеры img в CSS, но для проверки вам нужно будет сделать это в файле CSS, а не во встроенном.

Кстати, Google Page Speed ​​- это серия советы, направленные на ускорение рендеринга страницы.

84
ответ дан 24 November 2019 в 12:42
поделиться

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

5
ответ дан 24 November 2019 в 12:42
поделиться

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

См. 13.7 Визуальное представление изображений, объектов и апплетов в спецификации HTML 4.01:

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

Они рекомендуются и не требуются , но вы действительно, действительно должны их указать; -)

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

Нет ничего хуже, чем дождаться загрузки страницы только потому, что эти изображения 400x300 (!) на самом деле больше похожи на 4000x3000 на 95% качество.

26
ответ дан 24 November 2019 в 12:42
поделиться

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


На самом деле не имеет значения, какой из них вы используете, но я Я бы рекомендовал использовать только один.

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

1
ответ дан 24 November 2019 в 12:42
поделиться

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

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

<img src="profilepic.jpg" alt="image" />
0
ответ дан 24 November 2019 в 12:42
поделиться