From 6041ac8464ba0edf92f93d40fc52a49188238dcd Mon Sep 17 00:00:00 2001 From: Light1YT Date: Fri, 22 May 2026 15:35:01 +0500 Subject: [PATCH] =?UTF-8?q?fix(tradein):=20=D1=84=D0=BE=D1=82=D0=BE=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D0=BB=D0=BE=D0=B3=D0=B0=20=D0=B2=20=D0=A1?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=BA=D0=B5=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B5=20=D1=81=D0=BA=D1=80=D1=8B=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BB=D0=B5=D0=B9=D1=81=D1=85=D0=BE=D0=BB=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В .hero-photo псевдоэлементы ::before/::after рисуют декоративный скелет-плейсхолдер «фасада дома». Они position:absolute, а с фото аналога — position:static, поэтому абсолютные псевдоэлементы рисовались ПОВЕРХ картинки: реальное фото загружалось (naturalWidth есть), но визуально всегда был серый плейсхолдер. Фото (z-index 1) и подпись .photo-meta (z-index 2) теперь над скелетом. Скелет остаётся виден, когда фото нет или оно не загрузилось (onError → display:none). --- tradein-mvp/frontend/src/components/trade-in/trade-in.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tradein-mvp/frontend/src/components/trade-in/trade-in.css b/tradein-mvp/frontend/src/components/trade-in/trade-in.css index c398f178..1cfb9017 100644 --- a/tradein-mvp/frontend/src/components/trade-in/trade-in.css +++ b/tradein-mvp/frontend/src/components/trade-in/trade-in.css @@ -537,8 +537,16 @@ background: linear-gradient(135deg, oklch(85% 0.02 250), oklch(78% 0.025 240)); overflow: hidden; } + /* Реальное фото аналога должно перекрывать плейсхолдер-скелет (::before / + ::after) — иначе абсолютные псевдоэлементы рисуются поверх . + Если фото нет или оно не загрузилось — скелет остаётся виден. */ + .hero-photo img { + position: relative; + z-index: 1; + } .hero-photo .photo-meta { position: absolute; + z-index: 2; bottom: 10px; left: 12px; display: inline-flex; gap: 6px; padding: 4px 8px;