Дата: Пятница, 12.06.2026, 05:36 | Сообщение # 1 |
|
Написал: Известный
Автор темы
Мурчанн
не в сети
Сообщений: 288
Особого описания здесь не требуется, так как каких-либо сложных эффектов или нестандартных решений не использовалось. Основные изменения затронули визуальное оформление: стили были переработаны и выполнены в более светлых тонах, что сделало интерфейс легче и современнее. В остальном это преимущественно работа над внешним видом и адаптацией элементов под выбранную концепцию дизайна. CSS стили Код
/* ============================================ uCoz AJAX ОКНО - ФИНАЛЬНАЯ ПРОКАЧАННАЯ ВЕРСИЯ Цвет: #3b5998 (синий ВК/Facebook) ============================================ */ /* === ОРИГИНАЛЬНАЯ СТРУКТУРА === */ .x-sh, .x-sh * { overflow: hidden; margin: 0; border: 0; } .xsl *, .xsr *, .xsb * { height: 100%; } .x-sh .xstl { padding-top: 6px; background: transparent url(http://s1.unet.com/img/d/1/shadowh.png) no-repeat 0 0; } .x-sh .xsml { background: transparent url(http://s1.unet.com/img/d/1/shadowh.png) repeat-y -6px 0; } .x-sh .xstr { padding-top: 6px; background: transparent url(http://s1.unet.com/img/d/1/shadowh.png) no-repeat -18px 0; } .x-sh .xsmr { background: transparent url(http://s1.unet.com/img/d/1/shadowh.png) repeat-y -12px 0; } .x-sh .xsbl { padding-left: 6px; background: transparent url(http://s1.unet.com/img/d/1/shadowv.png) no-repeat 0 -6px; } .x-sh .xsbc { background: transparent url(http://s1.unet.com/img/d/1/shadowv.png) repeat-x 0 -12px; } .x-sh .xsbr { padding-right: 6px; background: transparent url(http://s1.unet.com/img/d/1/shadowv.png) no-repeat right 0; } /* === РАМКА ОКНА — СИНИЙ #3b5998 === */ .xw-tl { background: url(http://s1.unet.com/img/d/1/wframe-leftc.png) no-repeat 0 0; padding-left: 6px; position: relative; } .xw-tr { background: url(http://s1.unet.com/img/d/1/wframe-rightc.png) no-repeat 100% 0; padding-right: 6px; position: relative; } .xw-tc { background: url(http://s1.unet.com/img/d/1/wframe-horiz.png) repeat-x 0 0; font-size: 1px; line-height: 1px; overflow: hidden; position: relative; } .xw-tsps { height: 6px; } .xw-ml { background: url(http://s1.unet.com/img/d/1/wframe-vert.png) repeat-y 0 0; padding-left: 6px; } .xw-mr { background: url(http://s1.unet.com/img/d/1/wframe-vert.png) repeat-y 100% 0; padding-right: 6px; } .xw-plain .xw-mc { border: 2px solid #3b5998 !important; border-radius: 12px !important; padding: 0; margin: 0; font: normal 13px -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; background: #ffffff !important; color: #000000 !important; box-shadow: 0 8px 24px rgba(59, 89, 152, 0.25) !important; } .xw-bl { background: url(http://s1.unet.com/img/d/1/wframe-leftc.png) no-repeat 0 100%; padding-left: 6px; } .xw-br { background: url(http://s1.unet.com/img/d/1/wframe-rightc.png) no-repeat 100% 100%; padding-right: 6px; } .xw-bc { background: url(http://s1.unet.com/img/d/1/wframe-horiz.png) repeat-x 0 100%; overflow: hidden; font-size: 1px; line-height: 1px; height: 6px; } /* === КУРСОРЫ РЕСАЙЗА === */ .xw-resize .xw-tl { cursor: nw-resize; } .xw-resize .xw-tr { cursor: ne-resize; } .xw-resize .xw-sps, .xw-resize .xw-tsps { cursor: n-resize; } .xw-resize .xw-ml { cursor: w-resize; } .xw-resize .xw-mr { cursor: e-resize; } .xw-resize .xw-mc { cursor: default; } .xw-resize .xw-bl { cursor: sw-resize; } .xw-resize .xw-br { cursor: se-resize; } .xw-resize .xw-bc { cursor: s-resize; } /* === ЗАГОЛОВОК === */ .xw-plain .xw-body { border: none !important; background: #ffffff !important; } .xw-sps { height: 4px; overflow: hidden; position: absolute; width: 100%; z-index: 1; } .xw-hdr { padding: 0 !important; white-space: nowrap; height: 48px !important; background: #3b5998 !important; border-bottom: none !important; border-radius: 10px 10px 0 0 !important; } .xw-hdr-text { color: #ffffff !important; font: 600 15px -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; line-height: 48px !important; padding-left: 20px !important; } .xw-active .xw-hdr-text { color: #ffffff !important; } .xw-disabled, .xw-actlayer { background: url(http://s1.unet.com/img/1px.gif); } .xw-active .xw-actlayer { display: none; } .xw-draggable, .xw-draggable .xw-hdr-text { cursor: move !important; } /* === КРЕСТИК — ЯРКИЙ СИНИЙ С БЕЛЫМ СИМВОЛОМ === */ .xt { position: relative; width: 25px; height: 18px; overflow: visible !important; float: right; display: inline; cursor: pointer; background: transparent !important; } .xt-close, .xt-close2 { width: 30px !important; height: 30px !important; background: #ffffff !important; border-radius: 50% !important; margin: 9px 12px 0 0 !important; position: relative !important; transition: all 0.2s ease !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important; } .xt-close::before, .xt-close2::before { content: "✕" !important; position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; color: #3b5998 !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1 !important; font-family: Arial, sans-serif !important; } .xt-close:hover, .xt-close2:hover { background: #f0f2f5 !important; transform: scale(1.1) !important; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2) !important; } .xt-close:hover::before, .xt-close2:hover::before { color: #e64646 !important; } .xt-close:active, .xt-close2:active { transform: scale(0.95) !important; } .xt-mini { width: 26px !important; background-position: -26px -18px; } .xt-maxi { background-position: -25px -36px; } .xt-rest { background-position: -25px -54px; } .xt-reload { background-position: -25px -72px; margin-right: 5px; } .xt-help { background-position: -25px -90px; margin-right: 5px; } .xt-save { background-position: -25px -108px; margin-right: 5px; } .xw-blank { background: #3b5998; opacity: 0.4; filter: Alpha(Opacity='40'); overflow: hidden; } /* === КОНТЕНТ ОКНА === */ .myWinCont { -moz-user-select: text; padding: 20px !important; background: #ffffff !important; } .myWinGrid { background: url(http://s1.unet.com/img/d/1/g.gif) repeat; } .myWinLoad { margin: 5px; width: 31px; height: 31px; background: url('http://s1.unet.com/img/ajax.gif') no-repeat 0 0; } .myWinCont, .myWinCont td, .myWinCont dl, .myWinCont dt, .myWinCont legend, .myWinCont b { color: #000000 !important; font-size: 13px !important; font-family: -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; } .myWinCont a:link, .myWinCont a:visited { text-decoration: none; color: #3b5998; } .myWinCont a:hover, .myWinCont a:active { text-decoration: underline; color: #2d4373; } .myWinError { color: #e64646; } .myWinSuccess { color: #4bb34b; } /* === ЗАГОЛОВОК "СООБЩЕНИЕ" — СДВИГАЕМ НАД ПАНЕЛЬЮ BB === */ .myWinCont label:has(+ span#bc1), .myWinCont label:has(+ span#bc1) b { display: block !important; width: 100% !important; margin: 0 0 12px 0 !important; padding: 0 !important; font-size: 14px !important; font-weight: 600 !important; color: #000000 !important; line-height: 1.4 !important; } /* Фоллбэк для браузеров без :has() */ .myWinCont > label:first-of-type { display: block !important; width: 100% !important; margin: 0 0 12px 0 !important; font-size: 14px !important; font-weight: 600 !important; } /* === ПАНЕЛЬ BB-КОДОВ — КОМПАКТНАЯ, СИНЯЯ === */ .myWinCont span[id^="bc"] { display: inline-block !important; margin: 0 2px 6px 0 !important; vertical-align: middle !important; padding: 0 !important; } /* Все BB кнопки — синие с белым текстом */ .codeButtons { display: inline-flex !important; align-items: center !important; justify-content: center !important; background: #3b5998 !important; color: #ffffff !important; border: 1px solid #2d4373 !important; border-radius: 6px !important; padding: 4px 8px !important; font-size: 11px !important; font-weight: 600 !important; font-family: -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; cursor: pointer !important; transition: all 0.15s ease !important; margin: 0 1px 4px 0 !important; min-width: 24px !important; height: 26px !important; box-shadow: 0 1px 2px rgba(59, 89, 152, 0.2) !important; vertical-align: middle !important; line-height: 1 !important; } .codeButtons:hover { background: #2d4373 !important; border-color: #1f3057 !important; color: #ffffff !important; transform: translateY(-1px) !important; box-shadow: 0 3px 6px rgba(59, 89, 152, 0.3) !important; } .codeButtons:active { background: #1f3057 !important; transform: translateY(0) !important; box-shadow: 0 1px 2px rgba(59, 89, 152, 0.2) !important; } /* B, I, U — сохраняем начертание */ .codeButtons[value="b"] { font-weight: 800 !important; font-size: 12px !important; } .codeButtons[value="i"] { font-style: italic !important; } .codeButtons[value="u"] { text-decoration: underline !important; } /* Выпадающие списки SIZE и COLOR — тоже синие */ select.codeButtons { padding: 4px 6px !important; height: 26px !important; min-width: 60px !important; cursor: pointer !important; background: #3b5998 !important; color: #ffffff !important; border: 1px solid #2d4373 !important; border-radius: 6px !important; font-size: 11px !important; font-weight: 500 !important; transition: all 0.15s ease !important; appearance: auto; } select.codeButtons:hover { background: #2d4373 !important; border-color: #1f3057 !important; } select.codeButtons:focus { outline: none !important; border-color: #ffffff !important; box-shadow: 0 0 0 2px rgba(59, 89, 152, 0.3) !important; } select.codeButtons option { background: #ffffff !important; color: #000000 !important; font-weight: 500 !important; } /* === ТЕКСТОВОЕ ПОЛЕ === */ .myWinCont textarea { width: 100% !important; min-height: 140px !important; background: #ffffff !important; color: #000000 !important; border: 1px solid #3b5998 !important; border-radius: 10px !important; padding: 12px 14px !important; font-size: 14px !important; font-family: -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; line-height: 1.5 !important; resize: vertical !important; transition: border-color 0.2s ease, box-shadow 0.2s ease !important; outline: none !important; box-sizing: border-box !important; margin: 12px 0 12px 0 !important; } .myWinCont textarea:focus { border-color: #3b5998 !important; box-shadow: 0 0 0 3px rgba(59, 89, 152, 0.2) !important; } .myWinCont textarea::placeholder { color: #99a2ad !important; } /* === ТАБЛИЦА С ПОЛЕМ И СМАЙЛАМИ === */ .myWinCont table { display: block !important; width: 100% !important; border-collapse: collapse !important; } .myWinCont table tbody, .myWinCont table tr { display: block !important; width: 100% !important; } .myWinCont table td:first-child { display: block !important; width: 100% !important; padding: 0 0 8px 0 !important; } .myWinCont table td:last-child { display: block !important; width: 100% !important; padding: 8px 0 0 0 !important; } /* === СМАЙЛЫ === */ .myWinCont .smiles, .myWinCont .smiles-grid { display: flex !important; flex-wrap: wrap !important; gap: 4px !important; padding: 8px 0 !important; } .myWinCont .smiles a, .myWinCont .sml1 { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 32px !important; height: 32px !important; border-radius: 6px !important; background: transparent !important; transition: all 0.15s ease !important; text-decoration: none !important; } .myWinCont .smiles a:hover, .myWinCont .sml1:hover { background: #e9ebf1 !important; transform: scale(1.15) !important; } .myWinCont .smiles img { width: 24px !important; height: 24px !important; } /* === FIELDSET === */ .myWinCont fieldset { border: 1px solid #3b5998 !important; border-radius: 10px !important; padding: 14px 16px !important; background: #f5f7fb !important; margin: 12px 0 !important; } .myWinCont legend { font-size: 13px !important; font-weight: 600 !important; color: #3b5998 !important; padding: 0 8px !important; background: transparent !important; border: none !important; } .myWinCont legend b { color: #3b5998 !important; font-weight: 600 !important; } /* === ЧЕКБОКС === */ .myWinCont input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: #3b5998 !important; margin-right: 8px !important; cursor: pointer !important; vertical-align: middle !important; } .myWinCont label { color: #000000 !important; cursor: pointer !important; font-size: 13px !important; vertical-align: middle !important; } /* === РАЗДЕЛИТЕЛЬ === */ .myWinCont hr { border: none !important; border-top: 1px solid #dfe3ee !important; margin: 16px 0 !important; } /* === КОНТЕЙНЕР КНОПКИ === */ .myWinCont .flex-justify-end.flex-align-center { display: flex !important; justify-content: flex-end !important; align-items: center !important; gap: 12px !important; margin-top: 16px !important; padding-top: 16px !important; border-top: 1px solid #dfe3ee !important; } /* === КНОПКА "ДОБАВИТЬ" === */ .myWinCont button.ubtn-default, .myWinCont button[type="submit"] { display: inline-flex !important; align-items: center !important; justify-content: center !important; background: #3b5998 !important; color: #ffffff !important; border: none !important; border-radius: 8px !important; padding: 10px 28px !important; font-size: 14px !important; font-weight: 600 !important; font-family: -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; cursor: pointer !important; transition: all 0.15s ease !important; height: 38px !important; box-shadow: 0 2px 4px rgba(59, 89, 152, 0.3) !important; } .myWinCont button.ubtn-default:hover, .myWinCont button[type="submit"]:hover { background: #2d4373 !important; box-shadow: 0 4px 8px rgba(59, 89, 152, 0.4) !important; transform: translateY(-1px) !important; } .myWinCont button.ubtn-default:active, .myWinCont button[type="submit"]:active { background: #1f3057 !important; box-shadow: 0 1px 2px rgba(59, 89, 152, 0.3) !important; transform: translateY(0) !important; } /* === СКРОЛЛБАР === */ .myWinCont ::-webkit-scrollbar { width: 10px; height: 10px; } .myWinCont ::-webkit-scrollbar-track { background: #f0f2f5; border-radius: 5px; } .myWinCont ::-webkit-scrollbar-thumb { background: #3b5998; border-radius: 5px; } .myWinCont ::-webkit-scrollbar-thumb:hover { background: #2d4373; } /* === АДАПТИВНОСТЬ === */ @media (max-width: 600px) { .myWinCont { padding: 14px !important; } .xw-hdr-text { font-size: 14px !important; padding-left: 14px !important; } .codeButtons { padding: 4px 6px !important; font-size: 10px !important; height: 24px !important; } .myWinCont .smiles a, .myWinCont .sml1 { width: 36px !important; height: 36px !important; } .myWinCont .smiles img { width: 26px !important; height: 26px !important; } } /* ============================================ uCoz ОКНО РЕЙТИНГА: +1 ЗЕЛЁНЫЙ / -1 КРАСНЫЙ НЕ затрагивает окно "Ответить" (форму) ============================================ */ /* === БАЗА: ФОН, ШРИФТ, УБИРАЕМ СКРОЛЛ === */ .myWinCont { background: #ffffff !important; color: #000000 !important; font: 13px -apple-system, BlinkMacSystemFont, "Roboto", Arial, sans-serif !important; padding: 16px 20px !important; text-align: center !important; overflow: visible !important; max-height: none !important; height: auto !important; } /* Скрываем полосу прокрутки */ .myWinCont::-webkit-scrollbar { display: none !important; } .myWinCont { -ms-overflow-style: none !important; scrollbar-width: none !important; } /* === СБРОС ЖИРНОСТИ И ЦВЕТОВ ТЕКСТА === */ .myWinCont div, .myWinCont span, .myWinCont p, .myWinCont b, .myWinCont strong { color: #000000 !important; font-weight: normal !important; } /* === ЗЕЛЁНАЯ ОБВОДКА (ПО УМОЛЧАНИЮ / +1) === Только для окон БЕЗ формы (не цепляет окно "Ответить") */ .myWinCont:not(:has(form)):not(:has(fieldset)) > div { background: #f0fff4 !important; border: 2px solid #51cf66 !important; border-radius: 8px !important; color: #2b8a3e !important; font-size: 14px !important; padding: 12px 16px !important; margin: 0 !important; } /* === КРАСНАЯ ОБВОДКА (ЕСЛИ ЕСТЬ -1) === :has() определяет наличие .myWinError и меняет тему на красную */ .myWinCont:has(.myWinError) { background: #fff5f5 !important; } /* Убираем внутреннюю зелёную рамку при -1 */ .myWinCont:has(.myWinError) > div { background: transparent !important; border: 2px solid #ff6b6b !important; } /* Перекрашиваем ВЕСЬ текст внутри в красный при -1 */ .myWinCont:has(.myWinError) div, .myWinCont:has(.myWinError) span, .myWinCont:has(.myWinError) b { color: #c92a2a !important; } /* Сам -1 делаем чуть крупнее и ярче */ .myWinError { color: #ff4444 !important; font-weight: bold !important; font-size: 16px !important; }
Стили создавались под мой собственный шаблон, однако выполнены в стилистике современных социальных сетей, поэтому могут подойти и для многих других светлых шаблонов. Возможно, всплывающие окна стоит дополнительно доработать и расширить их функциональность. Например, можно добавить новые элементы с помощью JavaScript, подключить обработчики событий для автоматической подстановки различных изображений, аватаров и другого контента. В целом возможности для развития зависят только от поставленных задач и фантазии. На мой взгляд, сначала важно продумать концепцию и визуально представить результат, при необходимости создать макет или набросок, а уже после этого приступать к реализации в коде.
Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.