/* Контейнер логотипа */
.l-top_menu-v2 .logo-container
/* Иконка в логотипе */
.l-top_menu-v2 .logo-container .glyph
/* Название в логотипе */
.l-top_menu-v2 .logo-container .logo
/* Собственная надпись */
.l-top_menu-v2 .logo-container::after
/* Закрепление верхнего меню */
.l-top_menu-v2 {
position: fixed;
top: 0;
right: 0;
left: 0;
}
.l-page {
margin-top: var(--top-menu-height);
}
.b-comments-notifier {
top: var(--top-menu-height) !important;
}
--top-menu-height
отвечает за высоту верхнего меню. Значение по умолчанию: 46px
/* Внутреннее свечение пунктов меню */
.l-top_menu-v2 .submenu > a:hover,
.l-top_menu-v2 .menu-dropdown > button:not(.mobile):hover,
.l-top_menu-v2 .menu-dropdown > button:not(.mobile) a:hover {
box-shadow: 0 0 20px rgba(255,255,255,.6),
0 0 20px rgba(255,255,255,1) inset;
transition: 0.3s;
}
/* Контейнер логотипа */
.l-top_menu-v2 .logo-container
/* Иконка в логотипе */
.l-top_menu-v2 .logo-container .glyph
/* Название в логотипе */
.l-top_menu-v2 .logo-container .logo
/* Собственная надпись */
.l-top_menu-v2 .logo-container::after
/* Полностью убираем иконку */
.l-top_menu-v2 .logo-container .glyph {
display: none;
}
Другие селекторы указаны выше./* Меняем название в логотипе на свою картинку */
.l-top_menu-v2 .logo-container .logo {
background-image: url("ссылка_на_картинку");
}
Если вам нужны более детальные настройки: /* Меняем название в логотипе на свою картинку */
.l-top_menu-v2 .logo-container .logo {
/* Ширина:
уменьшайте, чтобы избавиться от пустого пространства
увеличивайте, чтобы картинка не уменьшалась */
width: 110px;
height: 40px; /* Высота картинки */
max-height: 46px; /* Высота меню */
background-image: url("https://i.imgur.com/xt6rzfn.png");
background-repeat: no-repeat;
}
.l-top_menu-v2 .logo-container .glyph
. Дополнительно вам, возможно, потребуется менять отступы для иконки:/* Изменение иконки логотипа */
.l-top_menu-v2 .logo-container .glyph {
margin-top: 2px; /* Смещение иконки по вертикали */
margin-right: 3px; /* Отступ между иконкой и названием */
}
display: none;
, а затем добавьте следующее правило:/* Своя надпись в логотипе */
.l-top_menu-v2 .logo-container::after {
content: "Shikimori";
color: #fff; /* Цвет */
font-size: 16px; /* Размер */
font-weight: bold; /* Полужирное начертание */
}
Рекомендуется использовать именно такой селектор, чтобы не переписывать заданные в других дочерних элементах .logo-container
значения ширины и высоты.@import url("https://fonts.googleapis.com/css2?family=Proza+Libre:wght@700&display=swap");
.l-top_menu-v2 .logo-container::after {
font-family: "Proza Libre", sans-serif;
font-weight: 700;
font-style: normal;
}
.l-top_menu-v2 .logo-container .logo
..activity .graph.vertical .line .bar {
box-sizing: content-box;
transform: translateY(1px);
transform-origin: center bottom;
animation-fill-mode: both;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-duration: 1.5s;
animation-name: activity;
}
.activity .graph.vertical .line .bar:hover {
animation-name: none;
transform: none;
}
.activity .graph.vertical .line:nth-of-type(6n+2) .bar {
animation-delay: -.25s;
}
.activity .graph.vertical .line:nth-of-type(6n+4) .bar {
animation-delay: -.5s;
}
.activity .graph.vertical .line:nth-of-type(6n+3) .bar {
animation-delay: -.75s;
}
.activity .graph.vertical .line:nth-of-type(6n+6) .bar {
animation-delay: -1s;
}
.activity .graph.vertical .line:nth-of-type(6n+5) .bar {
animation-delay: -1.25s;
}
@keyframes activity {
0%, 100% {
transform: translateY(1px);
}
50% {
transform: translateY(7px);
}
}
.bar.simple .bar.s3 { background: #7F7F7F;}
.bar.simple .bar:hover.s3 { background: #919191;}
.bar.simple .bar.s2 { background: #565656;}
.bar.simple .bar:hover.s2 { background: #7F7F7F;}
.bar.simple .bar.s1 { background: #444444;}
.bar.simple .bar:hover.s1 { background: #565656;}
.bar.simple .bar.s0 { background: #363636;}
.bar.simple .bar:hover.s0 { background: #444444;}
подставляйте цвета которые вам нужны..p-profiles-show .b-feedback:after {
content: ""; /* "так надо" */
display: inline-block; /* не обязательно именно так, но "так надо" */
position: fixed; /* именно это свойство и его значение fixed
и делает, чтобы изображение "прокручивалось" */
width: 300px; /* ширина изображения */
height: 300px; /* высота изображения */
right: 0px; /* отступ справа, 0px значит, что отступа от правой границы нет*/
bottom: 0px; /* отступ снизу, 0px значит, что отступа от нижней границы нет*/
background: url("ссылка на изображение") no-repeat;
background-size: cover; /* размер изображения будет подгоняться так,
чтобы занять всё пространство, которое
задают width и height */
z-index: 10; /* изображение становится выше всех по z координате,
тем самым всё остальное находится под ним*/
pointer-events: none; /* мышь перестаёт замечать изображение */
}
background: url("https://i56.beon.ru/49/25/2792549/45/117134045/268.png") no-repeat;
попробуйте убрать http: \ https: background: url("//i56.beon.ru/49/25/2792549/45/117134045/268.png") no-repeat;
(4) Изображения нет, ссылки на некоторые сайты Шикимори не пускает, попробуй-те проверенные ссылки, вроде ссылок с vk или с imgur.p-profiles .profile-head .avatar {
background: url("https://imgur.com/GhpGkuW.gif") center / cover;
}
.p-profiles .profile-head .avatar img {
visibility: hidden;
}
.p-profiles .profile-actions {
background: white; /* это цвет фона панели с кнопками */
}
Конечно, ссылки не рекомендуется брать из вк, потому что они могут быть видны только у вас, всем остальным вк не даст увидеть документ по вашей ссылке. Так же, стоит отменить, что если вы пишите // в начале ссылки, как в примере, то убедитесь, что сайту доступен https протокол (написал в начале ссылки ссылка и посмотрите, что выдаст), иначе вы не увидите то, что хотите. .p-profiles .profile-head .avatar {
position: relative;
}
.p-profiles .profile-head .avatar::before {
content: "";
position: absolute;
inset: 0;
max-width: 160px;
max-height: 160px;
background: url("https://i.imgur.com/GhpGkuW.gif") center / cover;
border-radius: 2px;
}
.p-profiles .profile-head .avatar img {
opacity: 0;
}
.profile-head .avatar img {
content: url("https://i.imgur.com/Apv8XKe.gif");
}
/* Для отключивших пользовательские стили */
.profile-head[data-user-id="ВАШ ID"] .avatar img {
content: url("https://i.imgur.com/Apv8XKe.gif");
}
.p-profiles .profile-head .c-brief .avatar {
background: url("//imgur.com/GhpGkuW.gif");
background-size: cover;
background-position: center;
}
img[title="Dark_zarich"] {
visibility: hidden;
}
.p-profiles .profile-actions {
background: white;
}
/* Круглые графики списков аниме и манги в профиле */
@import url("https://raw.githubusercontent.com/kaurkaur/Shikimori/master/CSS/CircleAnimeMangaBar.css");
.p-profiles-show .profile-head:before {
content: "";
display: block;
height: 300px; /* высота обложки */
background: url("ссылка на обложку") no-repeat; /* кавычки должны быть */
background-size: cover;
margin: -15px;
margin-bottom: 5px; /* отступ от нижней границы обложки */
}
[spoiler_v1=Спойлер]Секретный текст[/spoiler_v1]
.p-profiles .about.block .b-spoiler label {
border: none;
display: inline-block !important;
font-weight: bold; /* толщина шрифта, можно убрать, если не нужно */
color: #000; /* цвет текста спойлера */
background: #e8ebef; /* цвет фона спойлера */
height: 30px;
width: 100%;
font-size: 12pt; /* размер шрифта текста на спойлере */
padding-top: 3px;
text-align: center;
margin-bottom: 5px;
}
.p-profiles .about.block .b-spoiler .after:before, .about.block .b-spoiler .before:before {
content: "";
}
.p-profiles .about.block .b-spoiler .before {
width: 100%;
height: 50px;
display: inline-block !important;
margin-top: -50px;
}
/* Альтернативный макет профиля: «Широкоформатное избранное» */
@import url("https://css-club.web.app/css/profile-content-layout-v1.css");
/* Альтернативный макет профиля: «Без графиков активности» */
@import url("https://css-club.web.app/css/profile-content-layout-v2.css");
[url=http://mintmanga.com/prison_school]Prison School[/url]
.about.block a[href*="mintmanga.com/prison_school"] {
display: inline-block;
width: 130px;
height: 55px;
background: #ccc;
border: 2px solid #333;
font-size: 14px;
text-align: left;
padding-left: 5px;
color: #333 !important;
}
.about.block a[href*="mintmanga.com/prison_school"]:after {
display: inline-block;
content: "5";
background: #999;
font-size: 12px;
width: 20px;
height: 20px;
border-radius: 50%;
margin-left: 90px;
text-align: center;
position: relative;
}
.about.block a[href*="mintmanga.com/prison_school"]:before {
display: inline-block;
content: "reading (5/256)";
width: 130px;
position: absolute;
font-size: 12px;
margin-top: 22px;
border-top: 1px solid #333;
margin-left: -5px;
padding-left: 5px;
padding-top: 3px;
}
.p-profiles .profile-head .c-brief .avatar img {
animation: fly 3s ease-in-out infinite;
}
@keyframes fly {
0% {
transform: translateY(0);
}
50% {
transform: translateY(12px);
}
}
.profile-content .about .rate-module .d-cutted_covers, .profile-content .about .rate-module .rate-module-value {
display: inline-block;
}
.profile-content .about .rate-module .d-cutted_covers .b-catalog_entry {
width: 130px;
height: 180px;
}
/* это правило можно убрать, если не нужно отображение "из 10" */
.profile-content .about .rate-module .d-cutted_covers + .rate-module-value:after {
content: "/10";
font-size: 10px; /* размер шрифта "из 10" */
position: relative;
top: -4px; /* позиционирование "из 10" */
}
.profile-content .about .rate-module .rate-module-value {
display: inline-block;
position: absolute;
z-index: 5;
margin-left: -60px; /* позиционирование оценки*/
margin-top: 115px; /* позиционирование оценки*/
width: 40px; /* ширина */
height: 40px; /* высота */
font-size: 15pt; /* размер шрифта */
background: #419541; /* фон */
border-radius: 100%; /* меньше, чем 50% будет не круг */
color: #ffffff !important; /* цвет текста */
border: 2px solid #ffffff; /* цвет и толщина границы */
text-align: center;
font-family: "Trebuchet MS", Helvetica, sans-serif; /* шрифт оценок*/
transform: rotate(-15deg); /* поворот текста */
}
/* если стандартные иконки статуса у тайтлов сместились
такие как: галочки, иконка пересмотра, крестик и тд.
если ничего не сместилось, то данное правило лишнее
! может понадобиться ручная регулировка !
*/
.profile-content .about .rate-module .b-catalog_entry.planned .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.planned .image-decor::after,
.profile-content .about .rate-module .b-catalog_entry.watching .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.watching .image-decor::after,
.profile-content .about .rate-module .b-catalog_entry.completed .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.completed .image-decor::after,
.profile-content .about .rate-module .b-catalog_entry.rewatching .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.rewatching .image-decor::after,
.profile-content .about .rate-module .b-catalog_entry.on_hold .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.on_hold .image-decor::after,
.profile-content .about .rate-module .b-catalog_entry.dropped .image-decor::before,
.profile-content .about .rate-module .b-catalog_entry.dropped .image-decor::after {
right: 20px;
top: 3px;
}
[div=rate-module][animes ids=айди_аниме wall columns=9][div=rate-module-value]оценка[/div][/div]
Для каждого аниме в модуле нужно создавать [animes ids=айди_аниме wall columns=9]
и следующий за ним [div=rate-module-value]оценка[/div]
, создавать их нужно внутри блока [div=rate-module]
, конец которого [/div]
в самом конце. Как видно, мы используем стандартный блок animes, но не пишем все айди в одном блоке, а создаём новый animes под каждое аниме. Не нужно делать лишние пробелы и переносы строк, если не хотите, чтобы аниме находились на разных строках - пишите всё в одну строку, или, для удобства можно написать с переносами строк, но перед переносом в блок "обо мне" все переносы строк должны быть удалены [div=rate-module][animes ids=1535 columns=9][div=rate-module-value]8[/div][animes ids=11757 columns=9][div=rate-module-value]10[/div][animes ids=16498 columns=9][div=rate-module-value]9[/div][animes ids=9253 columns=9][div=rate-module-value]9[/div][animes ids=5114 columns=9][div=rate-module-value]9[/div][animes ids=1575 columns=9][div=rate-module-value]7[/div][animes ids=6702 columns=9][div=rate-module-value]9[/div][animes ids=1535 columns=9][div=rate-module-value]10[/div][animes ids=2904 columns=9][div=rate-module-value]9[/div][animes ids=2001 columns=9][div=rate-module-value]7[/div][animes ids=21 columns=9][div=rate-module-value]9[/div][animes ids=6547 columns=9][div=rate-module-value]9[/div][animes ids=13601 columns=9][div=rate-module-value]9[/div][animes ids=43 columns=9][div=rate-module-value]8[/div][animes ids=11771 columns=9][div=rate-module-value]8[/div][animes ids=431 columns=9][div=rate-module-value]10[/div][animes ids=6746 columns=9][div=rate-module-value]10[/div][animes ids=199 columns=9][div=rate-module-value]10[/div][/div]
.d-cutted_covers
.align-posters
@media only screen and (min-width: 768px) {
.about .rate-module .c-column:last-child {
margin-bottom: 50px !important; /* можно менять до лучшего результата */
}
}
и при этом вероятно потребуется перенастройка позиционирования и иконки статуса.p-profiles header.head .misc:after {
content: "всегда на сайте";
font-size: 11px;
line-height: 12px;
}
.p-profiles header.head .misc {
font-size: 0px;
}
:root {
--user-nickname: "Никнейм";
--color-nickname-background: #fff; /* цвет фона под никнеймом */
}
#profiles_show .profile-head .c-brief header h1 {
--margin: 5px;
position: relative;
color: var(--color-nickname-text, var(--headline-color));
padding: 0 var(--margin);
margin-left: calc(var(--margin) * -1);
overflow: hidden;
vertical-align: top;
}
#profiles_show .profile-head .c-brief header h1::before,
#profiles_show .profile-head .c-brief header h1::after {
content: var(--user-nickname, "--user-nickname") !important;
position: absolute !important;
inset: 0 !important;
display: block !important;
width: auto !important;
padding: inherit !important;
margin: 0 !important;
background: var(--color-nickname-background, transparent) !important;
color: inherit !important;
font: inherit !important;
line-height: inherit !important;
overflow: hidden !important;
}
#profiles_show .profile-head .c-brief header h1::before {
left: 3px !important;
text-shadow: -2px 0 red !important;
animation: glitch--1 2s linear reverse infinite !important;
}
#profiles_show .profile-head .c-brief header h1::after {
left: -3px !important;
text-shadow: -2px 0 blue !important;
animation: glitch--2 2s linear reverse infinite !important;
}
@keyframes glitch--1 {
0% { clip: rect(102px, auto, 101px, var(--margin)); }
5% { clip: rect(-13px, auto, 94px, var(--margin)); }
10% { clip: rect(10px, auto, 66px, var(--margin)); }
15% { clip: rect(57px, auto, 82px, var(--margin)); }
20% { clip: rect(107px, auto, 61px, var(--margin)); }
25% { clip: rect(4px, auto, 14px, var(--margin)); }
30% { clip: rect(103px, auto, 74px, var(--margin)); }
35% { clip: rect(36px, auto, 107px, var(--margin)); }
40% { clip: rect(29px, auto, 130px, var(--margin)); }
45% { clip: rect(-1px, auto, 84px, var(--margin)); }
50% { clip: rect(-8px, auto, 67px, var(--margin)); }
55% { clip: rect(37px, auto, 62px, var(--margin)); }
60% { clip: rect(-20px, auto, 105px, var(--margin)); }
65% { clip: rect(48px, auto, 115px, var(--margin)); }
70% { clip: rect(75px, auto, 13px, var(--margin)); }
75% { clip: rect(-15px, auto, 75px, var(--margin)); }
80% { clip: rect(36px, auto, 39px, var(--margin)); }
85% { clip: rect(103px, auto, 73px, var(--margin)); }
90% { clip: rect(6px, auto, 128px, var(--margin)); }
95% { clip: rect(38px, auto, 103px, var(--margin)); }
100% { clip: rect(-16px, auto, 100px, var(--margin)); }
}
@keyframes glitch--2 {
0% { clip: rect(99px, auto, 36px, var(--margin)); }
5% { clip: rect(6px, auto, 4px, var(--margin)); }
10% { clip: rect(55px, auto, 66px, var(--margin)); }
15% { clip: rect(61px, auto, 91px, var(--margin)); }
20% { clip: rect(118px, auto, 138px, var(--margin)); }
25% { clip: rect(8px, auto, 122px, var(--margin)); }
30% { clip: rect(39px, auto, 54px, var(--margin)); }
35% { clip: rect(68px, auto, 71px, var(--margin)); }
40% { clip: rect(116px, auto, 34px, var(--margin)); }
45% { clip: rect(104px, auto, 43px, var(--margin)); }
50% { clip: rect(72px, auto, 80px, var(--margin)); }
55% { clip: rect(89px, auto, 44px, var(--margin)); }
60% { clip: rect(76px, auto, 99px, var(--margin)); }
65% { clip: rect(111px, auto, 74px, var(--margin)); }
70% { clip: rect(-10px, auto, 78px, var(--margin)); }
75% { clip: rect(103px, auto, 79px, var(--margin)); }
80% { clip: rect(48px, auto, 52px, var(--margin)); }
85% { clip: rect(5px, auto, 39px, var(--margin)); }
90% { clip: rect(37px, auto, 70px, var(--margin)); }
95% { clip: rect(41px, auto, 103px, var(--margin)); }
100% { clip: rect(53px, auto, 40px, var(--margin)); }
}
/* Forked pen: https://codepen.io/uiswarup/pen/XWgQJrq */
#profiles_show .profile-head .c-brief header h1 {
background-image: linear-gradient(
-225deg,
#231557 0%,
#44107a 29%,
#ff1361 67%,
#fff800 100%
);
background-size: auto auto;
background-clip: border-box;
background-size: 200% auto;
-webkit-background-clip: text;
background-clip: text;
font-weight: bold;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
animation: u-nikcname-animbg 2s linear infinite;
}
@keyframes u-nikcname-animbg {
to {
background-position: 200% center;
}
}
:root {
--user-nickname: "Никнейм";
}
/* Forked pen: https://codepen.io/techgirldiaries/pen/LYWPJPN */
#profiles_show .profile-head .c-brief header h1 {
position: relative;
color: transparent;
font-weight: bold;
}
#profiles_show .profile-head .c-brief header h1::before,
#profiles_show .profile-head .c-brief header h1::after {
content: var(--user-nickname, "--user-nickname");
position: absolute;
top: 0;
left: 0;
}
#profiles_show .profile-head .c-brief header h1::before {
color: transparent;
-webkit-text-stroke: 2px var(--color-nickname-text, #8338ec);
text-stroke: 2px var(--color-nickname-text, #8338ec);
}
#profiles_show .profile-head .c-brief header h1::after {
color: var(--color-nickname-background, #c19bf5);
animation: u-nikcname-wavybg 4s ease-in-out infinite;
}
@keyframes u-nikcname-wavybg {
0%,
100% {
clip-path: polygon(
0% 45%,
16% 44%,
33% 50%,
54% 60%,
70% 61%,
84% 59%,
100% 52%,
100% 100%,
0% 100%
);
}
50% {
clip-path: polygon(
0% 60%,
15% 65%,
34% 66%,
51% 62%,
67% 50%,
84% 45%,
100% 46%,
100% 100%,
0% 100%
);
}
}
--color-nickname-background
и --color-nickname-text
. Градиент настраивается вручную в коде./* Прогрессбар и сортировка ачивок в профиле */
@import url("https://raw.githubusercontent.com/kaurkaur/Shikimori/master/CSS/AchivmentStatusbarAndSort.css");
/* Настройки шаблона */
:root {
/*Переименовываем "достижения"*/
--achivment-rename: 'Ачивки';
/*отступ прогрессбара снизу*/
--achivment-progressbar-position-b: 6px;
/*отступ прогрессбара сбоку*/
--achivment-progressbar-position-lr: 8px;
/*высота прогрессбара*/
--achivment-progressbar-height: 3px;
/*толщина обводки прогрессбара*/
--achivment-progressbar-border: 1px;
/*отступ между достижениями*/
--achivment-margin: 1%;
/*сортировка ачивок: -1 - от больших к меньшим, 1 - от меньших к большим, 0 - без сортировки*/
--achivment-sort: -1;
/*цвет подложки прогрессбара*/
--achivment-progressbar-bg-color: #fff;
/*Скругления 1-вкл 0-выкл*/
--radius_switcher:1;
}
/* Модуль для настройки колонок в избранном */
@import url("https://css-club.web.app/css/favorites_grid.min.css");
Настройки:.p-profiles-show {
/* Отступы между колонками */
--favorites-gutters: 8px;
/* При разрешении <= 480px */
--favorites-columns-xs: 4;
/* При разрешении >= 481px */
--favorites-columns-sm: 6;
/* При разрешении >= 768px */
--favorites-columns-md: 8;
/* При разрешении >= 961px */
--favorites-columns-lg: 10;
/* При разрешении >= 1200px */
--favorites-columns-xl: 12;
}
Неиспользуемые/ненужные настройки можно убрать.@import url("https://css-club.web.app/css/compact_news--grid.css");
Чуть менее современный метод на flex:@import url("https://css-club.web.app/css/compact_news--flex.css");
Старый код (не адаптивный):/* Компактная сортировка уведомлений об эпизодах */
.b-comments {
display: inline-block;
}
.b-generated_news {
width: 350px;
display: inline-block;
margin-right: 18px;
border: 0;
}
/* Отображение типов тайтлов в истории */
@import url("https://css-club.web.app/css/history_types.css");
@supports (color: color-mix(in srgb, currentColor, black)) {
.b-user_history-line a.db-entry::before {
--user-history-type-name1: "アニメ";
--user-history-type-name2: "マンガ";
--user-history-type-name3: "ラノベ";
--user-history-type-width: auto;
content: var(--user-history-type-name);
padding: 0 3px;
margin: 0 5px 0 0;
background-color: color-mix(in srgb, currentColor 24%, Canvas);
border-radius: 5px;
font-weight: bold;
}
}
.p-anime_videos .l-page .menu-toggler {
display: inherit;
margin-top: 40px;
}
@media only screen and (min-width: 1025px) {
.p-anime_videos .l-page.menu-expanded .menu-slide-outer.x199 .l-content {
width: 100%;
}
.p-anime_videos .l-page.menu-expanded .player-area,
.p-anime_videos .l-page.menu-expanded .player-placeholder,
.p-anime_videos .l-page.menu-expanded iframe {
height: 618.25px !important;
}
.p-anime_videos .l-page.menu-expanded .l-menu {
display: none;
}
.p-anime_videos .l-page {
z-index: 9;
}
.p-anime_videos .l-page.menu-expanded ~ #shade {
display: initial;
opacity: 0.9;
z-index: 8;
pointer-events: none;
}
.p-anime_videos .l-page.menu-expanded {
background: rgba(20,20,20,0.2);
}
}
/* Полусортировка работ персон */
/* Вывод аниме перед мангой и ранобе */
#people_works .d-cutted_covers {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
#people_works .c-anime {
order: 0;
}
#people_works .c-manga {
order: 1;
}
#people_works .d-cutted_covers .c-column {
margin-right: 3.2%;
}
/* Дизайн ярлыков */
#people_works .cover:after {
position: absolute;
top: 0;
left: 0;
font-size: 12px;
padding: 3px 6px 2px;
color: #fff;
pointer-events: none;
}
/* Раздача названий и цветов ярлыкам */
#people_works .cover[href*="//shikimori.org/animes/"]:after {
content: "Аниме";
background: #4682b4;
}
#people_works .cover[href*="//shikimori.org/mangas/"]:after {
content: "Манга";
background: #b78bc7;
}
#people_works .cover[href*="//shikimori.org/ranobe/"]:after {
content: "Ранобэ";
background: #2A6E41;
}
/* Английский */
#people_works[data-locale="en"] .cover[href*="//shikimori.org/animes/"]:after {
content: "Anime";
}
#people_works[data-locale="en"] .cover[href*="//shikimori.org/mangas/"]:after {
content: "Manga";
}
#people_works[data-locale="en"] .cover[href*="//shikimori.org/ranobe/"]:after {
content: "Light Novel";
}
.b-collection-topic .collection-groups .cc-collection-groups {
display: flex;
flex-wrap: wrap;
width: 103.5%;
}
.b-collection-topic .collection-groups .cc-collection-groups > .c-column {
margin-right: 0.92% !important;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry {
order: 9;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.completed {
order: 1;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.watching {
order: 2;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.rewatching {
order: 3;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.on_hold {
order: 4;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.planned {
order: 5;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.dropped {
order: 6;
}
.b-collection-topic .collection-groups .cc-collection-groups > [class~="completed"],
.b-collection-topic .collection-groups .cc-collection-groups > [class~="watching"],
.b-collection-topic .collection-groups .cc-collection-groups > [class~="rewatching"],
.b-collection-topic .collection-groups .cc-collection-groups > [class~="on_hold"],
.b-collection-topic .collection-groups .cc-collection-groups > [class~="planned"],
.b-collection-topic .collection-groups .cc-collection-groups > [class~="dropped"] {
/* display:none; */
}
.b-collection-topic .collection-groups .cc-collection-groups {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 30px 15px;
}
.b-collection-topic .collection-groups .cc-collection-groups > .c-column {
width: 100%;
margin: 0;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.completed {
order: -6;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.watching {
order: -5;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.rewatching {
order: -4;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.on_hold {
order: -3;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.planned {
order: -2;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry {
order: -1;
}
.b-collection-topic .collection-groups .cc-collection-groups > .b-catalog_entry.dropped {
order: 0;
}
/* Отключаем всплывающие подсказки */
meta[itemid*="spoyler"] ~ .inner .collection-row > article {
pointer-events: none;
}
/* Скрываем постеры и названия тайтлов/персонажей */
meta[itemid*="spoyler"] ~ .inner .collection-row > article img,
meta[itemid*="spoyler"] ~ .inner .collection-row > article .title {
display: none;
}
/* Заменяем постер персонажа/тайтла на другую картинку */
meta[itemid*="spoyler"] ~ .inner .collection-row > article .image-cutter {
background: url("/assets/globals/missing_preview.jpg") center top / cover;
}
/* Задаём размер для картинки */
meta[itemid*="spoyler"] ~ .inner .collection-row > article .image-cutter::after {
content: "";
display: block;
padding-top: 155.5%;
}
/* Тёмное оформление кода в настройках внешнего вида сайта */
@import url("https://css-club.web.app/css/CodeMirror_dark.css");
body::before {
content: "";
display: block;
width: 100%;
height: 100%;
position: fixed;
left: -25%; /* 25% для правого проёма */
margin-left: -300px; /* 300 px для правого проёма */
background: url("ваша картинка") no-repeat bottom /* вертикальное позиционирование, тут может быть top, либо center */ center /* здесь обязательно center */;
background-size: auto 100%; /* масштабирование при изменении высоты окна */
}
Поиграйте со значениями для достижения нужного результата.p-profiles-show::before {
content: "";
height: 100%;
width: 100%;
display: inline-block;
position: fixed;
background: url("https://media.giphy.com/media/26BRyql7J3iOx875u/giphy.gif") fixed;
}
.p-profiles-show::before {
content: "";
height: 100%;
width: 100%;
display: inline-block;
position: fixed;
background: url("https://media.giphy.com/media/26BRyql7J3iOx875u/giphy.gif") fixed;
z-index: 10;
pointer-events: none;
}
body {
background-attachment: fixed;
background-size: cover;
}
body[data-server_time *= "0+"],
body[data-server_time *= "1+"],
body[data-server_time *= "2+"] {
background-image: url("https://i.imgur.com/3glA7J3.jpg");
}
body[data-server_time *= "3+"],
body[data-server_time *= "4+"],
body[data-server_time *= "5+"],
body[data-server_time *= "6+"] {
background-image: url("https://i.imgur.com/D2xD5Jp.jpg");
}
body[data-server_time *= "7+"],
body[data-server_time *= "8+"],
body[data-server_time *= "9+"] {
background-image: url("https://i.imgur.com/DnDlp6h.jpg");
}
body {
background-attachment: fixed;
background-size: cover;
}
body[data-server_time *= "0+"],
body[data-server_time *= "1+"] {
background-image: url("https://i.imgur.com/vVSBhdS.jpg");
}
body[data-server_time *= "2+"],
body[data-server_time *= "3+"] {
background-image: url("https://i.imgur.com/GNW6Trj.jpg");
}
body[data-server_time *= "4+"],
body[data-server_time *= "5+"] {
background-image: url("https://i.imgur.com/4s1ecVv.jpg");
}
body[data-server_time *= "6+"],
body[data-server_time *= "7+"] {
background-image: url("https://i.imgur.com/ql2RtMp.jpg");
}
body[data-server_time *= "8+"],
body[data-server_time *= "9+"] {
background-image: url("https://i.imgur.com/MlBNVMQ.jpg");
}
#profiles_show[data-server_time *= "0+"] .profile-head::before,
#profiles_show[data-server_time *= "1+"] .profile-head::before,
#profiles_show[data-server_time *= "2+"] .profile-head::before {
background-image: url("https://i.imgur.com/3glA7J3.jpg");
}
#profiles_show[data-server_time *= "3+"] .profile-head::before,
#profiles_show[data-server_time *= "4+"] .profile-head::before,
#profiles_show[data-server_time *= "5+"] .profile-head::before,
#profiles_show[data-server_time *= "6+"] .profile-head::before {
background-image: url("https://i.imgur.com/D2xD5Jp.jpg");
}
#profiles_show[data-server_time *= "7+"] .profile-head::before,
#profiles_show[data-server_time *= "8+"] .profile-head::before,
#profiles_show[data-server_time *= "9+"] .profile-head::before {
background-image: url(https://i.imgur.com/DnDlp6h.jpg);
}
/* 31 декабря и 1 января по серверному времени */
body[data-server_time *= "-12-31T"],
body[data-server_time *= "-01-01T"] {
background: url("https://i.imgur.com/ynmnveW.jpg") center top / cover fixed;
}
body
. К примеру: data-server_time="2017-07-02T18:15:41+03:00"
./* Для 6 месяца */
body[data-server_time *= "-06-"]
/* Для 16 дня */
body[data-server_time *= "16T"]
/* Для 18 часов */
body[data-server_time *= "T18"]
/* Для 9 минут */
body[data-server_time *= ":09:"]
/* Для 12 секунд */
body[data-server_time *= "12+"]
Менять при необходимости только цифры!body
, которое будет меняться только в определённые другими селекторами другие временные участки.body[data-server_time *= "2+"]
, означающая, что правило будет срабатывать на второй, двенадцатой, двадцать второй, тридцать второй, сорок второй и пятьдесят второй секунде каждой минуты./* Тёмный фон страницы, чтобы на нём видеть белые снежинки. */
/* (можно удалить) */
body {
background: #1e3078;
}
/* Слой с изображениями снега */
body:before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* Изображения снега: */
background-image: url("https://i.imgur.com/TpOI4DC.png"),
url("https://i.imgur.com/92lgmBN.png"),
url("https://i.imgur.com/ACiIkIG.png");
/* Размер изображений по порядку: */
/* (размер уменьшен в 2 раза: снежинки больше похожи на точки, чем на детские рисунки */
/* (можно удалить) */
background-size: 250px, 200px, 150px;
/* Скорость анимации: */
/* (чем больше время, тем медленнее идет снег) */
animation: snow 16s linear infinite;
}
/* Анимация снега */
@keyframes snow {
0% {
background-position: 0px 0px,
0px 0px,
0px 0px;
}
100% {
/* (Указан полный размер изображений по прядку, указанному в body:before) */
background-position: 500px 1000px,
400px 400px,
300px 300px;
}
}
body {
background-attachment: fixed;
background-image: url("https://randart.ru/art/JD99/");
background-position: top center;
background-repeat: no-repeat;
background-size: cover;
}
Сайт: randart.ru.gif
или .png
, так как у них может быть прозрачный фон), но мы настоятельно рекомендуем НЕ делать её сильно больше чем стандартный курсор.default
(обычная стрелочка) и pointer
(пальчик, появляющийся при наведении, например, на ссылку). Их можно заменить воспользовавшись этим примером:/* Изменение курсора */
@import url("https://css-club.web.app/css/custom_cursor.css");
/* Настройки */
:root {
/* Курсор по умолчанию */
--cursor-default: url("https://i.imgur.com/AN9K3mv.png");
/* Курсор при наведении */
--cursor-pointer: url("https://i.imgur.com/OI0Xs5l.png");
}
.selector {
- cursor: default;
+ cursor: var(--cursor-default, default);
}
.selector:hover {
- cursor: pointer;
+ cursor: var(--cursor-pointer, pointer);
}
/*IMAGES*/
body:before{
background-image: url("//raw.githubusercontent.com/kaurkaur/Shikimori/master/img/loader/loader1.gif")
}
/*IMAGES:END*/
/*LOADER*/
body:before{
content: "Загрузка...";
background-size: 400px;
background-repeat:no-repeat;
background-position-x: center;
background-position-y: 42vh;
background-color: #fff;
color: #666;
display: block;
text-align: center;
font-size: 24px;
font-weight: 700;
overflow: hidden;
padding-top: 200px;
position: fixed;
top:0;
left:0;
height:100%;
width: 0%;
z-index: 10000;
animation: 1.5s ease-out 0s 1 slide;
-webkit-animation: 1.5s ease-out 0s 1 slide;
-o-animation: 1.5s ease-out 0s 1 slide
}
@keyframes slide {
0% {width:100%;opacity: 0}
5% {width:100%;opacity: 1}
80% {width:100%;opacity: 1}
95% {width:100%}
100% {opacity: 0}
}
/*LOADER:END*/
.b-spoiler_inline {
display: inline;
background-repeat: no-repeat;
color: transparent;
background-position: right;
background-size: 100% 100%;
background-image: linear-gradient(grey, grey);
transition: 0.5s ease-in-out;
}
.b-spoiler_inline.is-opened {
color: black;
background-size: 0% 100%;
}
background-position: right;
на background-position: left;
, спойлер будет открываться так:background-position: center;
:transition: 0.5s ease-in-out;
, а именно 0.5s
. В примере анимация длится 0,5 сек, для того, чтобы изменить на 1 сек, пиши 1s
; 0,3 сек — 0.3s
соответственно..b-spoiler_inline:not(.is-opened) {
background-color: #fff !important;
}
Цвет должен соответствовать цвету .l-page
:.l-page {
background: *цвет*;
}
.p-profiles-show .tooltip-details .b-catalog_entry-tooltip > a {
display: none;
}
.p-profiles-show .b-catalog_entry-tooltip .inner.offset {
margin-left: 0;
}
.p-profiles-show .tooltip-inner {
width: 280px;
}
.p-profiles-favourites .tooltip-details .b-catalog_entry-tooltip > a,
.p-profiles-show .tooltip-details .b-catalog_entry-tooltip > a,
.p-profiles-show .tooltip-details .b-catalog_entry-tooltip .entry-tooltip_container > a {
display: none;
}
.p-profiles-favourites .b-catalog_entry-tooltip .inner.offset,
.p-profiles-show .b-catalog_entry-tooltip .inner.offset {
margin-left: 0;
}
.p-profiles-favourites .tooltip-inner, .p-profiles-show .tooltip-inner {
width: 280px;
}
.p-profiles-show .about img[alt*="имя персонажа в alt"] {
visibility: hidden;
}
.p-profiles-show .about .cover[data-tooltip_url*="часть ссылки на информацию о персонаже"] .image-cutter {
background: url("ссылка на новую обложку");
background-size: cover;
}
1) "имя персонажа в alt" можно получить посмотрев его в инспекторе после его открытия по правому клику мыши на персонаже (подробнее про инспектор и поиск можно получить в клубе отдельно, после уже не будет вопросов, что тут, собственно, требуется).p-profiles-show .about img[alt*="L Lawliet"] {
visibility: hidden;
}
.p-profiles-show .about .cover[data-tooltip_url*="l-lawliet"] .image-cutter {
background: url("http://images4.fanpop.com/image/photos/24200000/lawliet-l-24232540-500-281.jpg");
background-size: cover;
}
ОБРАТИТЕ ВНИМАНИЕ, кавычки - обязательны background-position: center left; /* левая часть изображения */
background-position: center right; /* правая часть изображения */
background-position: center center; /* центр */
Для смены фото для человека или постера манги\аниме принципиально ничего не меняются, делаются абсолютно те же шаги..p-profiles img[alt*="имя персонажа в alt"]
.p-profiles .cover[data-tooltip_url*="часть ссылки на информацию о персонаже"] .image-cutter
/* Замена стандартных постеров (указывается один раз!) */
@import url("https://css-club.web.app/css/custom_posters.min.css");
/* Замена постера для Nino Nakano */
[href*="characters/161472-"] {
--show-default: 0;
--custom-image: url("https://i.imgur.com/Xx6UyQU.jpg");
}
@import
-правило указывается один раз!https://shikimori.one/characters/161472-nino-nakano
ID необходимо указать в селекторе. После него обязательно нужно оставить дефис, чтобы не заменить постер кому-то с похожим ID. Для аниме и манги нужно поменять слово characters на соответствующие им animes и mangas из ссылки.--show-default
скрывает стандартный постер.--custom-image
указывается ссылка на новый постер.--custom-settings
: /* Значение по умолчанию */
--custom-settings: center top / cover;
/* Для аниме */
.b-db_entry img[src*="animes/31706/"] {
content: url("https://i.imgur.com/HbBoEqH.png");
}
/* Для персонажей */
.b-db_entry img[src*="characters/503/"] {
content: url("https://i.imgur.com/HbBoEqH.png");
}
Где animes
и characters
— тип страницы, на которой требуется изменить постер, а 31706
и 503
— это ID в базе данных. Чтобы их найти, откройте постер в новой вкладке или скопируйте ссылку:/* Указывается один раз */
.p-db_entries .b-db_entry .c-poster picture {
width: 100%;
}
/* Указывается для каждого постера */
.p-db_entries .b-db_entry .c-poster meta[content *= "animes/39535/"] ~ picture::after {
content: "";
display: block;
width: 100%;
max-width: 225px;
padding-top: 155.56%;
margin: auto;
background-position: top center;
background-size: cover;
}
.p-db_entries .b-db_entry .c-poster meta[content *= "animes/39535/"] ~ picture img {
display: none;
}
.p-db_entries .b-db_entry .c-poster meta[content *= "animes/39535/"] ~ picture::after {
background-image: url("https://i.imgur.com/6aK9Nfk.png");
}
/* Указывается один раз */
.b-db_entry-poster picture {
display: block;
background: center top / cover;
}
/* Указывается для каждого постера */
.b-db_entry-poster[data-href*="animes/39535/"] img {
opacity: 0 !important;
}
.b-db_entry-poster[data-href*="animes/39535/"] picture {
background-image: url("https://i.imgur.com/6aK9Nfk.png");
}
[div=click-item]
[div=click-item-image][/div]
[url=/][/url][div=click-item-content]
Сообщение 4.
[/div]
[url=/][/url][div=click-item-content]
Сообщение 3.
[/div]
[url=/][/url][div=click-item-content]
Сообщение 2.
[/div]
[url=/][/url][div=click-item-content]
Сообщение 1.
[/div]
[/div]
CSS-код:/*---------------Настройки---------------*/
/*Позиционирование блока*/
.click-item{
position: relative;
}
/*Изображение*/
.click-item-image{
background-image:url("https://img06.deviantart.net/b359/i/2016/269/a/c/shiro_chibi_by_kumaikyu-daivo9a.png");
}
/*---------------------------------------*/
.click-item{
width:400px;
height:150px
}
.click-item > a{
z-index:2;
}
.click-item > a,
.click-item-image{
position: absolute;
display:block;
width:150px;
height:150px
}
.click-item-image{
background-size:contain;
background-repeat: no-repeat;
background-position: center center;
animation:click-item-image_animation infinite both 3.5s
}
.click-item-content{
background: #fff;
border:1px solid #e2e3e5;
border-radius: 3px;
position:absolute;
width:250px;
min-height:150px;
left:150px;
opacity:0;
padding: 10px;
z-index:1;
word-wrap: break-word;
transform:scale(0);
transition: opacity .2s ease,
transform .4s ease;
}
.click-item-content:before,
.click-item-content:after{
content:"";
display: block;
position:absolute;
width: 15px;
height:15px;
transform:rotate(45deg);
top:30px;
}
.click-item-content:before{
background: #e2e3e5;
left:-8px;
}
.click-item-content:after{
background: #fff;
left:-7px;
}
.click-item > a:focus,
.click-item > a:focus+.click-item-content~a{
pointer-events:none
}
.click-item > a:focus+.click-item-content{
opacity:1;
transform:scale(1);
}
@keyframes click-item-image_animation{
0%{
transform:translateY(5px)
}
50% {
transform:translateY(-5px)
}
100% {
transform:translateY(5px)
}
}
[div=mychar][div=speech]
[div]Первая фраза, которую персонаж будет говорить.[/div]
[div]Вторая фраза, которую персонаж будет говорить.[/div]
[div]Третья фраза, которую персонаж будет говорить.[/div]
[/div][/div]
Добавить в стили следующий код: /* Персонаж в углу */
.mychar {
position: fixed;
z-index: 10;
pointer-events: none;
left: 0;
right: 0; /* положение блока с персонажем: отступ справа */
bottom: 0; /* положение блока с персонажем: отступ снизу */
transform-origin: bottom right;
font-size: 1em; /* размер облачка меняется в зависимости от размера шрифта */
}
.mychar::after {
content: "";
display: block;
pointer-events: auto;
float: right;
width: 300px; /* ширина блока с персонажем */
height: 300px; /* высота блока с персонажем */
background-repeat: no-repeat;
background-position: right bottom;
background-size: contain;
background-image: url("https://i.imgur.com/MMvqMFq.png"); /* картинка с вашим персонажем */
}
@media screen and (max-width: 599px) {
.mychar {
left: -53.8462%;
transform: scale(0.65);
}
.mychar .speech {
transform: scale(1.5385);
font-size: 0.85em;
}
}
@media screen and (min-width: 600px) and (max-width: 1024px),
screen and (max-width: 599px) and (min-height: 720px)
{
.mychar {
left: -33.3333%;
transform: scale(0.75);
}
.mychar .speech {
transform: scale(1.3333);
font-size: 0.85em;
}
}
/* Персонаж в углу: облачко */
.mychar .speech {
position: absolute;
pointer-events: auto;
min-width: 2.01em;
min-height: 2.01em;
max-width: 10em;
padding: 0.38em 0.56em;
border-radius: 0.47em;
right: 340px; /* положение облачка: отступ справа */
bottom: 160px; /* положение облачка: отступ снизу */
transform-origin: bottom right;
line-height: 1.25em;
text-align: center;
color: #FFF; /* цвет текста в облачке */
background: rgba(30,30,30,0.7); /* цвет и прозрачность фона облачка */
}
.mychar .speech::after {
content: "";
position: absolute;
right: 0;
top: 50%;
bottom: 0.75em;
width: 0;
height: 0;
margin: -0.62em -1.24em 0 0;
border: 1.24em solid transparent;
border-right: 0;
border-bottom: 0;
border-left-color: rgba(30,30,30,0.7); /* цвет и прозрачность фона облачка */
}
/* Персонаж в углу: анимированное облачко */
.mychar .speech {
animation-name: mychar-speech-in, mychar-speech-out;
animation-fill-mode: both, forwards;
animation-iteration-count: 1;
animation-duration: 0.8s, 0.4s; /* длительность появления, исчезновения облачка */
animation-delay: 1.5s, 11.6s; /* задержка появления, исчезновения облачка */
/* Отсчет задержек начинается не после выезжания блока, а сразу после открытия страницы. */
/* Длительность отображения облачка (вместе с анимациями появления/исчезновения): */
/* (задержкаИсчезновения - задержкаПоявления + длительностьИсчезновения) */
/* 11.6 - 1.5 + 0.4 = 10.5 секунд. */
}
@keyframes mychar-speech-in {
from {
margin-right: -28px;
opacity: 0;
}
to {
margin-right: 0;
opacity: 1;
}
}
@keyframes mychar-speech-out {
from {
margin-right: 0;
opacity: 1;
}
to {
margin-right: -28px;
opacity: 0;
}
}
/* Персонаж в углу: анимированное облачко - сменяющиеся фразы */
.mychar .speech div {
position: absolute;
visibility: hidden;
animation-name: mychar-phrase;
animation-timing-function: step-end;
animation-iteration-count: 1;
animation-duration: 3.5s; /* длительность показа фразы */
}
@keyframes mychar-phrase {
from {
position: static;
visibility: visible;
}
}
.mychar .speech div:nth-of-type(1) { /* Первая фраза */
animation-delay: 1.5s; /* начальная задержка = задержка появления облачка */
}
.mychar .speech div:nth-of-type(2) { /* Вторая фраза */
animation-delay: 5.0s; /* арифметическая прогрессия: прибавляем длительность фразы */
}
.mychar .speech div:nth-of-type(3) { /* Третья фраза */
animation-delay: 8.5s; /* и снова */
}
/* Вы можете добавить больше фраз, только не забудьте */
/* увеличить продолжительность отображения облачка (если анимированное) */
/* и задержку перед заезжанием (если выезжание/заезжание используется). */
/* Персонаж в углу: выезжание, заезжание */
.mychar {
animation-name: mychar-pop-in, mychar-pop-out;
animation-fill-mode: both, forwards;
animation-iteration-count: 1;
animation-timing-function: ease-in-out, ease-in-out;
animation-delay: 0s, 12.5s; /* задержка перед выезжанием, перед заезжанием */
animation-duration: 1s, 1s; /* длительность выезжания, заезжания */
}
@keyframes mychar-pop-in {
from {
bottom: -300px; /* (положение блока с персонажем: отступ снизу + высота блока) со знаком минус */
visibility: hidden;
}
to {
bottom: 0; /* положение блока с персонажем: отступ снизу */
}
}
@keyframes mychar-pop-out {
to {
/* Можно убрать заезжание, если удалить две следующие строчки */
bottom: -300px; /* то же самое, что и несколькими строками выше */
visibility: hidden;
}
}
[div=mychar][/div]
Добавить в стили следующий код: /* Персонаж в углу */
.mychar {
position: fixed;
z-index: 10;
pointer-events: none;
left: 0;
right: 0; /* положение блока с персонажем: отступ справа */
bottom: 0; /* положение блока с персонажем: отступ снизу */
transform-origin: bottom right;
font-size: 1em; /* размер облачка меняется в зависимости от размера шрифта */
}
.mychar::after {
content: "";
display: block;
pointer-events: auto;
float: right;
width: 300px; /* ширина блока с персонажем */
height: 300px; /* высота блока с персонажем */
background-repeat: no-repeat;
background-position: right bottom;
background-size: contain;
background-image: url("https://i.imgur.com/MMvqMFq.png"); /* картинка с вашим персонажем */
}
@media screen and (max-width: 599px) {
.mychar {
left: -53.8462%;
transform: scale(0.65);
}
.mychar .speech {
transform: scale(1.5385);
font-size: 0.85em;
}
}
@media screen and (min-width: 600px) and (max-width: 1024px),
screen and (max-width: 599px) and (min-height: 720px)
{
.mychar {
left: -33.3333%;
transform: scale(0.75);
}
.mychar .speech {
transform: scale(1.3333);
font-size: 0.85em;
}
}
[div=mychar][div=speech]
Текст, который персонаж будет говорить.
[/div][/div]
Дополнить стили следующим кодом: /* Персонаж в углу: облачко */
.mychar .speech {
position: absolute;
pointer-events: auto;
min-width: 2.01em;
min-height: 2.01em;
max-width: 10em;
padding: 0.38em 0.56em;
border-radius: 0.47em;
right: 340px; /* положение облачка: отступ справа */
bottom: 160px; /* положение облачка: отступ снизу */
transform-origin: bottom right;
line-height: 1.25em;
text-align: center;
color: #FFF; /* цвет текста в облачке */
background: rgba(30,30,30,0.7); /* цвет и прозрачность фона облачка */
}
.mychar .speech::after {
content: "";
position: absolute;
right: 0;
top: 50%;
bottom: 0.75em;
width: 0;
height: 0;
margin: -0.62em -1.24em 0 0;
border: 1.24em solid transparent;
border-right: 0;
border-bottom: 0;
border-left-color: rgba(30,30,30,0.7); /* цвет и прозрачность фона облачка */
}
/* Персонаж в углу: анимированное облачко */
.mychar .speech {
animation-name: mychar-speech-in, mychar-speech-out;
animation-fill-mode: both, forwards;
animation-iteration-count: 1;
animation-duration: 0.8s, 0.4s; /* длительность появления, исчезновения облачка */
animation-delay: 1.5s, 11.6s; /* задержка появления, исчезновения облачка */
/* Отсчет задержек начинается не после выезжания блока, а сразу после открытия страницы. */
/* Длительность отображения облачка (вместе с анимациями появления/исчезновения): */
/* (задержкаИсчезновения - задержкаПоявления + длительностьИсчезновения) */
/* 11.6 - 1.5 + 0.4 = 10.5 секунд. */
}
@keyframes mychar-speech-in {
from {
margin-right: -28px;
opacity: 0;
}
to {
margin-right: 0;
opacity: 1;
}
}
@keyframes mychar-speech-out {
from {
margin-right: 0;
opacity: 1;
}
to {
margin-right: -28px;
opacity: 0;
}
}
[div=mychar][div=speech]
[div]Первая фраза, которую персонаж будет говорить.[/div]
[div]Вторая фраза, которую персонаж будет говорить.[/div]
[div]Третья фраза, которую персонаж будет говорить.[/div]
[/div][/div]
Дополнить стили следующим кодом: /* Персонаж в углу: анимированное облачко - сменяющиеся фразы */
.mychar .speech div {
position: absolute;
visibility: hidden;
animation-name: mychar-phrase;
animation-timing-function: step-end;
animation-iteration-count: 1;
animation-duration: 3.5s; /* длительность показа фразы */
}
@keyframes mychar-phrase {
from {
position: static;
visibility: visible;
}
}
.mychar .speech div:nth-of-type(1) { /* Первая фраза */
animation-delay: 1.5s; /* начальная задержка = задержка появления облачка */
}
.mychar .speech div:nth-of-type(2) { /* Вторая фраза */
animation-delay: 5.0s; /* арифметическая прогрессия: прибавляем длительность фразы */
}
.mychar .speech div:nth-of-type(3) { /* Третья фраза */
animation-delay: 8.5s; /* и снова */
}
/* Вы можете добавить больше фраз, только не забудьте */
/* увеличить продолжительность отображения облачка (если анимированное) */
/* и задержку перед заезжанием (если выезжание/выезжание используется). */
/* Персонаж в углу: выезжание, заезжание */
.mychar {
animation-name: mychar-pop-in, mychar-pop-out;
animation-fill-mode: both, forwards;
animation-iteration-count: 1;
animation-timing-function: ease-in-out, ease-in-out;
animation-delay: 0s, 12.5s; /* задержка перед выезжанием, перед заезжанием */
animation-duration: 1s, 1s; /* длительность выезжания, заезжания */
}
@keyframes mychar-pop-in {
from {
bottom: -300px; /* (положение блока с персонажем: отступ снизу + высота блока) со знаком минус */
visibility: hidden;
}
to {
bottom: 0; /* положение блока с персонажем: отступ снизу */
}
}
@keyframes mychar-pop-out {
to {
/* Можно убрать заезжание, если удалить две следующие строчки */
bottom: -300px; /* то же самое, что и несколькими строками выше */
visibility: hidden;
}
}
/* Персонаж в углу: отключить для маленьких экранов */
@media screen and (max-width: 1024px) {
.mychar {
display: none;
}
}
@import url("https://css-club.web.app/css/bs_table.min.css");
Использование:[div=table --bordered --hover]
[div=header][div]
Header Cell 1
[/div][div]
Header Cell 2
[/div][div]
Header Cell 3
[/div][/div]
[div][div]
Table Cell 1
[/div][div]
Table Cell 2
[/div][div]
Table Cell 3
[/div][/div]
[/div]
Для контейнера таблицы можно использовать следующие вспомогательные классы:--striped
– делает таблицу-зебру, окрашивая чётные строки в более тёмный цвет.--bordered
– обрамляет каждую ячейку таблицы границей в 1px.--hover
– затемняет строки при наведении.--condensed
– уменьшает внутренние отступы ячеек в таблице.xwrap
:[div=xwrap]
[div=table --bordered --hover]
# Внутренний код таблицы
[/div]
[/div]
/* Стена постеров различных типов */
@import url("https://css-club.web.app/css/rate_module.min.css");
Использование:[div=rate_module cc-6]
[div=c-column][animes ids=2966 cover_notice=studio][b]93/100[/b][/div]
[div=c-column][mangas ids=36131][b]86/100[/b][/div]
[div=c-column][mangas ids=90125][b]91/100[/b][/div]
[div=c-column][mangas ids=9115][b]100/100[/b][/div]
[div=c-column][people ids=79][b]Ками-сама[/b][/div]
[div=c-column][characters ids=7373][b]Богиня ❤[/b][/div]
[/div]
Количество колонок указывается в контейнере rate_module
. Поддерживаются колонки от 6 (cc-6
) до 9 (cc-9
).rate_module
добавить новую строчку с кодом:[div=c-column][mangas ids=9115][b]100/100[/b][/div]
где[div=c-column][/div]
– обязательный контейнер, в котором расположены постер и надпись.[mangas ids=9115]
– код конкретного постера. Указывать можно только один id![b]100/100[/b]
– произвольная надпись.[div=c-column][mangas ids=9115][div=text]Произвольный текст[/div][b]100/100[/b][/div]
Если название у постера в две строчки, то добавляется еще один класс: [div=c-column][mangas ids=9115][div=text twolined]Произвольный текст[/div][b]100/100[/b][/div]
А класс user-defined
зафиксирует при клике текст в развернутом виде:[div=c-column]
[anime=40839][poster=1093957][/anime]
[div=text user-defined]Дата выхода: 28 ноября 2020[/div]
[b]Blu-ray Vol.1[/b]
[/div]
где[poster=1093957]
– любая картинка.[div=text user-defined][/div]
– произвольный текст, фиксирующийся при клике.[b]Blu-ray Vol.1[/b]
– произвольная надпись./* Блок внешних ссылок в профиле */
@import url("https://css-club.web.app/css/profile-external-links.css");
В описание профиля добавьте блок с классом mylinks
и впишите ссылки как в следующем примере:[div=mylinks]
[url=https://vk.com/shikimori]ВКонтакте[/url]
[url=https://t.me/s/shikimori]Telegram[/url]
[url=https://www.youtube.com/@shikimori_one]YouTube[/url]
[url=https://discord.gg/gYQNpUKPdH]Discord[/url]
[url=https://github.com/shikimori/shikimori]GitHub[/url]
[/div]
По умолчанию блок расположен справа, т.к. слева есть кнопки «сообщить об ошибке» и «наверх», которые могут перекрывать блок ссылок. Если вы всё же хотите расположить блок слева, то добавьте класс left
к блоку ссылок, чтобы получилось [div=mylinks left]
./* Настройки */
:root {
/* Расстояние от верхнего края страницы */
--mylinks-top: 100px;
/* Иконка по умолчанию для неподдерживаемых сайтов */
--mylinks-icon: url("https://i.imgur.com/GIvsmxM.jpeg");
/* Цвет фона */
--mylinks-color-background: #f8f8f8;
/* Цвет фона при наведении и границы */
--mylinks-color-border: var(--headline-background-color);
/* Цвет текста */
--mylinks-color-text: #123;
}
Вы можете объединять эти настройки с настройками темы, а также убирать лишние строки, если дополнительных настроек не требуется. Указанные выше цвета подойдут для темы по умолчанию или любой другой светлой темы..mylinks > a[href*="ССЫЛКА_НА_САЙТ"] {
--mylinks-icon: url("ССЫЛКА_НА_ИКОНКУ");
}
/* Блок ссылок всегда посередине экрана */
.mylinks {
top: 50%;
transform: translateY(-50%);
}
/* Затемнение иконок для тёмной темы */
.mylinks > a:not(:hover)::before {
filter: grayscale(.8) brightness(.8);
}
/* Фиксированные размеры постеров */
@import url("https://css-club.web.app/css/fixed_cover.min.css");
селектор {
font-size: 0;
}
селектор::after {
content: "Новый текст";
vertical-align: top;
font-size: 13px;
}
/* Замена текста в заголовке Друзья в профиле */
.profile-content .subheadline > a[href$="/friends"] {
font-size: 0;
}
.profile-content .subheadline > a[href$="/friends"]::after {
content: "Товарищи";
vertical-align: top;
font-size: 15px;
}
/* Селектор для тех, у кого меньше 12 друзей */
.profile-content .cc-2a > .c-column:first-child .subheadline
Селекторы можно брать со страницы «Список селекторов»./* Замена текста в заголовке Избранное в профиле */
.profile-content .subheadline > a[href$="/favorites"] {
font-size: 0;
}
.profile-content .subheadline > a[href$="/favorites"]::after {
content: "Любимое";
vertical-align: top;
font-size: 15px;
}
/* Замена текста в заголовке Лента в профиле */
.profile-content .subheadline > a[href$="/feed"] {
font-size: 0;
}
.profile-content .subheadline > a[href$="/feed"]::after {
content: "Стенограмма";
vertical-align: top;
font-size: 15px;
}
/* Замена текста «сейчас на сайте» */
.p-profiles header.head .misc span {
font-size: 0;
}
.p-profiles header.head .misc span::before {
content: "на связи";
vertical-align: top;
font-size: 11px;
}
/* Изменение блока «Администрация» */
@import url("https://css-club.web.app/css/b-club-admins.min.css");
Настройки (необязательно): /* Изменение цветов */
:root {
--color-club-admin: #384654;
--color-club-admin-name: inherit;
--color-club-admin-hint: #7a7f85;
}
/* Добавление подписей */
.b-clubs-menu .admin .b-user[id="1"] .name::after {
content: "Admin";
}
@import url("https://css-club.web.app/css/sidebar_modern.css");
Чтобы оно было только при открытии главного профиля?
@grin3671,@grin3671@Swyzen, заменить в селекторе.p-profiles-show
на#profiles_show
@Swyzen@grin3671, Аригато годзаимас