Дата: Воскресенье, 31.08.2025, 14:27 | Сообщение # 1 |
|
Написал: Начинающий
Автор темы
Мурчанн
не в сети
Сообщений: 101
Ранее я делал так, что по клику на информер можно было сразу переходить в профиль пользователя , это действительно удобно. Но на практике такой подход часто приводил к проблемам: информер слетал с настроек, блоки начинали тянуться в разные стороны, и исправить это становилось непросто. Поэтому теперь мы будем сохранять фундаментальную верстку неизменной, а все нововведения будем вводить только через визуальные эффекты и анимацию, без изменения структуры кликабельности блока. Это позволит информеру оставаться аккуратным и стабильным, но при этом выглядеть живо и интересно. CSS Код
<!-- ====== LILAC MINIMAL INFORMER FIXED REPUTATION ====== --> <style> .infsimg1 { border: 1px solid #aaa; background: #fff; padding: 2px; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,0.12); transition: transform 0.3s ease, box-shadow 0.3s ease; } .infsimg1:hover { transform: scale(1.1); box-shadow: 0 3px 10px rgba(0,0,0,0.2); } .spa { font-family: "Segoe UI", Geneva, Tahoma, Verdana, sans-serif; font-size: 13px; font-weight: 500; line-height: 1.4; color: #333; position: relative; box-shadow: 0 2px 6px rgba(0,0,0,0.08); padding: 6px 14px 6px 6px; display: flex; align-items: center; } /* Блок с именем и ролью */ .informer-left { display: flex; align-items: center; gap: 8px; flex-shrink: 0; /* чтобы не сжимался */ } .informer-text { display: flex; flex-direction: column; } /* Имя пользователя */ .username-link { font-weight: 500; font-size: 13px; color: #5b2c82; text-decoration: none; transition: color 0.3s ease; } .username-link:hover { color: #a569bd; } /* Роль */ .user-role { font-size: 11px; color: #777; margin-top: 2px; } /* Репутация (фиксированная справа) */ .positive { position: absolute; right: 28px; /* немного левее стрелки */ top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; font-size: 10px; font-weight: 500; color: #fff; border-radius: 12px; background: linear-gradient(135deg, #4b0082, #7d3c98); box-shadow: 0 1px 4px rgba(0,0,0,0.12); transition: transform 0.3s ease, box-shadow 0.3s ease; } .positive::before { content: "⭐"; font-size: 11px; } .positive:hover { transform: scale(1.1); box-shadow: 0 3px 10px rgba(0,0,0,0.2); } /* Стрелка */ .informer-arrow { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 14px; color: #9b59b6; opacity: 0.7; transition: transform 0.3s ease, opacity 0.3s ease; } .spa:hover .informer-arrow { transform: translateY(-50%) translateX(3px); opacity: 1; } </style>
HTML часть Код
<div class="spa"> <div class="informer-left"> <img class="infsimg1" src="$AVATAR_URL$" alt="$USERNAME$" width="36" height="36"> <div class="informer-text"> <a href="$PROFILE_URL$" class="username-link" title="$USERNAME$">$USERNAME$</a> <span class="user-role">Автор</span> </div> </div> <!-- Репутация фиксирована справа --> <span class="positive">$REPUTATION$</span> <!-- Стрелка --> <span class="informer-arrow">➜</span> </div>
Информер Код
<!-- ====== LILAC MINIMAL INFORMER FIXED REPUTATION ====== --> <style> .infsimg1 { border: 1px solid #aaa; background: #fff; padding: 2px; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,0.12); transition: transform 0.3s ease, box-shadow 0.3s ease; } .infsimg1:hover { transform: scale(1.1); box-shadow: 0 3px 10px rgba(0,0,0,0.2); } .spa { font-family: "Segoe UI", Geneva, Tahoma, Verdana, sans-serif; font-size: 13px; font-weight: 500; line-height: 1.4; color: #333; position: relative; box-shadow: 0 2px 6px rgba(0,0,0,0.08); padding: 6px 14px 6px 6px; display: flex; align-items: center; } /* Блок с именем и ролью */ .informer-left { display: flex; align-items: center; gap: 8px; flex-shrink: 0; /* чтобы не сжимался */ } .informer-text { display: flex; flex-direction: column; } /* Имя пользователя */ .username-link { font-weight: 500; font-size: 13px; color: #5b2c82; text-decoration: none; transition: color 0.3s ease; } .username-link:hover { color: #a569bd; } /* Роль */ .user-role { font-size: 11px; color: #777; margin-top: 2px; } /* Репутация (фиксированная справа) */ .positive { position: absolute; right: 28px; /* немного левее стрелки */ top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; font-size: 10px; font-weight: 500; color: #fff; border-radius: 12px; background: linear-gradient(135deg, #4b0082, #7d3c98); box-shadow: 0 1px 4px rgba(0,0,0,0.12); transition: transform 0.3s ease, box-shadow 0.3s ease; } .positive::before { content: "⭐"; font-size: 11px; } .positive:hover { transform: scale(1.1); box-shadow: 0 3px 10px rgba(0,0,0,0.2); } /* Стрелка */ .informer-arrow { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 14px; color: #9b59b6; opacity: 0.7; transition: transform 0.3s ease, opacity 0.3s ease; } .spa:hover .informer-arrow { transform: translateY(-50%) translateX(3px); opacity: 1; } </style> <div class="spa"> <div class="informer-left"> <img class="infsimg1" src="$AVATAR_URL$" alt="$USERNAME$" width="36" height="36"> <div class="informer-text"> <a href="$PROFILE_URL$" class="username-link" title="$USERNAME$">$USERNAME$</a> <span class="user-role">Автор</span> </div> </div> <!-- Репутация фиксирована справа --> <span class="positive">$REPUTATION$</span> <!-- Стрелка --> <span class="informer-arrow">➜</span> </div>
Прикрепления:
3757787.jpg
(38.0 Kb)
·
3624000.jpg
(45.2 Kb)
Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.