TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #3627 2.69K
#фишка дня

Что раздражает больше, чем незагрузившаяся картинка?

Правильно, дефолтное оформление этих самых картинок!

В Firefox просто будет alt-текст, Chrome ещё добавит какую-то убогую иконку из девяностых... ну такое.

Что же делать?

А решение простое: когда картинка не загрузилась, её контейнер подчиняется основным блочным правилам, а значит, на него можно набросить псевдоэлементы!

Чтобы было понятно, что конкретно не загрузилось — стоит ещё и attr(alt) докинуть.


img::after {
content: "Image of " attr(alt) "\A is not found 😞";
position: absolute;
inset: 0;
display: grid;
place-items: center;
text-align: center;
background: #eee;
border: 2px dashed;
white-space: pre-wrap;
color: #AA0000;
}


К слову, обратите внимание на пример: https://codepen.io/alinaki/pen/qEdEZOK

Там ещё и старый трюк с переводом строк без использования br использован: \A + pre-wrap.

Кстати, почему не ::before, а ::after? Да потому что Firefox занимает ::before под отображение alt и некоторые средства доступности могут этим пользоваться.

Оформляйте картинки правильно, котаны!

#css #img
  • 👍 30
  • ❤ 5
More from @htmlshit
  1. Oct 6, 2026#ссылка дня Недавно в нашем чате был жаркий спор на тему доступности. Мол, нормально делай…
  2. Oct 5, 2026Стилизация тултипов Два года назад я писал о проблеме с title и о принятом рабочей группой…
  3. Oct 5, 2026О господи, да неужели я при жизни увижу стилизацию title?!!
  4. Oct 4, 2026#инструмент дня Промо-видео на Rust. Что? Да! Давно знал об FFrames — фреймворке, в которо…
  5. Oct 2, 2026#ссылка дня В комментариях к посту про моргающее меню а-ля macOS HIG всплыл вопрос: а есть…
  6. Oct 1, 2026⚡️ JavaScript, архитектура и ИИ: о чем будут говорить на юбилейной HolyJS 2026 Autumn 📆 2…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →