// ==UserScript== // @name 哔哩哔哩电脑网页版手机端适配优化脚本简洁版 // @namespace http://tampermonkey.net/ // @version 131.27 // @description B站电脑版 -> 手机端布局;统一两列卡片网格(168x172,封面 16:9,标题 13px 两行居中)、隐藏PC端头部与侧栏并内置顶部搜索栏;首页/搜索页/番剧页/视频页(/list/播放列表)/动态详情页/opus详情页/UP主空间(主页、投稿、图文、合集和系列、合集详情)逐页适配 // @author YourName // @match *://*.bilibili.com/* // @grant none // @run-at document-start // @license All Rights Reserved // ==/UserScript== (function () { 'use strict'; const isHome = () => { const h = location.hostname, p = location.pathname; return (h === 'www.bilibili.com' || h === 'bilibili.com') && (p === '/' || p === '/index.html' || p === ''); }; const isVideoPage = () => location.hostname === 'www.bilibili.com' && /^\/video\//.test(location.pathname); // 收藏夹/合集播放列表页(/list/mlxxx、/medialist/play/mlxxx):DOM 与视频页同构,完整复用视频页优化 const isListPage = () => location.hostname === 'www.bilibili.com' && (/^\/list\//.test(location.pathname) || /^\/medialist\/play\//.test(location.pathname)); const isBangumiPage = () => location.hostname === 'www.bilibili.com' && /^\/bangumi\/play\//.test(location.pathname); const isTBiliDynamic = () => location.hostname === 't.bilibili.com'; const isOpusPage = () => { const h = location.hostname, p = location.pathname; return (h === 'www.bilibili.com' || h === 'bilibili.com') && (/^\/opus\//.test(p) || /^\/read\//.test(p)); }; const isSearchPage = () => location.hostname === 'search.bilibili.com'; const isSpacePage = () => location.hostname === 'space.bilibili.com'; function installShadowRootPatch() { if (installShadowRootPatch._installed) return; installShadowRootPatch._installed = true; const originalAttachShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function(init) { const shadowRoot = originalAttachShadow.call(this, init); // 动态详情页(t.bilibili.com/xxx)与 opus 详情页(/opus/xxx)评论区 // 都与视频页同源(bili-comments),一并注入才能做到"与视频页完全一致" if (init.mode === 'open' && (isVideoPage() || isBangumiPage() || isListPage() || isTBiliDynamic() || isOpusPage())) { try { const style = document.createElement('style'); style.setAttribute('data-bili-mobile-hidden', 'true'); style.textContent = ` bili-comment-box, #commentbox { display: none !important; visibility: hidden !important; height: 0 !important; } #like, #dislike, #reply, #more { display: none !important; visibility: hidden !important; height: 0 !important; } bili-comments-vote-card, #vote { display: none !important; visibility: hidden !important; height: 0 !important; } bili-comments-header-renderer { margin-bottom: 0 !important; padding-bottom: 0 !important; } #header { margin-bottom: 0 !important; padding-bottom: 0 !important; } #contents { margin-top: 0 !important; padding-top: 0 !important; } `; shadowRoot.appendChild(style); } catch (e) {} } return shadowRoot; }; } function fixViewport() { const apply = () => { const root = document.head || document.documentElement; if (!root) return; let vp = document.querySelector('meta[name="viewport"]'); if (!vp) { vp = document.createElement('meta'); vp.name = 'viewport'; root.appendChild(vp); } const content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover'; if (vp.getAttribute('content') !== content) { vp.setAttribute('content', content); } }; apply(); [0, 50, 200, 500, 1000, 2000, 5000].forEach(t => setTimeout(apply, t)); document.addEventListener('DOMContentLoaded', apply); window.addEventListener('load', apply); try { const obs = new MutationObserver(() => apply()); obs.observe(document.head || document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ['content'] }); } catch (e) {} } function injectStyle() { if (document.getElementById('bili-mobile-style')) return; const root = document.head || document.documentElement; if (!root) return; const style = document.createElement('style'); style.id = 'bili-mobile-style'; style.textContent = ` /* ===== 全局 ===== */ html, body { background-color: #ffffff !important; width: 100% !important; max-width: 100vw !important; min-width: 0 !important; overflow-x: hidden !important; margin: 0 !important; padding: 0 !important; overscroll-behavior-y: none !important; } html { background-color: #ffffff !important; } * { box-sizing: border-box !important; } body:not(.video-fullscreen) > * { max-width: 100vw !important; } .bili-header, .international-header, .mini-header, #biliMainHeader, .bili-header-m, .nav-menu { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } #bili-header-container, .bili-header--mini, .bili-header--fixed { display: none !important; height: 0 !important; overflow: hidden !important; } /* ===== 自建搜索栏 ===== */ #my-bili-searchbar { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; max-width: 100vw !important; height: 52px !important; background: #ffffff !important; box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important; z-index: 2147483646 !important; display: flex !important; align-items: center !important; padding: 0 10px !important; box-sizing: border-box !important; gap: 8px !important; } #my-bili-dynamic-btn { flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; height: 36px !important; padding: 0 10px !important; background: #f1f2f3 !important; border-radius: 18px !important; color: #18191c !important; text-decoration: none !important; cursor: pointer !important; white-space: nowrap !important; user-select: none !important; } #my-bili-dynamic-btn:active { background: #e3e5e7 !important; } #my-bili-dynamic-btn svg { width: 18px !important; height: 18px !important; flex-shrink: 0 !important; } #my-bili-searchbar .my-search-wrap { flex: 1 !important; display: flex !important; align-items: center !important; background: #f1f2f3 !important; border-radius: 20px !important; height: 36px !important; padding: 0 6px 0 14px !important; overflow: hidden !important; min-width: 0 !important; } #my-bili-searchbar input { flex: 1 !important; border: none !important; outline: none !important; background: transparent !important; font-size: 14px !important; color: #18191c !important; height: 100% !important; padding: 0 !important; margin: 0 !important; min-width: 0 !important; -webkit-appearance: none !important; appearance: none !important; } #my-bili-searchbar input::placeholder { color: #9499a0 !important; } #my-bili-searchbar .my-search-btn { width: 32px !important; height: 32px !important; border-radius: 50% !important; border: none !important; background: transparent !important; color: #61666d !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; padding: 0 !important; flex-shrink: 0 !important; } #my-bili-order-btn { flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; height: 36px !important; padding: 0 12px !important; background: #f1f2f3 !important; border-radius: 18px !important; color: #18191c !important; font-size: 13px !important; cursor: pointer !important; white-space: nowrap !important; user-select: none !important; -webkit-tap-highlight-color: transparent !important; } #my-bili-order-btn:active { background: #e3e5e7 !important; } #my-bili-order-btn svg { width: 16px !important; height: 16px !important; flex-shrink: 0 !important; color: #61666d !important; } #my-bili-order-btn .order-label { font-weight: 500 !important; color: #18191c !important; } /* ============================================================ ========== 首页 ========== ============================================================ */ body.bili-home-page { padding-top: 52px !important; } body.bili-home-page .banner, body.bili-home-page .bili-banner, body.bili-home-page .carousel, body.bili-home-page .carousel-container, body.bili-home-page .carousel-area, body.bili-home-page .carousel-area-img, body.bili-home-page .recommend-banner, body.bili-home-page [class*="carousel"], body.bili-home-page [class*="vui_carousel"], body.bili-home-page .recommended-swipe, body.bili-home-page .recommended-swipe-body, body.bili-home-page .recommended-swipe-body-normal, body.bili-home-page .floor, body.bili-home-page .bili-floor, body.bili-home-page .floor-single-card, body.bili-home-page .fixed-sidebar, body.bili-home-page .go-top, body.bili-home-page .bili-fixed-sidebar, body.bili-home-page .footer, body.bili-home-page .bili-footer, body.bili-home-page .international-footer, body.bili-home-page .mini-footer, body.bili-home-page .ad-report, body.bili-home-page .ad-floor, body.bili-home-page .channel-menu, body.bili-home-page .nav-channel, body.bili-home-page .bili-header__channel, body.bili-home-page .bili-header__channel-sticky, body.bili-home-page .header-channel, body.bili-home-page .bili-header-channel, body.bili-home-page .nav-channel-list, body.bili-home-page [class*="channel"][class*="header"], body.bili-home-page [class*="header"][class*="channel"], body.bili-home-page .header-nav, body.bili-home-page .nav-bar, body.bili-home-page .roll-btn, body.bili-home-page .roll-btn-text, body.bili-home-page .feed-roll-btn, body.bili-home-page [class*="roll-btn"], body.bili-home-page .bili-header__menu, body.bili-home-page .bili-header__bar, body.bili-home-page .bili-header-banner-img, body.bili-home-page .banner-img, body.bili-home-page .animated-banner, body.bili-home-page .taper-line, body.bili-home-page .palette-button-outer, body.bili-home-page .palette-feed4, body.bili-home-page [class*="right-side"], body.bili-home-page [class*="right-bar"], body.bili-home-page [class*="right-tool"], body.bili-home-page [class*="side-tool"], body.bili-home-page [class*="toolbar"], body.bili-home-page [class*="feedback"], body.bili-home-page [class*="customer-service"], body.bili-home-page [class*="service-btn"], body.bili-home-page [class*="back-top"], body.bili-home-page [class*="goto-top"], body.bili-home-page [class*="to-top"], body.bili-home-page .go-top, body.bili-home-page .bili-go-top { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-home-page .container, body.bili-home-page .container.is-version8, body.bili-home-page .recommended-container_floor-aside .container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-grid-gap: 8px !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; padding: 8px !important; margin: 0 !important; background-color: #f1f2f3 !important; box-sizing: border-box !important; align-items: start !important; align-content: start !important; grid-auto-rows: auto !important; } body.bili-home-page .bili-feed4, body.bili-home-page .bili-feed4-layout, body.bili-home-page .feed2, body.bili-home-page .recommended-container_floor-aside { width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-home-page .bili-feed4 * { max-width: 100% !important; } body.bili-home-page .container > .feed-card, body.bili-home-page .container > .bili-feed-card { display: contents !important; } body.bili-home-page .container > .feed-card:not(:has(.bili-video-card__wrap)):not(:has(.bili-live-card__wrap)), body.bili-home-page .container > .bili-feed-card:not(:has(.bili-video-card__wrap)):not(:has(.bili-live-card__wrap)), body.bili-home-page .container > .feed-card:has(.bili-video-card__info--ad), body.bili-home-page .container > .feed-card:has(.bili-video-card__info--creative-ad), body.bili-home-page .container > .feed-card:has([href^="//cm.bilibili.com/cm/api/"]), body.bili-home-page .container > .bili-feed-card:has(.bili-video-card__info--ad), body.bili-home-page .container > .bili-feed-card:has(.bili-video-card__info--creative-ad), body.bili-home-page .container > .bili-feed-card:has([href^="//cm.bilibili.com/cm/api/"]) { display: none !important; } /* ============================================================ ========== 搜索页 ========== ============================================================ */ html:has(body.bili-search-page), body.bili-search-page { width: 100vw !important; max-width: 100vw !important; min-width: 0 !important; overflow-x: hidden !important; padding: 0 !important; margin: 0 !important; background-color: #f1f2f3 !important; } body.bili-search-page { padding-top: 52px !important; } body.bili-search-page * { max-width: 100% !important; box-sizing: border-box !important; } body.bili-search-page img, body.bili-search-page video, body.bili-search-page picture { max-width: 100% !important; height: auto !important; } html body.bili-search-page #app, html body.bili-search-page #app > div, html body.bili-search-page #search-app, html body.bili-search-page #app .search-layout, html body.bili-search-page #app .search-layout.clearfix, html body.bili-search-page #app .search-content, html body.bili-search-page #app .search-content--gray, html body.bili-search-page #app .search-page-wrapper, html body.bili-search-page #app .search-page, html body.bili-search-page #app .search-page.search-page-all, html body.bili-search-page #app .search-page > div, html body.bili-search-page #app .video.i_wrapper, html body.bili-search-page #app .video.i_wrapper.search-all-list, html body.bili-search-page #app .search-all-list, body.bili-search-page .search-container, body.bili-search-page .search-result, body.bili-search-page .search-result-wrapper, body.bili-search-page .search-page-container, body.bili-search-page .search-page-content, body.bili-search-page .video-list-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-left: 0 !important; margin-right: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; box-sizing: border-box !important; position: static !important; left: 0 !important; right: 0 !important; transform: none !important; overflow-x: hidden !important; float: none !important; } body.bili-search-page .bili-header, body.bili-search-page .international-header, body.bili-search-page .mini-header, body.bili-search-page #biliMainHeader, body.bili-search-page #bili-header-container, body.bili-search-page .bili-header--mini, body.bili-search-page .bili-header--fixed, body.bili-search-page .bili-header__bar, body.bili-search-page .bili-header__menu, body.bili-search-page .nav-menu, body.bili-search-page .channel-menu, body.bili-search-page .nav-channel, body.bili-search-page .header-channel, body.bili-search-page .nav-bar, body.bili-search-page .footer, body.bili-search-page .bili-footer, body.bili-search-page .international-footer, body.bili-search-page .mini-footer, body.bili-search-page .go-top, body.bili-search-page .bili-go-top, body.bili-search-page [class*="back-top"], body.bili-search-page [class*="to-top"], body.bili-search-page [class*="right-side"], body.bili-search-page [class*="right-bar"], body.bili-search-page [class*="right-tool"], body.bili-search-page [class*="side-tool"], body.bili-search-page [class*="toolbar"], body.bili-search-page [class*="feedback"], body.bili-search-page [class*="customer-service"], body.bili-search-page [class*="service-btn"], body.bili-search-page .ad-report, body.bili-search-page .ad-floor, body.bili-search-page .fixed-sidebar, body.bili-search-page .bili-fixed-sidebar { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-search-page .search-condition, body.bili-search-page .search-condition-wrapper, body.bili-search-page .filter-wrap, body.bili-search-page .search-filter, body.bili-search-page .left-search-filter, body.bili-search-page .search-page-left, body.bili-search-page aside.left, body.bili-search-page .search-filters, body.bili-search-page .search-condition-left, body.bili-search-page .search-header, body.bili-search-page .search-navbar, body.bili-search-page .nav-search, body.bili-search-page .search-input, body.bili-search-page .search-input-container, body.bili-search-page .bili-header__search, body.bili-search-page [class*="search-header"], body.bili-search-page [class*="search-nav"], body.bili-search-page .search-hot, body.bili-search-page .hot-search, body.bili-search-page .search-trending, body.bili-search-page .trending, body.bili-search-page [class*="hot-word"], body.bili-search-page [class*="hotsearch"] { display: none !important; visibility: hidden !important; } body.bili-search-page .activity-game-list, body.bili-search-page .user-list, body.bili-search-page .activity-game-list-wrap { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } html body.bili-search-page #app .video-list, html body.bili-search-page #app .video-list.row, html body.bili-search-page #app .search-video-list, html body.bili-search-page #app .card-list, html body.bili-search-page #app .search-result-list, html body.bili-search-page #app ul.video-list, html body.bili-search-page #app .search-page-video-list, html body.bili-search-page #app .search-all-list > .video-list, html body.bili-search-page #app .search-all-list > .video-list.row, html body.bili-search-page #app .video.i_wrapper.search-all-list > .video-list, html body.bili-search-page #app .video.i_wrapper.search-all-list > .video-list.row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 8px !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; width: 100% !important; max-width: 100% !important; min-width: 100% !important; padding: 8px !important; margin: 0 !important; background-color: #f1f2f3 !important; box-sizing: border-box !important; list-style: none !important; align-items: start !important; align-content: start !important; grid-auto-rows: auto !important; float: none !important; position: static !important; } /* ===== 搜索结果番剧区:综合页 / 番剧垂搜页 统一边距 ===== 涉及两处,类名不同但结构同构,这里共用同一组规则: · 综合页(/all) :.bangumi-pgc-list.i_wrapper.search-all-list · 番剧垂搜页(/bangumi):.media-list.i_wrapper(卡内为 .col_6.mb_x40) 实测(360px 屏,综合页):容器 360 -> row 344 -> col/card 328, 即卡片左右各留 16px(8 容器 + 8 row),左右相等即居中; 垂搜页原本 row 仅 248、card 232,明显更窄,需拉到同一条边线。 同时解除 B站对该区域的固定高度(实测容器 685px、row 已占 684px), 并把卡片下边距 mb_x40(40px) 压到 8px,使「查看全部 N 部相关番剧作品」 不再被裁掉一半、无需再下滑。 卡片内部(左封面 148 + 右信息区)保持 B站原生排布,不改动。 */ /* 1) 容器:左右 8px + 上下 8px,解除官方高度限制 */ html body.bili-search-page #app .bangumi-pgc-list, html body.bili-search-page #app .bangumi-pgc-list.i_wrapper, html body.bili-search-page #app .media-list, html body.bili-search-page #app .media-list.i_wrapper, body.bili-search-page .bangumi-pgc-list, body.bili-search-page .media-list, body.bili-search-page .media-list.i_wrapper { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; padding-top: 8px !important; padding-bottom: 8px !important; margin-left: auto !important; margin-right: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; box-sizing: border-box !important; float: none !important; } /* 2) 行容器:左右 8px(与容器叠加 = 16px),高度自适应、不裁剪 */ html body.bili-search-page #app .bangumi-pgc-list .row.media-item, html body.bili-search-page #app .media-list .row, html body.bili-search-page #app .media-list.i_wrapper > .row, body.bili-search-page .bangumi-pgc-list .row.media-item, body.bili-search-page .media-list .row, body.bili-search-page .media-list.i_wrapper > .row { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-left: auto !important; margin-right: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; box-sizing: border-box !important; float: none !important; } /* 3) 卡片栅格列:占满整行(单列)。 上下卡片间距 = 卡片距屏幕左右边缘的距离 = 16px (左右实测:容器 8 + row 8 = 卡片距屏幕 16px,两边相等即居中) */ html body.bili-search-page #app .bangumi-pgc-list .media-item-col, html body.bili-search-page #app .bangumi-pgc-list [class*="media-item-col"], html body.bili-search-page #app .media-list [class*="col_6"], html body.bili-search-page #app .media-list [class*="col_md_4"], html body.bili-search-page #app .media-list .mb_x40, body.bili-search-page .bangumi-pgc-list [class*="media-item-col"], body.bili-search-page .media-list [class*="col_6"], body.bili-search-page .media-list [class*="col_md_4"], body.bili-search-page .media-list .mb_x40 { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-left: auto !important; margin-right: auto !important; margin-top: 0 !important; margin-bottom: 16px !important; height: auto !important; min-height: 0 !important; max-height: none !important; box-sizing: border-box !important; float: none !important; } /* 4) 卡片本体:满宽居中(综合页 232/328 -> 328,与综合页同一条边线) 【关键1】.media-card 原生就是 flex 行布局(左封面 148 + 右信息区), 上一版误写成 display:block,把封面和文字压成了上下排列(卡片 198 -> 647 高)。 这里显式写回 flex row:左封面固定 148,右信息区吃掉剩余宽度。 【关键2】改回 flex 后信息区变成 180(148+180=328)把间距吃没了, 原生是 封面148 + 间距16 + 信息区164 = 328, 所以用 column-gap:16px 把这段间距加回来(信息区自动回到 164)。 */ html body.bili-search-page #app .bangumi-pgc-list .media-card, html body.bili-search-page #app .media-list .media-card, body.bili-search-page .bangumi-pgc-list .media-card, body.bili-search-page .media-list .media-card, body.bili-search-page .media-card { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: flex-start !important; column-gap: 16px !important; gap: 0 16px !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin-left: auto !important; margin-right: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; box-sizing: border-box !important; float: none !important; } /* 4-1) 左封面:固定 148px(与原生一致),不拉伸、不压缩 */ html body.bili-search-page #app .bangumi-pgc-list .media-card > .media-card-image, html body.bili-search-page #app .media-list .media-card > .media-card-image, body.bili-search-page .bangumi-pgc-list .media-card > .media-card-image, body.bili-search-page .media-list .media-card > .media-card-image { flex: 0 0 148px !important; width: 148px !important; min-width: 148px !important; max-width: 148px !important; height: auto !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; float: none !important; } html body.bili-search-page #app .media-card > .media-card-image picture, html body.bili-search-page #app .media-card > .media-card-image img, body.bili-search-page .media-card > .media-card-image picture, body.bili-search-page .media-card > .media-card-image img { width: 100% !important; height: auto !important; max-width: 100% !important; object-fit: cover !important; } /* 4-2) 右信息区:吃掉剩余宽度(垂搜页 68 -> 164,与综合页一致) */ html body.bili-search-page #app .bangumi-pgc-list .media-card > .media-card-content, html body.bili-search-page #app .media-list .media-card > .media-card-content, body.bili-search-page .bangumi-pgc-list .media-card > .media-card-content, body.bili-search-page .media-list .media-card > .media-card-content { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; float: none !important; } /* 5) 「查看全部 N 部相关番剧作品」:解除裁剪 + 在长条容器内完全居中 【叠加的真因】按钮带 .p_center(原生靠 absolute + transform 居中), 脱出文档流后 .show-more-text 高度塌成 0,按钮就画在别的内容上面了。 这里把按钮和外框都改回 static,让按钮重新撑起高度、参与正常排版; 容器已解除固定高度 + overflow:visible,按钮得以完整显示且不再重叠。 【上下不居中的原因】外框是 block 长条,按钮是 inline-block, 只能靠 text-align 左右居中;垂直方向贴着 padding-top 走,天然偏上。 这里把外框改成 flex,align-items:center + justify-content:center, 按钮在长条容器内左右、上下都居中;外框保留最小高度,保证长条背景完整。 */ html body.bili-search-page #app .bangumi-pgc-list .show-more-text, html body.bili-search-page #app .media-list .show-more-text, body.bili-search-page .bangumi-pgc-list .show-more-text, body.bili-search-page .media-list .show-more-text { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: center !important; position: static !important; visibility: visible !important; opacity: 1 !important; width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 40px !important; max-height: none !important; /* 上下 padding 必须对称,否则即使 flex 居中,按钮视觉上仍会偏上 */ padding: 6px 0 !important; margin: 8px auto 0 !important; overflow: visible !important; text-align: center !important; box-sizing: border-box !important; float: none !important; clear: both !important; } html body.bili-search-page #app .bangumi-pgc-list .show-more-text button, html body.bili-search-page #app .media-list .show-more-text button, body.bili-search-page .bangumi-pgc-list .show-more-text button, body.bili-search-page .media-list .show-more-text button, body.bili-search-page .show-more-text button { display: inline-flex !important; align-items: center !important; justify-content: center !important; position: static !important; top: auto !important; right: auto !important; bottom: auto !important; left: auto !important; transform: none !important; visibility: visible !important; opacity: 1 !important; flex: 0 0 auto !important; width: auto !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 4px 8px !important; margin: 0 !important; line-height: normal !important; white-space: normal !important; overflow: visible !important; text-align: center !important; box-sizing: border-box !important; float: none !important; } body.bili-search-page .video-item + .video-item, body.bili-search-page .video-list > li + li, body.bili-search-page .search-result-list > li + li { border-top: none !important; padding-top: 0 !important; margin-top: 0 !important; } body.bili-search-page .video-item::before, body.bili-search-page .video-item::after, body.bili-search-page .bili-video-card::before, body.bili-search-page .bili-video-card::after, body.bili-search-page .video-list > li::before, body.bili-search-page .video-list > li::after { display: none !important; content: none !important; } html body.bili-search-page #app .video-list > *, html body.bili-search-page #app .search-video-list > *, html body.bili-search-page #app .card-list > *, html body.bili-search-page #app .search-result-list > *, html body.bili-search-page #app ul.video-list > *, html body.bili-search-page #app .search-page-video-list > *, html body.bili-search-page #app .search-all-list .video-list > *, html body.bili-search-page #app .video-list.row > div[class*="col_"], html body.bili-search-page #app .video-list.row > .col_3, html body.bili-search-page #app .video-list.row > .col_xs_1_5, html body.bili-search-page #app .video-list.row > .col_md_2, html body.bili-search-page #app .video-list.row > .to_hide_xs, html body.bili-search-page #app .video-list.row > .to_hide_md, html body.bili-search-page #app .video-list.row > .to_hide_xl { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; float: none !important; box-sizing: border-box !important; flex: 1 1 100% !important; position: static !important; } html body.bili-search-page #app .bili-video-card, html body.bili-search-page #app .bili-video-card.bili-video-card, html body.bili-search-page #app .bili-video-card.bili-video-card.bili-video-card, html body.bili-search-page #app .search-all-list .bili-video-card, html body.bili-search-page #app .video-list.row .bili-video-card { height: auto !important; max-height: none !important; min-height: 172px !important; width: 100% !important; max-width: 100% !important; min-width: 100% !important; margin: 0 !important; padding: 0 !important; display: block !important; align-self: start !important; background: #ffffff !important; border: none !important; border-radius: 8px !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important; overflow: hidden !important; box-sizing: border-box !important; position: relative !important; float: none !important; flex: 1 1 100% !important; } html body.bili-search-page #app .bili-video-card__skeleton, html body.bili-search-page #app .bili-video-card__skeleton--cover, html body.bili-search-page #app .bili-video-card__skeleton--info, html body.bili-search-page #app .bili-video-card__skeleton--right, html body.bili-search-page #app .bili-video-card__skeleton--text, html body.bili-search-page #app .bili-video-card__skeleton--light, html body.bili-search-page #app .bili-video-card__skeleton.hide, html body.bili-search-page #app .bili-video-card__skeleton--text.short { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; flex: none !important; display: block !important; } body.bili-search-page .bili-video-card__wrap, body.bili-search-page .bili-video-card__info, body.bili-search-page .bili-video-card__image--wrap { height: auto !important; max-height: none !important; min-height: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; } body.bili-search-page .flex_center.mt_x50, body.bili-search-page .flex_center.mb_x50, body.bili-search-page [class*="mt_x50"], body.bili-search-page [class*="mb_x50"] { margin-top: 8px !important; margin-bottom: 8px !important; } body.bili-search-page .vui_pagenation, body.bili-search-page .page-wrap, body.bili-search-page .pagination { display: flex !important; justify-content: center !important; width: 100% !important; max-width: 100% !important; padding: 8px 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-search-page .vui_pagenation--btns { display: flex !important; flex-wrap: nowrap !important; justify-content: flex-start !important; align-items: center !important; width: 100% !important; max-width: 100% !important; padding: 0 8px !important; margin: 0 !important; box-sizing: border-box !important; gap: 4px !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; } body.bili-search-page .vui_pagenation--btns::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } body.bili-search-page .vui_pagenation--btns { scrollbar-width: none !important; -ms-overflow-style: none !important; } body.bili-search-page .vui_pagenation--btn { flex-shrink: 0 !important; flex-grow: 0 !important; margin: 0 !important; min-width: 32px !important; padding: 0 6px !important; height: 34px !important; line-height: 34px !important; box-sizing: border-box !important; white-space: nowrap !important; font-size: 13px !important; text-align: center !important; border-radius: 4px !important; } body.bili-search-page .vui_pagenation--btn-side { min-width: 44px !important; padding: 0 10px !important; } /* ===== 视频页 ===== */ body.bili-video-page { background: #ffffff !important; overflow-x: hidden !important; min-height: 100vh !important; margin-top: 0 !important; padding-top: 0 !important; } body.bili-video-page { --video-equal-spacing: 36px; } body.bili-video-page, body.bili-video-page #app, body.bili-video-page #app > div, body.bili-video-page #mirror-vdcon.video-container-v1, body.bili-video-page .left-container, body.bili-video-page .left-container.scroll-sticky { width: 100vw !important; max-width: 100vw !important; min-width: 100vw !important; overflow-x: hidden !important; box-sizing: border-box !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; left: 0 !important; right: 0 !important; position: relative !important; } body.bili-video-page .left-container, body.bili-video-page .left-container.scroll-sticky { padding: 0 8px !important; } body.bili-video-page #app, body.bili-video-page #app > div, body.bili-video-page #mirror-vdcon.video-container-v1, body.bili-video-page #mirror-vdcon > *, body.bili-video-page .left-container, body.bili-video-page .left-container.scroll-sticky, body.bili-video-page .left-container > *, body.bili-video-page #viewbox_report, body.bili-video-page #viewbox_report > *, body.bili-video-page #viewbox_report .video-info-title, body.bili-video-page #viewbox_report .video-info-title-inner, body.bili-video-page #viewbox_report h1.video-title, body.bili-video-page #viewbox_report .video-info-meta, body.bili-video-page #viewbox_report .video-info-detail-list, body.bili-video-page #viewbox_report .pubdate-ip, body.bili-video-page #viewbox_report .pubdate-ip-text { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; top: 0 !important; bottom: auto !important; } body.bili-video-page #viewbox_report { margin-top: var(--video-equal-spacing) !important; margin-bottom: var(--video-equal-spacing) !important; padding-top: 0 !important; } body.bili-video-page #playerWrap { width: 100% !important; max-width: 100% !important; height: calc((100vw - 22px) * 9 / 16 + 6px) !important; max-height: calc((100vw - 22px) * 9 / 16 + 6px) !important; min-width: 0 !important; min-height: 0 !important; overflow: hidden !important; box-sizing: border-box !important; border: 3px solid #00aeec !important; border-radius: 12px !important; box-shadow: 0 4px 16px rgba(0, 174, 236, 0.25) !important; margin-top: 0 !important; margin-bottom: var(--video-equal-spacing) !important; position: relative !important; } body.bili-video-page #playerWrap #bilibili-player-placeholder, body.bili-video-page #playerWrap #bilibili-player, body.bili-video-page #playerWrap .bpx-docker, body.bili-video-page #playerWrap .bpx-player-container, body.bili-video-page #playerWrap .bpx-player-primary-area, body.bili-video-page #playerWrap .bpx-player-video-area, body.bili-video-page #playerWrap .bpx-player-video-wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 100% !important; max-height: 100% !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; transform: none !important; zoom: normal !important; border-radius: 0 !important; } body.bili-video-page #playerWrap video { width: 100% !important; height: 100% !important; object-fit: contain !important; display: block !important; margin: 0 !important; padding: 0 !important; background-color: #000 !important; } body.bili-video-page #v_desc { margin-top: 0 !important; margin-bottom: var(--video-equal-spacing) !important; } body.bili-video-page #commentapp { margin-top: 0 !important; padding-top: 0 !important; } body.bili-video-page #biliMainHeader, body.bili-video-page .bili-header, body.bili-video-page .international-header, body.bili-video-page .mini-header, body.bili-video-page .nav-menu, body.bili-video-page .fixed-sidenav-storage, body.bili-video-page .video-note-sidebar-panel, body.bili-video-page .video-note-sidebar-chapter-layer, body.bili-video-page .video-note-sidebar-chapter-portal, body.bili-video-page .go-top, body.bili-video-page .bili-footer, body.bili-video-page .footer, body.bili-video-page [class*="back-top"], body.bili-video-page [class*="to-top"] { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-video-page #arc_toolbar_report, body.bili-video-page .video-toolbar-container { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } /* v131.19 视频页 UP 主信息区:移除「关注」前面的「充电」按钮 实测结构:.up-info__btn-panel > .upinfo-btn-panel > div.default-btn.old-charge-btn.not-follow-charge-btn ← 充电 > div.default-btn.follow-btn.b-gz.not-follow ← 关注 这里用 [class*="charge"] 覆盖全部版本(old / new / 已关注变体), 只写 display:none:flex 布局下被移除项不会占用 gap, 关注按钮会自动左移,不留空隙。 */ body.bili-video-page .up-info__btn-panel .new-charge-btn, body.bili-video-page .default-btn.new-charge-btn, body.bili-video-page .default-btn.old-charge-btn, body.bili-video-page .default-btn.not-follow-charge-btn, body.bili-video-page .default-btn.follow-charge-btn, body.bili-video-page .up-info__btn-panel [class*="charge"], body.bili-video-page .upinfo-btn-panel [class*="charge"] { display: none !important; visibility: hidden !important; } body.bili-video-page [class*="ad-"], body.bili-video-page [class*="ads-"], body.bili-video-page [class*="advertisement"], body.bili-video-page .video-card-ad-small, body.bili-video-page .video-card-ad, body.bili-video-page .slide-ad-exp, body.bili-video-page .slide-gg, body.bili-video-page .banner-ad, body.bili-video-page .ad-floor-exp, body.bili-video-page .ad-report, body.bili-video-page .popup-ad, body.bili-video-page .float-ad { display: none !important; visibility: hidden !important; height: 0 !important; width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-video-page .video-resource-list, body.bili-video-page .activity-m-v1, body.bili-video-page [class*="video-resource-list"] { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-video-page .right-container .video-page-game-card-small, body.bili-video-page .right-container [class*="game-card-small"] { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; padding: 0 !important; margin: 0 !important; } body.bili-video-page .right-container #danmukuBox, body.bili-video-page .right-container .video-pod-above-modules, body.bili-video-page .right-container .danmaku-box, body.bili-video-page .right-container .bpx-player-auxiliary { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; } body.bili-video-page .bpx-player-sending-area, body.bili-video-page .bpx-player-sending-bar, body.bili-video-page .bpx-player-dm-root, body.bili-video-page .bpx-player-video-inputbar { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-video-page .bpx-player-ctrl-pip, body.bili-video-page .bpx-player-ctrl-wide, body.bili-video-page .bpx-player-ctrl-time, body.bili-video-page .bpx-player-ctrl-eplist { display: none !important; } @media screen and (orientation: landscape) { body.bili-video-page .bpx-player-ctrl-time { display: block !important; } } @media screen and (width >= 750px) { body.bili-video-page .bpx-player-container[data-screen=full] .bpx-player-ctrl-quality-result { height: unset !important; font-size: 16px !important; } body.bili-video-page .bpx-player-container[data-screen=full] .bpx-player-control-wrap { height: 43px !important; } body.bili-video-page .bpx-player-container[data-screen=full] .bpx-player-control-top { bottom: 43px !important; } } body.bili-video-page div.bpx-player-control-bottom { height: 29px !important; margin-top: 7px !important; padding: 0 7px !important; } body.bili-video-page div.bpx-player-control-top { transition: none; bottom: 36px; } body.bili-video-page .bpx-player-pbp .bpx-player-pbp-pin-tip { display: none !important; } body.bili-video-page .bpx-player-control-bottom-left, body.bili-video-page .bpx-player-control-bottom-right { flex: unset !important; } body.bili-video-page .bpx-player-container .bpx-player-control-bottom-left, body.bili-video-page .bpx-player-container .bpx-player-control-bottom-right { min-width: 0 !important; } body.bili-video-page .bpx-player-ctrl-quality { min-width: 0; flex: auto !important; margin-right: 0 !important; } body.bili-video-page .bpx-player-ctrl-quality-result, body.bili-video-page .bpx-player-ctrl-playbackrate { font-size: 12px !important; } body.bili-video-page .bpx-player-ctrl-quality-result { height: 22px; overflow: hidden; } body.bili-video-page .bpx-player-ctrl-playbackrate { text-wrap: nowrap; } body.bili-video-page .bpx-player-progress-wrap { height: 7px !important; padding-bottom: 3px !important; } body.bili-video-page .bpx-player-control-mask { background: linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%) !important; } body.bili-video-page .bpx-player-ctrl-quality-menu-wrap { bottom: 22px !important; } body.bili-video-page .bpx-player-ctrl-quality-menu-item { max-width: 95px; max-height: 36px; height: 7.7vw !important; padding: 0 8px 0 12px !important; } body.bili-video-page .bpx-player-ctrl-quality-badge-bigvip { color: #fff; background-color: #f25d8e; width: 16px; overflow: hidden; right: 8px !important; } body.bili-video-page .bpx-player-ctrl-quality-badge-bigvip:before { color: #fff; content: "V"; background-color: #f25d8e; padding: 0 4px; position: absolute; left: 0; } body.bili-video-page .bpx-player-ctrl-playbackrate-menu { bottom: 22px !important; } body.bili-video-page .bpx-player-ctrl-playbackrate-menu-item { justify-content: center; align-items: center; max-height: 36px; display: flex; height: 7.7vw !important; } body.bili-video-page div.bpx-player-ctrl-subtitle-box { bottom: 0; right: 0; transform: scale(.8); } body.bili-video-page .bpx-player-ctrl-setting-box { bottom: 0 !important; right: 0 !important; } body.bili-video-page .bpx-player-ctrl-setting-menu-right { padding: 5px !important; } body.bili-video-page .bpx-player-ctrl-setting-menu-right > div { justify-content: center; align-items: center; max-height: 40px; display: flex; height: 10vw !important; } body.bili-video-page .bpx-player-ctrl-setting-menu-right .bui-radio { width: 77%; margin: 0 0 8px 7px; } body.bili-video-page .bpx-player-ctrl-setting-others-content { margin-left: 7px; width: 77% !important; } body.bili-video-page .bpx-player-ctrl-setting-highenergy .bui-checkbox-name { white-space: nowrap; width: 48px; overflow: hidden; } body.bili-video-page .bpx-player-dm-setting-wrap { top: 0; left: 50%; transform: translate(-50%); bottom: unset !important; position: fixed !important; } body.bili-video-page .bpx-player-control-bottom-center .bpx-player-sending-bar { height: 24px !important; padding-right: 6px !important; } body.bili-video-page .bpx-player-ctrl-viewpoint { flex-shrink: 1 !important; width: 45px !important; min-width: 0 !important; margin: 0 !important; } body.bili-video-page .bpx-player-ctrl-viewpoint-text { flex: none; font-size: 12px; width: 24px !important; text-overflow: unset !important; } body.bili-video-page .bpx-player-control-wrap:not(.new) { display: none; } body.bili-video-page .bpx-player-control-entity, body.bili-video-page .bpx-player-control-mask { display: block !important; } body.bili-video-page .bpx-player-container[data-ctrl-hidden=true] .bpx-player-control-bottom { display: none; } body.bili-video-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-wrap .bpx-player-control-mask { opacity: 0; transition: opacity .2s ease-in; } body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-wrap .bpx-player-control-mask { opacity: 1; } body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-control-bottom { opacity: 1; display: flex; } body.bili-video-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-control-bottom { display: none; } body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-control-top, body.bili-video-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-shadow-progress-area { opacity: 1; visibility: visible; } body.bili-video-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-control-top, body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-shadow-progress-area { opacity: 0; visibility: hidden; } body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-pbp { opacity: 1; width: 100%; bottom: calc(100% + 6px); left: 0; } body.bili-video-page div.bpx-player-control-entity .bpx-player-pbp { opacity: 0; width: calc(100% + 24px); bottom: 1px; left: -12px; } body.bili-video-page div.bpx-player-control-entity .bpx-player-pbp.pin { opacity: 1; } body.bili-video-page .bpx-player-pbp-pin { display: none; opacity: 1 !important; } body.bili-video-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-pbp-pin { display: block; } body.bili-video-page .bpx-player-video-perch { max-height: 0; } body.bili-video-page .bpx-player-top-wrap, body.bili-video-page .bpx-player-state-wrap { display: none !important; } body.bili-video-page .bpx-player-container, body.bili-video-page #bilibili-player-placeholder { box-shadow: none !important; } body.video-fullscreen { overflow: hidden !important; } body.video-fullscreen #mirror-vdcon, body.video-fullscreen .left-container { width: 100vw !important; max-width: 100vw !important; min-width: 100vw !important; height: 100vh !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.video-fullscreen #playerWrap { width: 100vw !important; max-width: 100vw !important; height: 100vh !important; max-height: 100vh !important; min-height: 100vh !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; overflow: hidden !important; margin: 0 !important; } body.video-fullscreen #playerWrap #bilibili-player-placeholder, body.video-fullscreen #playerWrap #bilibili-player, body.video-fullscreen #playerWrap .bpx-docker, body.video-fullscreen #playerWrap .bpx-player-container, body.video-fullscreen #playerWrap .bpx-player-primary-area, body.video-fullscreen #playerWrap .bpx-player-video-area, body.video-fullscreen #playerWrap .bpx-player-video-wrap { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; min-width: 0 !important; min-height: 0 !important; } body.video-fullscreen .bpx-player-video-wrap video { object-fit: contain !important; } /* ★ 侧边栏通用(视频页 / 番剧页):仅保留通用的 fixed + GPU 合成,不加 padding ★ */ body.bili-video-page .right-container, body.bili-bangumi-page .plp-r-wrap { position: fixed !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: auto !important; width: 85vw !important; max-width: 420px !important; height: 100vh !important; max-height: 100vh !important; overflow-y: auto !important; overflow-x: hidden !important; background: #ffffff !important; z-index: 99999 !important; transform: translate3d(100%, 0, 0) !important; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15) !important; box-sizing: border-box !important; -webkit-overflow-scrolling: touch !important; display: block !important; } body.bili-video-page .right-container.show, body.bili-bangumi-page .plp-r-wrap.show { transform: translate3d(0, 0, 0) !important; } /* ★ 番剧侧边栏:pad + 内部 plp-r 归位 ★ */ body.bili-bangumi-page .plp-r-wrap { padding: 12px !important; } body.bili-bangumi-page .plp-r.sticky { position: static !important; top: auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; display: block !important; } body.bili-bangumi-page .plp-r-wrap .PaginatedEpList_root__67C7p, body.bili-bangumi-page .plp-r-wrap .recommend_wrap__PccwM { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-bangumi-page .plp-r-wrap img { max-width: 100% !important; height: auto !important; } body.bili-bangumi-page .EpisodeVirtualList_scroll__62SmN { width: 100% !important; max-width: 100% !important; overflow-x: hidden !important; } body.bili-bangumi-page .EpisodeVirtualList_virtualCanvas__0AC8_ { width: 100% !important; max-width: 100% !important; min-width: 0 !important; } body.bili-bangumi-page .EpisodeVirtualList_gridRow__czcgd { display: flex !important; flex-wrap: nowrap !important; justify-content: center !important; align-items: center !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; padding: 0 6px !important; } body.bili-bangumi-page .EpisodeVirtualList_numberItem__GLWgO { width: 46px !important; height: 46px !important; min-width: 46px !important; min-height: 46px !important; flex-shrink: 0 !important; border-radius: 8px !important; font-size: 14px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; } body.bili-bangumi-page .EpisodeVirtualList_numberItem__GLWgO * { font-size: 10px !important; transform: scale(0.9) !important; } body.bili-bangumi-page #danmukuBox { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; } body.bili-video-page .right-container .right-container-inner { position: static !important; top: auto !important; height: auto !important; padding: 12px !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-video-page .right-container .up-info--right, body.bili-video-page .right-container .up-info__btn-panel, body.bili-video-page .right-container .upinfo-btn-panel, body.bili-video-page .right-container .follow-btn, body.bili-video-page .right-container .interactions { overflow: visible !important; position: relative !important; } body.bili-video-page .right-container .follow-btn .menu-popover, body.bili-video-page .right-container .follow-btn-wrapper { position: absolute !important; top: 100% !important; right: 0 !important; left: auto !important; z-index: 9999999 !important; transform: none !important; margin-top: 4px !important; background: #fff !important; border-radius: 4px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important; } body.bili-video-page .van-popover, body.bili-video-page .bili-popover, body.bili-video-page [class*="popover"] { z-index: 9999999 !important; } body.bili-video-page .right-container > *, body.bili-video-page .right-container .up-panel-container, body.bili-video-page .right-container .up-info-container, body.bili-video-page .right-container .video-pod-above-modules, body.bili-video-page .right-container .video-pod-above-modules__inner, body.bili-video-page .right-container .rcmd-tab, body.bili-video-page .right-container .recommend-list-v1, body.bili-video-page .right-container .rec-list, body.bili-video-page .right-container .video-page-card-small, body.bili-video-page .right-container .bpx-player-wraplist, body.bili-video-page .right-container .slide-ad-exp, body.bili-video-page .right-container .slide-gg, body.bili-video-page .right-container .ad-report, body.bili-video-page .right-container .ad-floor-cover { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; position: static !important; left: auto !important; right: auto !important; } body.bili-video-page .right-container .ad-report.ad-floor-exp.right-bottom-banner, body.bili-video-page .right-container .ad-floor-cover, body.bili-video-page .right-container .video-card-ad-small { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; } body.bili-video-page .right-container img, body.bili-video-page .right-container video, body.bili-video-page .right-container picture { max-width: 100% !important; height: auto !important; } body.bili-video-page .right-container .send-msg, body.bili-video-page .right-container a.send-msg, body.bili-video-page .right-container .up-detail-top > a.send-msg { display: none !important; visibility: hidden !important; } body.bili-video-page .right-container .up-info--right { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; max-width: 100% !important; display: flex !important; flex-direction: column !important; } body.bili-video-page .right-container .up-info__detail, body.bili-video-page .right-container .up-detail, body.bili-video-page .right-container .upinfo-sign, body.bili-video-page .right-container .upinfo-sign__text { width: 100% !important; max-width: 100% !important; min-width: 0 !important; word-break: break-all !important; white-space: normal !important; overflow-wrap: break-word !important; box-sizing: border-box !important; overflow: hidden !important; } body.bili-video-page .right-container .up-detail-top { display: flex !important; align-items: center !important; justify-content: flex-start !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; gap: 8px !important; } body.bili-video-page .right-container .up-name { white-space: nowrap !important; word-break: keep-all !important; text-overflow: ellipsis !important; overflow: hidden !important; flex-shrink: 1 !important; width: auto !important; max-width: 100% !important; min-width: 0 !important; display: block !important; } body.bili-video-page #viewbox_report, body.bili-video-page .video-info-title, body.bili-video-page .video-info-title-inner, body.bili-video-page .video-title, body.bili-video-page #v_desc, body.bili-video-page .basic-desc-info, body.bili-video-page .desc-info-text { text-align: center !important; justify-content: center !important; align-items: center !important; float: none !important; } body.bili-video-page h1.video-title { width: 100% !important; display: block !important; text-align: center !important; } body.bili-video-page #viewbox_report .show-more, body.bili-video-page #viewbox_report .show-more-btn { display: none !important; visibility: hidden !important; height: 0 !important; width: 0 !important; overflow: hidden !important; } body.bili-video-page #viewbox_report .video-info-detail-list > .item:not(.pubdate-ip) { display: none !important; visibility: hidden !important; } body.bili-video-page #viewbox_report .video-info-title, body.bili-video-page #viewbox_report .video-info-title-inner, body.bili-video-page h1.video-title { height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; white-space: normal !important; word-break: break-all !important; padding: 0 !important; } body.bili-video-page #v_desc, body.bili-video-page #viewbox_report, body.bili-video-page .video-info-container, body.bili-video-page .left-container, body.bili-video-page #mirror-vdcon.video-container-v1, body.bili-video-page #app { height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; } body.bili-video-page #v_desc .basic-desc-info { height: auto !important; max-height: none !important; overflow: visible !important; } body.bili-video-page #v_desc .desc-info-text { display: block !important; height: auto !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; overflow: visible !important; text-overflow: clip !important; max-height: none !important; white-space: pre-wrap !important; } body.bili-video-page #v_desc .toggle-btn, body.bili-video-page #v_desc .toggle-btn-text { display: none !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important; } body.bili-video-page #viewbox_report .video-info-meta, body.bili-video-page #viewbox_report .video-info-detail-list { display: flex !important; justify-content: center !important; align-items: center !important; width: 100% !important; text-align: center !important; margin: 0 auto !important; padding: 0 !important; float: none !important; } body.bili-video-page #viewbox_report .video-info-detail-list .item { float: none !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; } body.bili-video-page .video-tag-container, body.bili-video-page .tag-panel, body.bili-video-page #mirror-vdcon > .left-container > .video-tag-container { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-video-page #commentapp .bili-comment-box, body.bili-video-page #commentapp .bili-comment-input-wrap, body.bili-video-page #commentapp .comment-send-box, body.bili-video-page #commentapp .comment-box, body.bili-video-page #commentapp .reply-box, body.bili-video-page #commentapp .bili-comment-container > .bili-comment-box, body.bili-video-page #commentapp .comment-container .comment-box, body.bili-video-page #commentapp .bili-comment-editor, body.bili-video-page #commentapp .bili-comment-editor-wrap { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-video-page #commentapp, body.bili-video-page #commentapp bili-comments, body.bili-video-page #commentapp .bili-comment-container, body.bili-video-page #commentapp .comment-container, body.bili-video-page #commentapp .comment-box, body.bili-video-page #commentapp .reply-box, body.bili-video-page #commentapp .bili-comment-box, body.bili-video-page #commentapp .bili-comment-input-wrap, body.bili-video-page #commentapp .comment-send-box { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; padding-left: 8px !important; padding-right: 8px !important; overflow: hidden !important; } body.bili-video-page #commentapp textarea, body.bili-video-page #commentapp input[type="text"], body.bili-video-page #commentapp .comment-textarea, body.bili-video-page #commentapp .bili-comment-textarea, body.bili-video-page #commentapp .reply-textarea, body.bili-video-page #commentapp [contenteditable="true"] { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; resize: none !important; word-break: break-all !important; white-space: pre-wrap !important; overflow-wrap: break-word !important; height: auto !important; min-height: 40px !important; padding: 8px !important; margin: 0 !important; overflow: hidden !important; } #my-bili-right-mask { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100vw !important; height: 100vh !important; background: rgba(0, 0, 0, 0.35) !important; z-index: 99998 !important; opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; transition: opacity 0.3s ease, visibility 0.3s ease !important; will-change: opacity; display: block !important; } #my-bili-right-mask.show { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; } /* ============================================================ ========== 播放列表页(/list/):完整复用视频页优化 ========== ============================================================ */ body.bili-list-page { background: #ffffff !important; overflow-x: hidden !important; margin-top: 0 !important; padding-top: 0 !important; } /* 取消左右分栏:左栏独占整宽 */ body.bili-list-page #app.playlist-app, body.bili-list-page #mirror-vdcon.playlist-container { display: block !important; width: 100vw !important; max-width: 100vw !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow-x: hidden !important; box-sizing: border-box !important; } body.bili-list-page #mirror-vdcon .playlist-container--left { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 8px !important; margin: 0 !important; float: none !important; overflow-x: hidden !important; box-sizing: border-box !important; } body.bili-list-page .playlist-container--left > * { max-width: 100% !important; } /* 标题 / 播放信息:与视频页完全一致的居中与等距 */ body.bili-list-page .video-info-container { margin-top: var(--video-equal-spacing) !important; margin-bottom: var(--video-equal-spacing) !important; padding: 0 !important; text-align: center !important; width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; box-sizing: border-box !important; } body.bili-list-page .video-info-container .video-info-meta, body.bili-list-page .video-info-container .video-info-detail-list { display: flex !important; justify-content: center !important; align-items: center !important; width: 100% !important; text-align: center !important; margin: 0 auto !important; padding: 0 !important; float: none !important; } body.bili-list-page .video-info-container .video-info-detail-list .item { float: none !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; } body.bili-list-page .video-info-container .video-info-detail-list > .item:not(.pubdate-ip) { display: none !important; visibility: hidden !important; } /* 标题:解除 B站原生行数/高度限制(video-info-title 系列 + special-text-indent), 与视频页 #viewbox_report 下的标题处理保持一致,完整多行显示 */ body.bili-list-page .video-info-container .video-info-title, body.bili-list-page .video-info-container .video-info-title-inner, body.bili-list-page .video-info-container .video-title, body.bili-list-page .video-info-container h1.video-title, body.bili-list-page .video-info-container h1.video-title > a, body.bili-list-page .video-info-container .video-title-href, body.bili-list-page .video-info-container .video-info-title * { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; line-clamp: unset !important; -webkit-box-orient: horizontal !important; text-overflow: clip !important; white-space: normal !important; word-break: break-word !important; overflow-wrap: break-word !important; text-indent: 0 !important; line-height: normal !important; letter-spacing: normal !important; padding: 0 !important; margin: 0 !important; float: none !important; text-align: center !important; box-sizing: border-box !important; } body.bili-list-page .video-info-container .video-info-title::after, body.bili-list-page .video-info-container .video-info-title-inner::after, body.bili-list-page .video-info-container .video-title::after, body.bili-list-page .video-info-container .video-title::before, body.bili-list-page .video-info-container .video-info-title .show-more, body.bili-list-page .video-info-container .video-info-title .show-more-btn, body.bili-list-page .video-info-container .video-info-title .expand-btn { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; content: none !important; } /* 简介:始终完全展开(等价视频页 #v_desc) */ body.bili-list-page .video-desc-container { margin: 0 0 var(--video-equal-spacing) !important; width: 100% !important; max-width: 100% !important; text-align: center !important; box-sizing: border-box !important; } body.bili-list-page .video-desc-container .basic-desc-info { height: auto !important; max-height: none !important; overflow: visible !important; } body.bili-list-page .video-desc-container .desc-info-text { display: block !important; height: auto !important; max-height: none !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; overflow: visible !important; text-overflow: clip !important; white-space: pre-wrap !important; word-break: break-all !important; } body.bili-list-page .video-desc-container .toggle-btn, body.bili-list-page .video-desc-container .toggle-btn-text { display: none !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important; } /* 右栏(UP主 + 播放列表 + 推荐):与视频页 right-container 相同的浮动抽屉 */ body.bili-video-page #mirror-vdcon .playlist-container--right { position: fixed !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: auto !important; width: 85vw !important; max-width: 420px !important; height: 100vh !important; max-height: 100vh !important; overflow-y: auto !important; overflow-x: hidden !important; background: #ffffff !important; z-index: 99999 !important; transform: translate3d(100%, 0, 0) !important; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15) !important; box-sizing: border-box !important; -webkit-overflow-scrolling: touch !important; display: block !important; padding: 12px !important; margin: 0 !important; float: none !important; } body.bili-video-page #mirror-vdcon .playlist-container--right.show { transform: translate3d(0, 0, 0) !important; } /* 抽屉内容:全部撑满宽度 */ body.bili-video-page .playlist-container--right > *, body.bili-video-page .playlist-container--right .up-panel-container, body.bili-video-page .playlist-container--right .up-info-container, body.bili-video-page .playlist-container--right .action-list-container, body.bili-video-page .playlist-container--right .action-list-header, body.bili-video-page .playlist-container--right .action-list-body, body.bili-video-page .playlist-container--right .action-list-body-top, body.bili-video-page .playlist-container--right .action-list-body-bottom, body.bili-video-page .playlist-container--right .action-list, body.bili-video-page .playlist-container--right .action-list-inner, body.bili-video-page .playlist-container--right .action-list-content, body.bili-video-page .playlist-container--right .action-list-item-wrap, body.bili-video-page .playlist-container--right .action-list-item, body.bili-video-page .playlist-container--right .singlep-list-item-inner, body.bili-video-page .playlist-container--right .multip-list-item-inner, body.bili-video-page .playlist-container--right .multip-list, body.bili-video-page .playlist-container--right .multip-list-item, body.bili-video-page .playlist-container--right .recommend-list-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right img, body.bili-video-page .playlist-container--right video, body.bili-video-page .playlist-container--right picture { max-width: 100% !important; height: auto !important; } body.bili-video-page .playlist-container--right .action-list-header { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px !important; } body.bili-video-page .playlist-container--right .action-list-item .title, body.bili-video-page .playlist-container--right .multip-list-item .title, body.bili-video-page .playlist-container--right .list-display-name { white-space: normal !important; word-break: break-all !important; overflow-wrap: break-word !important; } /* ============================================================ 默认收藏夹 / 播放列表:内容在容器内"居中" —— 左右间距天然相等 思路:不再逐层算 padding(B站原生各层左右留白本就不等,容易一侧偏多), 改为「容器统一给一圈 gutter + 内部所有块级层 margin-inline: auto 居中」。 居中后,无论某一层残留多少单边留白,都会被均分到两侧,左右必然相等。 唯一可调变量:--fav-gutter(默认 8px),改一处、两侧同步。 滚动条按你的要求忽略(不额外预留 scrollbar-gutter)。 ============================================================ */ /* 1) 抽屉本体:左右内边距 12px -> 8px(与推荐卡片、UP 头像同一条起始线) */ body.bili-video-page #mirror-vdcon .playlist-container--right { --fav-gutter: 8px; padding-left: 8px !important; padding-right: 8px !important; } /* 2) 收藏夹容器:左右同为 --fav-gutter,这是容器内部唯一的留白来源 */ body.bili-video-page .playlist-container--right .action-list-container { padding-left: var(--fav-gutter, 8px) !important; padding-right: var(--fav-gutter, 8px) !important; margin-left: auto !important; margin-right: auto !important; } /* 3) 容器内所有块级层:清掉自身单边留白,改为左右 auto 居中 */ body.bili-video-page .playlist-container--right .action-list-header, body.bili-video-page .playlist-container--right .action-list-body, body.bili-video-page .playlist-container--right .action-list-body-top, body.bili-video-page .playlist-container--right .action-list-body-bottom, body.bili-video-page .playlist-container--right .action-list, body.bili-video-page .playlist-container--right .action-list-inner, body.bili-video-page .playlist-container--right .action-list-content, body.bili-video-page .playlist-container--right .action-list-item-wrap, body.bili-video-page .playlist-container--right .action-list-item, body.bili-video-page .playlist-container--right .singlep-list-item-inner, body.bili-video-page .playlist-container--right .multip-list-item-inner { padding-left: 0 !important; padding-right: 0 !important; margin-left: auto !important; margin-right: auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } /* 标题行 / 创建者行:内部元素必须按内容取宽(不能 width:100%), 否则会把右侧的 "^" 按钮和"收藏"按钮挤到下一行(实测 header 48px -> 72px)。 这里让它们恢复 auto,并由父行用 space-between 把按钮送回最右侧。 */ body.bili-video-page .playlist-container--right .header-left, body.bili-video-page .playlist-container--right .list-display-name, body.bili-video-page .playlist-container--right .fav-btn, body.bili-video-page .playlist-container--right .list-title, body.bili-video-page .playlist-container--right .list-playorder-btn, body.bili-video-page .playlist-container--right .list-playway-btn { width: auto !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; } /* 这两行强制单行:左文案 + 右按钮,不再换行 */ body.bili-video-page .playlist-container--right .action-list-header, body.bili-video-page .playlist-container--right .action-list-body-top { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; height: auto !important; min-height: 0 !important; } body.bili-video-page .playlist-container--right .header-left { flex: 1 1 auto !important; display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; gap: 6px !important; } /* 4) 列表滚动区:滚动条改为"零占位"模式 实测:action-list 274 -> action-list-inner 270,被滚动条吃掉 4px, 这 4px 只扣在右侧,正是"右边距比左边距大"的根源。 滚动条本来就不显示,这里直接让它不占宽度,左右两侧才可能真正相等。 (滚动手势与滚轮均不受影响) */ body.bili-video-page .playlist-container--right .action-list-body, body.bili-video-page .playlist-container--right .action-list-body-bottom, body.bili-video-page .playlist-container--right .action-list, body.bili-video-page .playlist-container--right .action-list-inner, body.bili-video-page .playlist-container--right .action-list-content { padding-left: 0 !important; padding-right: 0 !important; margin-left: auto !important; margin-right: auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right .action-list { scrollbar-width: none !important; -ms-overflow-style: none !important; scrollbar-gutter: auto !important; overflow-y: auto !important; } body.bili-video-page .playlist-container--right .action-list::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; background: transparent !important; } body.bili-video-page .playlist-container--right .action-list::-webkit-scrollbar-track, body.bili-video-page .playlist-container--right .action-list::-webkit-scrollbar-thumb { width: 0 !important; display: none !important; background: transparent !important; } /* 5) 列表项:三层内边距(wrap / item / inner)各 10px 全部归零并居中 */ body.bili-video-page .playlist-container--right .action-list-item-wrap, body.bili-video-page .playlist-container--right .action-list-item, body.bili-video-page .playlist-container--right .singlep-list-item-inner, body.bili-video-page .playlist-container--right .multip-list-item-inner { padding-left: 0 !important; padding-right: 0 !important; margin-left: auto !important; margin-right: auto !important; } /* 5) 列表项主体:flex 布局,封面固定 106x60,文字区吃掉剩余宽度,间距 10->8 */ body.bili-video-page .playlist-container--right .action-list-item .main, body.bili-video-page .playlist-container--right .multip-list-item .main, body.bili-video-page .playlist-container--right .singlep-list-item-inner .main, body.bili-video-page .playlist-container--right .multip-list-item-inner .main { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right .action-list-item .main > .cover, body.bili-video-page .playlist-container--right .multip-list-item .main > .cover { flex: 0 0 106px !important; width: 106px !important; min-width: 106px !important; max-width: 106px !important; height: 60px !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right .action-list-item .main > .cover .cover-img, body.bili-video-page .playlist-container--right .action-list-item .main > .cover img, body.bili-video-page .playlist-container--right .multip-list-item .main > .cover .cover-img, body.bili-video-page .playlist-container--right .multip-list-item .main > .cover img { width: 100% !important; height: 100% !important; object-fit: cover !important; border-radius: 4px !important; } body.bili-video-page .playlist-container--right .action-list-item .main > .info, body.bili-video-page .playlist-container--right .multip-list-item .main > .info { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; height: auto !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; } /* 6) 标题:吃满文字区宽度(保留原生两行截断,只解决"过早换行") */ body.bili-video-page .playlist-container--right .action-list-item .info .title, body.bili-video-page .playlist-container--right .multip-list-item .info .title { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; white-space: normal !important; word-break: break-all !important; overflow-wrap: break-word !important; box-sizing: border-box !important; } /* 7) 多P / 分集列表("第X话 …… 40:33"): 「按键本身」居中(整块在容器内居中),「按键内文字」维持 B站官方排布 —— 即标题靠左、时长靠右(space-between),不再强行居中。 结构:.multip-list > .multip-list-item > (.left-part + .duration.right-part) 【重要】这里绝不能写 display: xxx !important: B 站"展开/收起选集"正是通过切换 .multip-list / .multip-list-item 的 display(none <-> block/flex)实现的。一旦用 !important 钉死 display, 收起时元素就藏不住 —— 表现为"箭头会转、列表却不动"。 所以本组只改「布局内部分配」类属性(justify-content / gap / flex 等), 它们在 display:none 时自动失效,不会干扰展开收起。 另外绝不能用 [class*="multip-list"] > * 这种写法—— "multip-list-item" 也含 "multip-list",会被一起选中, 导致 left-part / right-part 各被撑成 100% 宽并换行,文字顶出按钮。 */ /* 选集整块:按键本体居中(块级居中 + 左右 auto) */ body.bili-video-page .playlist-container--right .multip-list, .multip-list { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box !important; } /* 每一行的按键本体:居中于容器;内部文字回到官方的「左标题 / 右时长」 */ body.bili-video-page .playlist-container--right .multip-list > .multip-list-item, .multip-list > .multip-list-item { flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: auto !important; margin-right: auto !important; overflow: hidden !important; box-sizing: border-box !important; } /* 左段(第X话 标题):靠左;右段(时长):靠右 —— 官方排布 */ body.bili-video-page .playlist-container--right .multip-list-item > .left-part, body.bili-video-page .playlist-container--right .multip-list-item > .right-part, .multip-list-item > .left-part, .multip-list-item > .right-part { flex: 0 1 auto !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; height: auto !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; white-space: nowrap !important; text-overflow: ellipsis !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right .multip-list-item > .left-part, .multip-list-item > .left-part { text-align: left !important; margin-right: auto !important; } /* 时长段不参与收缩,保证 "40:33" 完整显示,并贴右 */ body.bili-video-page .playlist-container--right .multip-list-item > .right-part, .multip-list-item > .right-part { flex: 0 0 auto !important; text-align: right !important; margin-left: auto !important; } body.bili-video-page .playlist-container--right .multip-list-item .title, .multip-list-item .title { width: auto !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; white-space: nowrap !important; text-overflow: ellipsis !important; text-align: left !important; box-sizing: border-box !important; } /* 与视频页一致:隐藏弹幕框、私信、充电、广告 */ body.bili-video-page .playlist-container--right #danmukuBox, body.bili-video-page .playlist-container--right .danmaku-box, body.bili-video-page .playlist-container--right .send-msg, body.bili-video-page .playlist-container--right a.send-msg, body.bili-video-page .playlist-container--right .new-charge-btn, body.bili-video-page .playlist-container--right [class*="ad-"], body.bili-video-page .playlist-container--right [class*="ads-"], body.bili-video-page .playlist-container--right .video-card-ad-small { display: none !important; visibility: hidden !important; height: 0 !important; width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* UP 主信息:与视频页 right-container 保持一致 */ body.bili-video-page .playlist-container--right .up-info-container { display: flex !important; align-items: center !important; width: 100% !important; gap: 8px !important; } body.bili-video-page .playlist-container--right .up-info--right { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; max-width: 100% !important; display: flex !important; flex-direction: column !important; } body.bili-video-page .playlist-container--right .up-info__detail, body.bili-video-page .playlist-container--right .up-detail, body.bili-video-page .playlist-container--right .up-description { width: 100% !important; max-width: 100% !important; min-width: 0 !important; word-break: break-all !important; white-space: normal !important; overflow-wrap: break-word !important; box-sizing: border-box !important; } body.bili-video-page .playlist-container--right .up-detail-top { display: flex !important; align-items: center !important; justify-content: flex-start !important; width: 100% !important; gap: 8px !important; } body.bili-video-page .playlist-container--right .up-name { white-space: nowrap !important; text-overflow: ellipsis !important; overflow: hidden !important; flex-shrink: 1 !important; min-width: 0 !important; max-width: 100% !important; } body.bili-video-page .playlist-container--right .follow-btn .menu-popover, body.bili-video-page .playlist-container--right .follow-btn-wrapper { position: absolute !important; top: 100% !important; right: 0 !important; left: auto !important; z-index: 9999999 !important; transform: none !important; margin-top: 4px !important; background: #fff !important; border-radius: 4px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important; } /* 全屏时左栏铺满(与视频页 left-container 一致) */ body.video-fullscreen .playlist-container--left { width: 100vw !important; max-width: 100vw !important; min-width: 100vw !important; height: 100vh !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* ============================================================ ========== 番剧播放页 ========== ============================================================ */ html:has(body.bili-bangumi-page), body.bili-bangumi-page { background: #ffffff !important; width: 100% !important; max-width: 100vw !important; min-width: 0 !important; overflow-x: hidden !important; padding-top: 0 !important; margin: 0 !important; position: relative !important; } body.bili-bangumi-page #__next, body.bili-bangumi-page .home-container { width: 100% !important; max-width: 100vw !important; min-width: 0 !important; overflow-x: hidden !important; box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; display: block !important; position: relative !important; } body.bili-bangumi-page .main-container, body.bili-bangumi-page .plp-layout, body.bili-bangumi-page .plp-left-wrap, body.bili-bangumi-page .plp-l, body.bili-bangumi-page .player-left-components { width: 100% !important; max-width: 100% !important; min-width: 0 !important; overflow-x: hidden !important; box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; display: contents !important; position: static !important; left: auto !important; right: auto !important; float: none !important; } /* ★★★ 番剧页播放器顶部间距:36px;宽屏下收窄并居中 ★★★ */ body.bili-bangumi-page .plp-player { width: 100% !important; max-width: 100% !important; padding: 0 8px !important; margin: 36px auto !important; box-sizing: border-box !important; height: auto !important; min-height: 0 !important; } /* 番剧页正文容器(播放器 + 信息区)宽屏下居中显示 */ body.bili-bangumi-page .plp-layout, body.bili-bangumi-page .plp-left-wrap, body.bili-bangumi-page .plp-l { max-width: 820px !important; margin-left: auto !important; margin-right: auto !important; } body.bili-bangumi-page .plp-left-wrap { padding: 0 8px !important; } body.bili-bangumi-page [class*="mediainfo_mediaInfoWrap"] { margin-top: 0 !important; } body.bili-bangumi-page #bilibili-player-wrap { position: relative !important; width: 100% !important; max-width: 100% !important; height: calc((100vw - 22px) * 9 / 16 + 6px) !important; max-height: calc((100vw - 22px) * 9 / 16 + 6px) !important; padding: 0 !important; border: 3px solid #00aeec !important; border-radius: 12px !important; box-shadow: 0 4px 16px rgba(0, 174, 236, 0.25) !important; overflow: hidden !important; box-sizing: border-box !important; margin: 0 auto !important; } body.bili-bangumi-page #bilibili-player-wrap .video_playerInner__ox52b, body.bili-bangumi-page #bilibili-player-wrap #bilibili-player, body.bili-bangumi-page #bilibili-player-wrap .big-nano-player, body.bili-bangumi-page #bilibili-player-wrap .bpx-docker, body.bili-bangumi-page #bilibili-player-wrap .bpx-player-container, body.bili-bangumi-page #bilibili-player-wrap .bpx-player-primary-area, body.bili-bangumi-page #bilibili-player-wrap .bpx-player-video-area, body.bili-bangumi-page #bilibili-player-wrap .bpx-player-video-wrap { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; transform: none !important; border-radius: 0 !important; } body.bili-bangumi-page #bilibili-player-wrap video { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background-color: #000 !important; } body.bili-bangumi-page .bpx-player-sending-area { display: none !important; } /* ★ 修复简介完全展开后叠加到评论区的问题 ★ 根因:plp-l.sticky 原始为 position: sticky, 简介展开后高度溢出,sticky 定位导致内容叠在评论区上方。 同时 plp-left-wrap / plp-l 需高度自适应, player-left-components 为 display: contents 已不占位。 */ body.bili-bangumi-page .plp-left-wrap { padding: 0 8px !important; display: block !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; position: static !important; } body.bili-bangumi-page .plp-l, body.bili-bangumi-page .plp-l.sticky { padding: 0 !important; display: block !important; position: static !important; top: auto !important; bottom: auto !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; } body.bili-bangumi-page .player-left-components { padding: 0 !important; display: contents !important; } body.bili-bangumi-page .toolbar, body.bili-bangumi-page #like_info, body.bili-bangumi-page #ogv_weslie_tool_coin_info, body.bili-bangumi-page #ogv_weslie_tool_favorite_info, body.bili-bangumi-page #share-container-id, body.bili-bangumi-page #watch_together_tab, body.bili-bangumi-page #tool-bar-more, body.bili-bangumi-page .toolbar-right { display: none !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-bangumi-page .mediainfo_mediaToolbar__8Q7bn { display: none !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-bangumi-page .mediainfo_bottomBar__uBfeO { display: none !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-bangumi-page [class*="navTools_floatNavExp"], body.bili-bangumi-page [class*="navTools_navMenu"] { display: none !important; visibility: hidden !important; height: 0 !important; width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-bangumi-page [class*="mediainfo_mediaInfoWrap"] { display: flex !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; flex-wrap: nowrap !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 10px 12px !important; margin: 0 !important; box-sizing: border-box !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; } /* 确保 mediaInfoWrap 的 flex 子元素正常排列,不被压缩 */ body.bili-bangumi-page [class*="mediainfo_mediaInfoWrap"] > * { flex: 0 0 auto !important; min-height: auto !important; max-height: none !important; } body.bili-bangumi-page [class*="mediainfo_mediaInfoWrap"] [class*="mediainfo_display_area"] { flex: 1 1 auto !important; } /* ★★★ 番剧页:隐藏封面图区域(图中红框部分) ★★★ 仅作用于 mediainfo_mediaCover 内部,避免误伤侧边栏推荐/选集封面 */ body.bili-bangumi-page [class*="mediainfo_mediaCover"], body.bili-bangumi-page a[class*="mediainfo_mediaCover"], body.bili-bangumi-page [class*="mediainfo_mediaCover"] picture, body.bili-bangumi-page [class*="mediainfo_mediaCover"] img, body.bili-bangumi-page [class*="mediainfo_mediaCover"] svg { display: none !important; visibility: hidden !important; width: 0 !important; max-width: 0 !important; min-width: 0 !important; height: 0 !important; max-height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; border: 0 !important; opacity: 0 !important; overflow: hidden !important; position: absolute !important; left: -9999px !important; top: -9999px !important; pointer-events: none !important; flex: 0 0 0 !important; } body.bili-bangumi-page [class*="mediainfo_mediaRight"] { width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; text-align: center !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; float: none !important; position: static !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; } body.bili-bangumi-page [class*="mediainfo_mediaTitle"] { font-size: 16px !important; font-weight: bold !important; margin: 0 0 6px 0 !important; padding: 0 !important; text-align: center !important; width: 100% !important; display: block !important; height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; word-break: break-word !important; } /* ★ 番剧简介:始终完全展开,隐藏"展开/收起"按钮 ★ B站原生机制:收起态 display_area 用 -webkit-line-clamp 限高, ellipsis 是末行渐变遮罩+"展开"按钮;展开态切换为纯 p 标签。 实测无论多少字,展开后也只多显示约一行,按钮意义不明。 方案:强制解除所有高度/行数限制,隐藏 ellipsis/placeholder/按钮, 让简介始终完整显示(纯 CSS,无 JS)。 两套 DOM 结构: 收起态 a[class*="mediainfo_media_desc_section"] -> div.display_area > div.placeholder(hidden) + p.content + div.ellipsis("展开") -> p.content_placeholder(hidden) 展开态 a[class*="mediainfo_media_desc"] -> p > span("简介:") + i("收起") */ body.bili-bangumi-page [class*="mediainfo_media_desc"] p, body.bili-bangumi-page [class*="mediainfo_media_desc"] p *, body.bili-bangumi-page [class*="mediainfo_display_area"], body.bili-bangumi-page [class*="mediainfo_display_area"] *, body.bili-bangumi-page [class*="mediainfo_content"], body.bili-bangumi-page [class*="mediainfo_content"] * { color: #61666d !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.6 !important; letter-spacing: normal !important; font-style: normal !important; text-transform: none !important; text-align: center !important; } body.bili-bangumi-page [class*="mediainfo_media_desc"] { width: 100% !important; max-width: 100% !important; display: block !important; padding: 6px 0 0 0 !important; margin: 0 !important; box-sizing: border-box !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; white-space: normal !important; word-break: break-word !important; } body.bili-bangumi-page [class*="mediainfo_media_desc"] p { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; white-space: pre-wrap !important; word-break: break-word !important; } /* ★ 关键:解除 display_area 的高度与行数限制,让收起态也能完整展开 ★ 同时强制 position: static,防止 B站原始 absolute 定位导致 简介脱离文档流、叠加到评论区上方 */ body.bili-bangumi-page [class*="mediainfo_display_area"] { position: static !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: block !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; white-space: normal !important; word-break: break-word !important; float: none !important; z-index: auto !important; } body.bili-bangumi-page [class*="mediainfo_content"] { width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: block !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; height: auto !important; min-height: auto !important; max-height: none !important; overflow: visible !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; white-space: pre-wrap !important; word-break: break-word !important; } /* ★ 隐藏"展开/收起"按钮、渐变遮罩、占位测量元素 ★ */ body.bili-bangumi-page [class*="mediainfo_ellipsis"], body.bili-bangumi-page [class*="mediainfo_placeholder"], body.bili-bangumi-page [class*="mediainfo_expand"], body.bili-bangumi-page [class*="mediainfo_expandBtn"], body.bili-bangumi-page [class*="mediainfo_moreBtn"], body.bili-bangumi-page [class*="mediainfo_toggleBtn"], body.bili-bangumi-page [class*="mediainfo_content_placeholder"] { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* ★ 隐藏展开态 p 里的 收起 按钮文字 ★ */ body.bili-bangumi-page [class*="mediainfo_media_desc"] p > i, body.bili-bangumi-page [class*="mediainfo_content"] i { display: none !important; visibility: hidden !important; } body.bili-bangumi-page [class*="mediainfo_mediaRating"] { display: inline-flex !important; justify-content: center !important; align-items: center !important; margin: 0 auto !important; } body.bili-bangumi-page [class*="upinfo_upInfoCard"] { display: inline-flex !important; justify-content: center !important; align-items: center !important; margin: 0 auto !important; } body.bili-bangumi-page #comment-module { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 12px 0 0 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; display: block !important; position: static !important; clear: both !important; } body.bili-bangumi-page #comment-module * { max-width: 100% !important; box-sizing: border-box !important; } body.bili-bangumi-page #comment-body { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 8px !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; display: block !important; } body.bili-bangumi-page #comment-body bili-comments { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; position: static !important; } /* ============================================================ ========== 番剧页播放器控制栏 ========== ============================================================ */ body.bili-bangumi-page .bpx-player-ctrl-pip, body.bili-bangumi-page .bpx-player-ctrl-wide, body.bili-bangumi-page .bpx-player-ctrl-time, body.bili-bangumi-page .bpx-player-ctrl-eplist { display: none !important; } @media screen and (orientation: landscape) { body.bili-bangumi-page .bpx-player-ctrl-time { display: block !important; } } @media screen and (width >= 750px) { body.bili-bangumi-page .bpx-player-container[data-screen=full] .bpx-player-ctrl-quality-result { height: unset !important; font-size: 16px !important; } body.bili-bangumi-page .bpx-player-container[data-screen=full] .bpx-player-control-wrap { height: 43px !important; } body.bili-bangumi-page .bpx-player-container[data-screen=full] .bpx-player-control-top { bottom: 43px !important; } } body.bili-bangumi-page div.bpx-player-control-bottom { height: 29px !important; margin-top: 7px !important; padding: 0 7px !important; } body.bili-bangumi-page div.bpx-player-control-top { transition: none; bottom: 36px; } body.bili-bangumi-page .bpx-player-pbp .bpx-player-pbp-pin-tip { display: none !important; } body.bili-bangumi-page .bpx-player-control-bottom-left, body.bili-bangumi-page .bpx-player-control-bottom-right { flex: unset !important; } body.bili-bangumi-page .bpx-player-container .bpx-player-control-bottom-left, body.bili-bangumi-page .bpx-player-container .bpx-player-control-bottom-right { min-width: 0 !important; } body.bili-bangumi-page .bpx-player-ctrl-quality { min-width: 0; flex: auto !important; margin-right: 0 !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-result, body.bili-bangumi-page .bpx-player-ctrl-playbackrate { font-size: 12px !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-result { height: 22px; overflow: hidden; } body.bili-bangumi-page .bpx-player-ctrl-playbackrate { text-wrap: nowrap; } body.bili-bangumi-page .bpx-player-progress-wrap { height: 7px !important; padding-bottom: 3px !important; } body.bili-bangumi-page .bpx-player-control-mask { background: linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%) !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-menu-wrap { bottom: 22px !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-menu-item { max-width: 95px; max-height: 36px; height: 7.7vw !important; padding: 0 8px 0 12px !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-badge-bigvip { color: #fff; background-color: #f25d8e; width: 16px; overflow: hidden; right: 8px !important; } body.bili-bangumi-page .bpx-player-ctrl-quality-badge-bigvip:before { color: #fff; content: "V"; background-color: #f25d8e; padding: 0 4px; position: absolute; left: 0; } body.bili-bangumi-page .bpx-player-ctrl-playbackrate-menu { bottom: 22px !important; } body.bili-bangumi-page .bpx-player-ctrl-playbackrate-menu-item { justify-content: center; align-items: center; max-height: 36px; display: flex; height: 7.7vw !important; } body.bili-bangumi-page div.bpx-player-ctrl-subtitle-box { bottom: 0; right: 0; transform: scale(.8); } body.bili-bangumi-page .bpx-player-ctrl-setting-box { bottom: 0 !important; right: 0 !important; } body.bili-bangumi-page .bpx-player-ctrl-setting-menu-right { padding: 5px !important; } body.bili-bangumi-page .bpx-player-ctrl-setting-menu-right > div { justify-content: center; align-items: center; max-height: 40px; display: flex; height: 10vw !important; } body.bili-bangumi-page .bpx-player-ctrl-setting-menu-right .bui-radio { width: 77%; margin: 0 0 8px 7px; } body.bili-bangumi-page .bpx-player-ctrl-setting-others-content { margin-left: 7px; width: 77% !important; } body.bili-bangumi-page .bpx-player-ctrl-setting-highenergy .bui-checkbox-name { white-space: nowrap; width: 48px; overflow: hidden; } body.bili-bangumi-page .bpx-player-dm-setting-wrap { top: 0; left: 50%; transform: translate(-50%); bottom: unset !important; position: fixed !important; } body.bili-bangumi-page .bpx-player-control-bottom-center .bpx-player-sending-bar { height: 24px !important; padding-right: 6px !important; } body.bili-bangumi-page .bpx-player-ctrl-viewpoint { flex-shrink: 1 !important; width: 45px !important; min-width: 0 !important; margin: 0 !important; } body.bili-bangumi-page .bpx-player-ctrl-viewpoint-text { flex: none; font-size: 12px; width: 24px !important; text-overflow: unset !important; } body.bili-bangumi-page .bpx-player-control-wrap:not(.new) { display: none; } body.bili-bangumi-page .bpx-player-control-entity, body.bili-bangumi-page .bpx-player-control-mask { display: block !important; } body.bili-bangumi-page .bpx-player-container[data-ctrl-hidden=true] .bpx-player-control-bottom { display: none; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-wrap .bpx-player-control-mask { opacity: 0; transition: opacity .2s ease-in; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-wrap .bpx-player-control-mask { opacity: 1; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-control-bottom { opacity: 1; display: flex; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-control-bottom { display: none; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-control-top, body.bili-bangumi-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-shadow-progress-area { opacity: 1; visibility: visible; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=false] .bpx-player-control-entity .bpx-player-control-top, body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-shadow-progress-area { opacity: 0; visibility: hidden; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-pbp { opacity: 1; width: 100%; bottom: calc(100% + 6px); left: 0; } body.bili-bangumi-page div.bpx-player-control-entity .bpx-player-pbp { opacity: 0; width: calc(100% + 24px); bottom: 1px; left: -12px; } body.bili-bangumi-page div.bpx-player-control-entity .bpx-player-pbp.pin { opacity: 1; } body.bili-bangumi-page .bpx-player-pbp-pin { display: none; opacity: 1 !important; } body.bili-bangumi-page .bpx-player-container[ctrl-shown=true] .bpx-player-control-entity .bpx-player-pbp-pin { display: block; } body.bili-bangumi-page .bpx-player-video-perch { max-height: 0; } body.bili-bangumi-page .bpx-player-top-wrap, body.bili-bangumi-page .bpx-player-state-wrap { display: none !important; } body.bili-bangumi-page .bpx-player-container, body.bili-bangumi-page #bilibili-player-placeholder { box-shadow: none !important; } /* ===== 动态页 ===== */ body.bili-dynamic-page { background: #f4f5f7 !important; } body.bili-dynamic-page .bili-header, body.bili-dynamic-page .international-header, body.bili-dynamic-page .mini-header, body.bili-dynamic-page .bili-header__bar, body.bili-dynamic-page .bili-header__menu, body.bili-dynamic-page #bili-header-container { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-dynamic-page .bgc, body.bili-dynamic-page .bg { display: none !important; } body.bili-dynamic-page .bili-dyn-home--member > .left, body.bili-dynamic-page .bili-dyn-home--member > aside.left, body.bili-dynamic-page .bili-dyn-home--member > .right, body.bili-dynamic-page .bili-dyn-home--member > aside.right, body.bili-dynamic-page .bili-dyn-sidebar, body.bili-dynamic-page .bili-dyn-sidebar__btn { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; overflow: hidden !important; } body.bili-dynamic-page #app, body.bili-dynamic-page #app > div, body.bili-dynamic-page .bili-dyn-home--member, body.bili-dynamic-page .bili-dyn-home--member > main, body.bili-dynamic-page .bili-dyn-list, body.bili-dynamic-page .bili-dyn-list__item, body.bili-dynamic-page .bili-dyn-item { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; } body.bili-dynamic-page .bili-dyn-list__items { padding: 8px 0 8px 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-list__item { padding: 0 8px 8px 8px !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-item { position: relative !important; background: #ffffff !important; border: 1px solid #e3e5e7 !important; border-radius: 8px !important; padding: 12px 8px 0 8px !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: block !important; float: none !important; } body.bili-dynamic-page .bili-dyn-item * { max-width: 100% !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-item img, body.bili-dynamic-page .bili-dyn-item video, body.bili-dynamic-page .bili-dyn-item picture { max-width: 100% !important; height: auto !important; } body.bili-dynamic-page .bili-dyn-item__main { position: relative !important; padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; float: none !important; } body.bili-dynamic-page .bili-dyn-item__avatar { position: absolute !important; left: 0 !important; top: 0 !important; width: 56px !important; max-width: 56px !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-item__avatar .bili-dyn-avatar, body.bili-dynamic-page .bili-dyn-item__avatar .b-avatar, body.bili-dynamic-page .bili-dyn-item__avatar img { width: 48px !important; height: 48px !important; max-width: 100% !important; border-radius: 50% !important; } body.bili-dynamic-page .bili-dyn-item__header { margin-left: 0 !important; margin-right: 0 !important; padding-left: 64px !important; padding-right: 8px !important; width: auto !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-item__more, body.bili-dynamic-page .bili-dyn-more, body.bili-dynamic-page .bili-dyn-more__btn, body.bili-dynamic-page .bili-dyn-more__cascader { display: none !important; visibility: hidden !important; } body.bili-dynamic-page .bili-dyn-content, body.bili-dynamic-page .bili-dyn-content__orig, body.bili-dynamic-page .bili-dyn-content__orig__major { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-card-video { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-card-video__header { width: 100% !important; max-width: 100% !important; height: auto !important; flex: 0 0 auto !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-card-video__cover { width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 16 / 9 !important; box-sizing: border-box !important; } body.bili-dynamic-page .bili-dyn-card-video__cover .b-img, body.bili-dynamic-page .bili-dyn-card-video__cover .b-img__inner, body.bili-dynamic-page .bili-dyn-card-video__cover img, body.bili-dynamic-page .bili-dyn-card-video__cover picture { width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 16 / 9 !important; object-fit: cover !important; display: block !important; } body.bili-dynamic-page .bili-dyn-card-video__body { width: 100% !important; max-width: 100% !important; height: auto !important; flex: 1 1 auto !important; padding: 8px 0 0 0 !important; box-sizing: border-box !important; } /* 投稿了视频:隐藏视频封面下方「框住标题/简介文字」的那条左侧半开口边框 */ body.bili-dynamic-page .bili-dyn-card-video__body, body.bili-dynamic-page .bili-dyn-card-video__title, body.bili-dynamic-page .bili-dyn-card-video__desc { border: none !important; border-top: none !important; border-right: none !important; border-bottom: none !important; border-left: none !important; border-width: 0 !important; border-style: none !important; box-shadow: none !important; outline: none !important; } /* 该边框也可能是 ::before / ::after 画的竖条,一并清掉 */ body.bili-dynamic-page .bili-dyn-card-video__body::before, body.bili-dynamic-page .bili-dyn-card-video__body::after, body.bili-dynamic-page .bili-dyn-card-video__desc::before, body.bili-dynamic-page .bili-dyn-card-video__desc::after { content: none !important; display: none !important; border: none !important; background: none !important; box-shadow: none !important; } body.bili-dynamic-page .bili-dyn-card-video__title, body.bili-dynamic-page .bili-dyn-card-video__desc, body.bili-dynamic-page .bili-dyn-card-video__title .bili-ellipsis, body.bili-dynamic-page .bili-dyn-card-video__desc .bili-ellipsis { text-align: center !important; } body.bili-dynamic-page .bili-dyn-card-video__stat, body.bili-dynamic-page .bili-dyn-card-video__stat__item, body.bili-dynamic-page .bili-dyn-card-video__stat__item.danmaku { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; } body.bili-dynamic-page .bili-dyn-item, body.bili-dynamic-page .bili-dyn-item * { text-align: center !important; } /* 正文容器:只做内边距约束,绝不能隐藏(正文 .bili-dyn-content 就在它里面) */ body.bili-dynamic-page .bili-dyn-item__body { margin-left: 0 !important; margin-right: 0 !important; padding-left: 8px !important; padding-right: 8px !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; } /* 去掉卡片内的「转发 / 评论 / 点赞」数量行(整行隐藏) */ body.bili-dynamic-page .bili-dyn-item__footer, body.bili-dynamic-page .bili-dyn-item__action, body.bili-dynamic-page .bili-dyn-action, body.bili-dynamic-page .bili-dyn-action.forward, body.bili-dynamic-page .bili-dyn-action.comment, body.bili-dynamic-page .bili-dyn-action.like { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } /* 隐藏该行后,卡片底部补回一点留白,避免内容紧贴卡片下边缘 */ body.bili-dynamic-page .bili-dyn-item { padding-bottom: 12px !important; } body.bili-dynamic-page .bili-dyn-content__orig__major img, body.bili-dynamic-page .bili-dyn-content__orig__major picture, body.bili-dynamic-page .bili-dyn-content__orig__major .b-img { margin-left: auto !important; margin-right: auto !important; display: block !important; } body.bili-dynamic-page .bili-dyn-content__orig__major [class*="grid"], body.bili-dynamic-page .bili-dyn-content__orig__major [class*="pics"], body.bili-dynamic-page .bili-dyn-content__orig__major [class*="gallery"], body.bili-dynamic-page .bili-dyn-content__orig__major [class*="goods"], body.bili-dynamic-page .bili-dyn-content__orig__major [class*="commodity"], body.bili-dynamic-page .bili-dyn-content__orig__major [class*="card"] { margin-left: auto !important; margin-right: auto !important; justify-content: center !important; } body.bili-dynamic-page .bili-dyn-item__action { flex: 1 1 0 !important; width: auto !important; max-width: none !important; min-width: 0 !important; box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; } body.bili-dynamic-page .bili-dyn-action { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; gap: 4px !important; } body.bili-dynamic-page .bili-dyn-list-tabs, body.bili-dynamic-page .bili-dyn-list-tabs__list, body.bili-dynamic-page .bili-dyn-list-tabs__item { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-dynamic-page .bili-dyn-home--member > main > section:nth-of-type(1), body.bili-dynamic-page .bili-dyn-home--member > main > section:nth-of-type(2) { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-dynamic-page .bili-dyn-search-trendings, body.bili-dynamic-page .trending-list, body.bili-dynamic-page .sticky { display: none !important; } /* ============================================================ 动态详情页(t.bilibili.com/xxx 单条动态展开):评论区与视频页一致 结构:#app > .content > .card > .bili-tabs.dyn-tabs > .bili-tabs__content > .bili-tab-pane > .comment-wrap > .bili-comment-container > bili-comments(shadow DOM) 实测:bili-comments 仅 312 宽(360 屏),左右各 24px;视频页为 8px。 这里按视频页 #commentapp 的同一套外框规则拉齐, shadow 内部(输入框/点赞/回复按钮等)由 installShadowRootPatch 统一处理。 ============================================================ */ body.bili-dynamic-page .bili-tabs.dyn-tabs, body.bili-dynamic-page .bili-tabs__content, body.bili-dynamic-page .bili-tab-pane, body.bili-dynamic-page .comment-wrap, body.bili-dynamic-page .bili-comment-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; padding-left: 8px !important; padding-right: 8px !important; margin-left: 0 !important; margin-right: 0 !important; overflow: hidden !important; float: none !important; position: static !important; } body.bili-dynamic-page bili-comments, body.bili-dynamic-page .bili-comment-container bili-comments { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; display: block !important; } /* 与视频页一致:外部的输入框/编辑器容器一并隐藏(shadow 内由 patch 处理) */ body.bili-dynamic-page .bili-comment-box, body.bili-dynamic-page .bili-comment-input-wrap, body.bili-dynamic-page .comment-send-box, body.bili-dynamic-page .bili-comment-editor, body.bili-dynamic-page .bili-comment-editor-wrap { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* 「评论 N」下面的那条分割线:恢复显示(v131.10) 不再清空 tabs 头部/导航的下边框与伪元素, 并显式补一条 1px 灰线,原生无边框时也能保证有线。 */ body.bili-dynamic-page .bili-tabs.dyn-tabs > .bili-tabs__header, body.bili-dynamic-page .bili-tabs.dyn-tabs .bili-tabs__header { border-top: 0 !important; border-left: 0 !important; border-right: 0 !important; border-bottom: 1px solid #e3e5e7 !important; box-shadow: none !important; background-image: none !important; } /* 若出现两条线(原生伪元素 + 上面补的边框), 把下面这段的 border-bottom 改回 none 即可 */ body.bili-dynamic-page .bili-tabs__nav, body.bili-dynamic-page .bili-tabs__nav__items, body.bili-dynamic-page .bili-tabs__nav__item { box-shadow: none !important; background-image: none !important; } /* 只隐藏「赞与转发」这一个 tab 项,保留「评论 N」—— 视频页评论区本来就有「评论 N」(shadow 内 #title),两边才一致。 探针:nav__items 中 nth-of-type(2) 为「评论 N」(.is-active), nth-of-type(3) 为「赞与转发」。 */ body.bili-dynamic-page .bili-tabs__nav__item:nth-of-type(3), body.bili-dynamic-page .bili-tabs__nav__items > .bili-tabs__nav__item:nth-of-type(3) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* 右侧悬浮工具栏(417 / 0 / 7 / 顶部):视频页没有,隐藏 */ body.bili-dynamic-page .sidebar-wrap, body.bili-dynamic-page .side-toolbar, body.bili-dynamic-page .side-toolbar__box, body.bili-dynamic-page .side-toolbar__bottom { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* ============================================================ opus 详情页(www.bilibili.com/opus/xxx)评论区:同样对齐视频页 实测链路:opus-detail 344 -> .bili-tabs.opus-tabs 328 -> .bili-tabs__content 312 -> .comment-wrap 296 -> .bili-comment-container 280 -> bili-comments 264 每层各吃 16px,层层嵌套后只剩 264,比视频页的 328 窄了 64。 目标:344 - 8(容器) - 8(容器) = 328,与视频页 bili-comments 完全一致。 做法:中间各层水平内边距归零,只由 .bili-comment-container 提供 8px, bili-comments 满宽且自身不留白。 (下面选择器比既有 opus 规则更具体,确保覆盖生效) ============================================================ */ body.bili-opus-page .bili-tabs.opus-tabs, body.bili-opus-page .bili-tabs.opus-tabs > .bili-tabs__content, body.bili-opus-page .bili-tabs.opus-tabs > .bili-tabs__content > .bili-tab-pane, body.bili-opus-page .bili-tabs.opus-tabs .comment-wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; position: static !important; } body.bili-opus-page .bili-tabs.opus-tabs .comment-wrap > .bili-comment-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; } body.bili-opus-page .bili-comment-container bili-comments, body.bili-opus-page .comment-wrap bili-comments { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box !important; } /* 与视频页一致:外部输入框/编辑器容器隐藏(shadow 内由 patch 处理) */ body.bili-opus-page .bili-comment-box, body.bili-opus-page .bili-comment-input-wrap, body.bili-opus-page .comment-send-box, body.bili-opus-page .bili-comment-editor, body.bili-opus-page .bili-comment-editor-wrap { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* 只隐藏「赞与转发」tab,保留「评论 177」 */ body.bili-opus-page .bili-tabs__nav__item:nth-of-type(3), body.bili-opus-page .bili-tabs__nav__items > .bili-tabs__nav__item:nth-of-type(3) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* 右侧悬浮工具栏(417 / 2 / 0 / 8 / 177 / 顶部) */ body.bili-opus-page .sidebar-wrap, body.bili-opus-page .side-toolbar, body.bili-opus-page .side-toolbar__box, body.bili-opus-page .side-toolbar__bottom { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } /* ===== opus 详情页 ===== */ body.bili-opus-page { background: #f4f5f7 !important; overflow-x: hidden !important; padding-top: 8px !important; } body.bili-opus-page .opus-module-content, body.bili-opus-page .opus-module-content p, body.bili-opus-page .opus-module-content span, body.bili-opus-page .opus-module-title { text-align: center !important; } body.bili-opus-page .opus-para-pic, body.bili-opus-page .bili-album, body.bili-opus-page .bili-album__preview.grid2, body.bili-opus-page .opus-para-link-card, body.bili-opus-page .bili-dyn-card-goods, body.bili-opus-page .bili-dyn-card-goods__wrap, body.bili-opus-page .bili-dyn-card-goods__one { margin-left: auto !important; margin-right: auto !important; text-align: center !important; } body.bili-opus-page #bili-header-container, body.bili-opus-page .bili-header, body.bili-opus-page .bili-header--mini, body.bili-opus-page .bili-header--fixed, body.bili-opus-page .bili-header__bar, body.bili-opus-page .bili-header__menu, body.bili-opus-page .international-header, body.bili-opus-page .mini-header { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-opus-page .bgc, body.bili-opus-page .bg { display: none !important; } body.bili-opus-page .right-sidebar-wrap, body.bili-opus-page .side-toolbar, body.bili-opus-page .go-top, body.bili-opus-page [class*="back-top"], body.bili-opus-page [class*="to-top"] { display: none !important; visibility: hidden !important; } body.bili-opus-page #app, body.bili-opus-page #opus-detail-app, body.bili-opus-page .opus-detail, body.bili-opus-page .bili-opus-view, body.bili-opus-page .opus-module-top, body.bili-opus-page .opus-module-title, body.bili-opus-page .opus-module-author, body.bili-opus-page .opus-module-content, body.bili-opus-page .opus-module-copyright, body.bili-opus-page .opus-module-bottom, body.bili-opus-page .bili-tabs.opus-tabs, body.bili-opus-page .bili-tabs__header, body.bili-opus-page .bili-tabs__content, body.bili-opus-page .comment-wrap, body.bili-opus-page .bili-comment-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; position: static !important; left: auto !important; right: auto !important; } body.bili-opus-page img, body.bili-opus-page video, body.bili-opus-page picture, body.bili-opus-page .b-img, body.bili-opus-page .b-img__inner { max-width: 100% !important; height: auto !important; display: block !important; } body.bili-opus-page .opus-module-top__album__cover, body.bili-opus-page .opus-module-top__display, body.bili-opus-page .opus-module-top__album { width: 100% !important; max-width: 100% !important; height: auto !important; box-sizing: border-box !important; } /* ===== opus 详情页:隐藏三处模块 ===== 实测:.opus-module-top [312x187](标题上方的封面图) .opus-module-copyright [312x54](cv53172768) .opus-module-bottom [312x96](分享至 / 投诉或建议) 注意:上面已有的宽度规则里包含了这三个选择器,但只设了宽高/内边距, 这里单独用 display:none 隐藏;选择器更具体,优先级覆盖无冲突。 */ body.bili-opus-page .bili-opus-view > .opus-module-top, body.bili-opus-page .opus-detail .opus-module-top, body.bili-opus-page .opus-module-top { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } body.bili-opus-page .bili-opus-view > .opus-module-copyright, body.bili-opus-page .opus-detail .opus-module-copyright, body.bili-opus-page .opus-module-copyright { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } body.bili-opus-page .bili-opus-view > .opus-module-bottom, body.bili-opus-page .opus-detail .opus-module-bottom, body.bili-opus-page .opus-module-bottom, body.bili-opus-page .opus-module-bottom__share, body.bili-opus-page .opus-module-bottom__share__list { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } body.bili-opus-page .opus-para-pic, body.bili-opus-page .opus-pic-view, body.bili-opus-page .bili-dyn-pic, body.bili-opus-page .bili-dyn-pic__img { width: 100% !important; max-width: 100% !important; height: auto !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box !important; } body.bili-opus-page * { max-width: 100% !important; box-sizing: border-box !important; } /* ============================================================ ========== UP 主空间页 ========== ============================================================ */ html:has(body.bili-space-page), body.bili-space-page { width: 100% !important; max-width: 100% !important; min-width: 0 !important; overflow-x: hidden !important; margin: 0 !important; padding: 0 !important; background: #f1f2f3 !important; } body.bili-space-page { padding-top: 52px !important; } body.bili-space-page .bili-header, body.bili-space-page .international-header, body.bili-space-page .mini-header, body.bili-space-page #biliMainHeader, body.bili-space-page #bili-header-container, body.bili-space-page .bili-header--mini, body.bili-space-page .bili-header--fixed, body.bili-space-page .bili-header__bar, body.bili-space-page .bili-header__menu, body.bili-space-page .footer, body.bili-space-page .bili-footer, body.bili-space-page .international-footer, body.bili-space-page .mini-footer, body.bili-space-page .space-footer, body.bili-space-page .go-top, body.bili-space-page .bili-go-top, body.bili-space-page [class*="back-top"], body.bili-space-page [class*="goto-top"], body.bili-space-page [class*="to-top"], body.bili-space-page .fixed-sidebar, body.bili-space-page .bili-fixed-sidebar, body.bili-space-page .side-toolbar, body.bili-space-page .right-sidebar-wrap, body.bili-space-page .space-float { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; } body.bili-space-page .toutu.header-toutu { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; } body.bili-space-page .header.space-header { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; } body.bili-space-page .upinfo-detail__top .level, body.bili-space-page .upinfo-detail__top a.level, body.bili-space-page .upinfo-detail__top .vip, body.bili-space-page .upinfo-detail__top .img-label, body.bili-space-page .upinfo-detail__bottom, body.bili-space-page .upinfo-sign, body.bili-space-page .upinfo-sign__text, body.bili-space-page .interactions > a.message-btn, body.bili-space-page .interactions > .more-actions, body.bili-space-page .interactions > .menu-popover.message, body.bili-space-page .interactions > .v-popover-wrap.message-entry { display: none !important; visibility: hidden !important; } body.bili-space-page .nav-search.nav-bar-search, body.bili-space-page label.nav-search, body.bili-space-page input.nav-search-input, body.bili-space-page .nav-bar__main-right, body.bili-space-page .nav-statistics { display: none !important; visibility: hidden !important; } /* v131.26 导航条高度 64 → 52,与顶部自建搜索栏 #my-bili-searchbar 等高。 实测:#my-bili-searchbar 360x52;.nav-bar.space-navbar 360x64 (内部 .nav-bar__main / .nav-tab / a.nav-tab__item 都是 64,被 flex 拉伸)。 只压外层 + 内层容器的 height,icon(20x21) 与文字本身没变, 所以视觉上只是上下留白收紧 12px(各 6px),图标文字不受影响。 */ body.bili-space-page .nav-bar.space-navbar { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 52px !important; max-height: 52px !important; overflow: hidden !important; box-sizing: border-box !important; margin-left: 0 !important; margin-right: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; padding: 0 8px !important; } /* ------------------------------------------------------------ v131.25 UP主空间页→搜索页:隐藏「主页 动态 投稿 合集和系列」这一行 结构:#app > div.nav-bar.space-navbar[360x64](main 的前置兄弟节点) #app > main.space-main.route_search CSS 没有"选前面的兄弟"的选择器,所以用 :has() 从父级反查: #app:has(> main.route_search) > .nav-bar.space-navbar nav-bar 原生是 sticky,这里只写 display:none(不动 position), 收掉后它不再占位,下方内容自然顶上来,不留 64px 空隙。 ------------------------------------------------------------ */ body.bili-space-page #app:has(> main.space-main.route_search) > .nav-bar.space-navbar, body.bili-space-page #app:has(> main.space-main.route_search) > .header.space-header ~ .nav-bar.space-navbar, body.bili-space-page:has(main.space-main.route_search) .nav-bar.space-navbar { display: none !important; visibility: hidden !important; width: 0 !important; max-width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } body.bili-space-page .nav-bar__main { display: flex !important; align-items: center !important; justify-content: center !important; flex-wrap: nowrap !important; gap: 0 !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 52px !important; max-height: 52px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; } /* .nav-tab / .nav-bar__main-left / 各 tab 项同压到 52(v131.26) */ body.bili-space-page .nav-bar__main-left, body.bili-space-page .nav-tab { height: 52px !important; max-height: 52px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; } /* v131.27 按键组占满一整行,且「按键间距 = 左右距屏幕边缘」 实测(09-04-40 探针):.nav-bar__main[344] > .nav-bar__main-left[274] > .nav-tab[274] ← 只到 274,右侧空 70 原因是 main-left 为 flex:0 1 auto / width:auto、nav-tab 也是 width:auto, 两者都只按内容宽度收缩,于是整组按键缩在中间。 改法:main-left 与 nav-tab 全部撑满 100%,tab 项改 flex:1 1 auto 均分余量。 算下来:内容区 344(nav-bar 左右各 8)− gap 8×3 = 24 − 按键自然宽 (52+52+52+94=250) = 70,4 个按键各增 17.5 → 69.5/69.5/69.5/111.5, 合计 320 + 24 = 344 正好满行;左右各留 8、按键间距 8,三者相等。 */ body.bili-space-page .nav-tab > a.nav-tab__item { height: 52px !important; max-height: 52px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; max-width: none !important; } body.bili-space-page .nav-bar__main-left { display: flex !important; align-items: center !important; justify-content: center !important; flex: 1 1 auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; overflow: visible !important; } body.bili-space-page .nav-tab { display: flex !important; align-items: center !important; justify-content: flex-start !important; gap: 8px !important; white-space: nowrap !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-space-page .radio-filter { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; overflow: hidden !important; padding: 0 !important; margin: 0 !important; } body.bili-space-page button.playall-btn, body.bili-space-page .vui_button.playall-btn, body.bili-space-page .action-btn.playall-btn, body.bili-space-page [class*="playall"] { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; overflow: hidden !important; padding: 0 !important; margin: 0 !important; } body.bili-space-page #app, body.bili-space-page main.space-main, body.bili-space-page .space-home { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; display: block !important; } body.bili-space-page .space-home > .aside, body.bili-space-page .space-home > aside.aside, body.bili-space-page main.space-main .aside { display: none !important; visibility: hidden !important; width: 0 !important; max-width: 0 !important; min-width: 0 !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; flex: 0 0 0 !important; position: absolute !important; left: -9999px !important; } body.bili-space-page .space-home > .content { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; padding: 0 8px 16px 8px !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-space-page img, body.bili-space-page video, body.bili-space-page picture { max-width: 100% !important; height: auto !important; } body.bili-space-page .masterpiece-block, body.bili-space-page .items, body.bili-space-page .video-list__content, body.bili-space-page .article-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 8px !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; padding: 0 !important; margin: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; list-style: none !important; align-items: start !important; align-content: start !important; background: transparent !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; grid-auto-rows: auto !important; } body.bili-space-page .items > .items__item, body.bili-space-page .masterpiece-block > .masterpiece-block__item, body.bili-space-page .video-list__content > .video-list__item, body.bili-space-page .article-list > .article-list__item { display: contents !important; } /* ------------------------------------------------------------ 主页「合集·xxx / 系列·xxx」区块:标题行与视频卡片之间固定 20px 上面把 .video-list__content 的 margin/padding 全部归零, 刚进主页时站内那条原生顶部间距还没补上,文字就会紧贴卡片; 点一次「合集和系列」再切回来,站内样式补上了才恢复正常。 这里把间距统一交给 content 的 margin-top, 并清掉 header 的下边距与容器的 gap,避免两处叠加成双倍。 实测:修复前 .video-list 高 589(34+531+24), 正常态 609(多出的 20 就是这条间距)。 ------------------------------------------------------------ */ body.bili-space-page .route_home .lists-section .video-list { display: block !important; gap: 0 !important; row-gap: 0 !important; column-gap: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; } body.bili-space-page .route_home .lists-section .video-list__header { margin-top: 0 !important; margin-bottom: 0 !important; padding-bottom: 0 !important; } body.bili-space-page .route_home .lists-section .video-list__content { margin-top: 20px !important; padding-top: 0 !important; } /* ------------------------------------------------------------ v131.20 UP主空间内搜索页(route_search,空间右上角搜索进来的结果页) 原结构:.space-search[360] 是 flex-row > .search-sidebar[150 宽,纵向侧栏] > .side-nav > .side-nav__item[150x52] > .search-content[736(PC 定宽)] > .video > .video-body > .video-list.grid-mode[736] > .upload-video-card[364x282] 改法:sidebar 从左侧纵向栏改成顶部横向胶囊(同投稿页 .upload-sidenav / 动态页 .space-dynamic__left),content 满宽后卡片自然回到 168x172。 ------------------------------------------------------------ */ body.bili-space-page .space-search { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; gap: 0 !important; } /* 「视频 328 / 动态 357」移到「主页 动态 投稿 合集和系列」下方,横向胶囊 */ body.bili-space-page .search-sidebar { order: 1 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; padding: 8px !important; margin: 0 !important; box-sizing: border-box !important; position: static !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important; flex: 0 0 auto !important; overflow: visible !important; background: #f1f2f3 !important; } body.bili-space-page .search-sidebar .side-nav { display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 auto !important; box-sizing: border-box !important; flex-wrap: wrap !important; position: static !important; } body.bili-space-page .search-sidebar .side-nav__item { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; flex: 0 0 auto !important; width: auto !important; min-width: 64px !important; max-width: 100% !important; height: 34px !important; padding: 0 16px !important; margin: 0 !important; box-sizing: border-box !important; border-radius: 17px !important; background: #ffffff !important; color: #18191c !important; font-size: 13px !important; white-space: nowrap !important; position: static !important; } body.bili-space-page .search-sidebar .side-nav__item.active { background: #00aeec !important; color: #ffffff !important; } body.bili-space-page .search-sidebar .side-nav__item__main, body.bili-space-page .search-sidebar .side-nav__item__sub { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 4px !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important; background: transparent !important; } body.bili-space-page .search-sidebar .side-nav__item__main-text { color: inherit !important; font-size: 13px !important; font-weight: 500 !important; line-height: 34px !important; } body.bili-space-page .search-sidebar .side-nav__item__sub-text { color: inherit !important; font-size: 13px !important; font-weight: 400 !important; line-height: 34px !important; opacity: 0.8 !important; } body.bili-space-page .search-content { order: 2 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; padding: 0 8px 16px 8px !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; position: static !important; } /* 视频结果:容器满宽 + 两列网格,卡片回到 168x172(同投稿页) */ body.bili-space-page .space-search .video, body.bili-space-page .space-search .video-header, body.bili-space-page .space-search .video-header__top, body.bili-space-page .space-search .video-header .title, body.bili-space-page .space-search .video-header .sub-title, body.bili-space-page .space-search .video-body { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; } body.bili-space-page .space-search .video-list, body.bili-space-page .space-search .video-list.grid-mode, body.bili-space-page .space-search .video-list.hide-stat { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 8px !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; align-items: start !important; align-content: start !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; } body.bili-space-page .space-search .upload-video-card, body.bili-space-page .space-search .upload-video-card.grid-mode, body.bili-space-page .space-search .upload-video-card__left, body.bili-space-page .space-search .upload-video-card__main { width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; } /* 动态结果:与动态页一致(.search-content 已有 8px 边距, 这里把 item 的左右内边距归零,避免叠加成 16px) v131.21 修正:搜索页动态用的是 .dynamic-list(不是动态页的 .bili-dyn-list), 而且是 PC 定宽 720(.dynamic-list[720] > .dynamic-list__item[720x670]), 在 360 屏上直接溢出。这里把整条链压回 100%。 */ body.bili-space-page .space-search .dynamic, body.bili-space-page .space-search .dynamic-header, body.bili-space-page .space-search .dynamic-content, body.bili-space-page .space-search .dynamic-list, body.bili-space-page .space-search .dynamic-list__item, body.bili-space-page .space-search .bili-dyn-list, body.bili-space-page .space-search .bili-dyn-list__items, body.bili-space-page .space-search .bili-dyn-item, body.bili-space-page .space-search .bili-dyn-item__main { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-space-page .space-search .dynamic-list__item, body.bili-space-page .space-search .bili-dyn-list__item { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 0 8px 0 !important; margin: 0 !important; box-sizing: border-box !important; } /* 720 定宽带来的横向滚动也要掐掉,否则 360 屏会被撑开 */ body.bili-space-page .space-search .dynamic-content, body.bili-space-page .space-search .dynamic-list { display: block !important; overflow-x: hidden !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; } body.bili-space-page .space-search .dynamic-list__item .bili-dyn-item, body.bili-space-page .space-search .dynamic-list__item .bili-dyn-item__main, body.bili-space-page .space-search .dynamic-list__item .bili-dyn-item__header, body.bili-space-page .space-search .dynamic-list__item .bili-dyn-item__body, body.bili-space-page .space-search .dynamic-list__item .bili-dyn-item__footer { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; margin-left: 0 !important; margin-right: 0 !important; } /* ------------------------------------------------------------ v131.23 底部分页器(投稿→视频 / 空间搜索→视频)对齐主搜索页 两者对比(都在第 1 页): 主搜索页 .vui_pagenation[360x50] > .vui_pagenation--btns[360x34] 上一页 61x34 | 数字 32x34 | 下一页 61x34 | 无跳转区 空间页 .vui_pagenation--jump.video-pagination[736x34] ← PC 定宽溢出 > .vui_pagenation--btns[478x34] 数字 34x34 | 下一页 100x34 > .vui_pagenation-go[214x34] 「共 16 页 / 618 个,跳至 __ 页」 改法:容器压回 100% 并居中,按钮套用主搜索页同一组尺寸, 跳转区整块隐藏(.vui_pagenation-go)。 v131.24 补:上下间距对齐主搜索页。 主搜索页实测:外层 .flex_center.mt_x50.mb_x50[360x50], 脚本 870 行已把它的 margin 上下压成 8px;分页器 padding 8 0 + btns 34 = 50。 父容器 div[360x3854] = 列表 3788 + 50 + 8 + 8,正好相等 → 父容器没有额外的 padding-bottom。 所以主搜索页的视觉间距是:卡片底 → 8+8 = 16 → 按钮 → 8+8 = 16 → 容器底。 空间页:.video-footer 原生 154 高(= 分页器 34 + 上下各 60), 且父容器 .upload-content / .search-content 自带 padding-bottom 16 (实测 .upload-content[360x3758] − .video[344x3742] = 16)。 若不抵消,底部会变成 8 + 8 + 16 = 24,比主搜索页多 8px。 故 .video-footer 取 margin: 8px 0 -8px(下边 -8 抵消父容器多出的 8), 分页器保持 padding: 8px 0 → 上下视觉间距各 16px,与主搜索页一致。 ------------------------------------------------------------ */ /* 外层:上 8 / 下 -8(抵消父容器底部 padding 多出的 8) */ body.bili-space-page .video-footer { display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; padding: 0 !important; margin: 8px 0 -8px 0 !important; box-sizing: border-box !important; overflow: visible !important; background: transparent !important; } /* 分页器本体:与主搜索页同款 padding 8px 0 */ body.bili-space-page .vui_pagenation, body.bili-space-page .vui_pagenation--jump, body.bili-space-page .vui_pagenation--jump.video-pagination { display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; padding: 8px 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; background: transparent !important; } /* 「共 N 页 / N 个,跳至 __ 页」整块隐藏 */ body.bili-space-page .vui_pagenation-go, body.bili-space-page .vui_pagenation--jump .vui_pagenation-go, body.bili-space-page .vui_pagenation .vui_input { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-width: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } /* 按钮行:与主搜索页同款(全宽、gap 4、可横向滚动、隐藏滚动条) */ body.bili-space-page .vui_pagenation--btns { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; justify-content: flex-start !important; align-items: center !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 8px !important; margin: 0 !important; box-sizing: border-box !important; gap: 4px !important; overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important; -ms-overflow-style: none !important; } body.bili-space-page .vui_pagenation--btns::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } /* 单个按钮:数字 32x34、字号 13、圆角 4,与主搜索页一致 */ body.bili-space-page .vui_pagenation--btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; flex-shrink: 0 !important; flex-grow: 0 !important; width: auto !important; min-width: 32px !important; height: 34px !important; line-height: 34px !important; padding: 0 6px !important; margin: 0 !important; box-sizing: border-box !important; white-space: nowrap !important; font-size: 13px !important; text-align: center !important; border-radius: 4px !important; } /* 上一页 / 下一页:空间页原生 100x34,压回主搜索页的 61 宽 */ body.bili-space-page .vui_pagenation--btn-side { min-width: 44px !important; padding: 0 10px !important; font-size: 13px !important; } body.bili-space-page .space-dynamic { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; gap: 0 !important; } body.bili-space-page .space-dynamic__left { order: 1 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; padding: 8px !important; margin: 0 !important; box-sizing: border-box !important; position: static !important; top: auto !important; left: auto !important; bottom: auto !important; right: auto !important; background: #f1f2f3 !important; flex: 0 0 auto !important; overflow: visible !important; } body.bili-space-page .space-dynamic__left .side-nav { display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 auto !important; box-sizing: border-box !important; flex-wrap: wrap !important; position: static !important; } body.bili-space-page .space-dynamic__left .side-nav__item { display: flex !important; align-items: center !important; justify-content: center !important; flex: 0 0 auto !important; width: auto !important; min-width: 64px !important; max-width: 100% !important; height: 34px !important; padding: 0 16px !important; margin: 0 !important; box-sizing: border-box !important; border-radius: 17px !important; background: #ffffff !important; color: #18191c !important; font-size: 13px !important; cursor: pointer !important; user-select: none !important; white-space: nowrap !important; position: static !important; } body.bili-space-page .space-dynamic__left .side-nav__item.active { background: #00aeec !important; color: #ffffff !important; } body.bili-space-page .space-dynamic__left .side-nav__item__main { display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important; background: transparent !important; } body.bili-space-page .space-dynamic__left .side-nav__item__main-text { color: inherit !important; font-size: 13px !important; font-weight: 500 !important; line-height: 34px !important; } body.bili-space-page .space-dynamic__content { order: 2 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; } body.bili-space-page .space-dynamic__right { display: none !important; visibility: hidden !important; width: 0 !important; max-width: 0 !important; height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; flex: 0 0 0 !important; position: absolute !important; left: -9999px !important; } body.bili-space-page .space-dynamic-inner, body.bili-space-page .space-dynamic-inner > .content, body.bili-space-page .bili-dyn-list, body.bili-space-page .bili-dyn-list__items { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-list__item { padding: 0 8px 8px 8px !important; margin: 0 !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; float: none !important; } body.bili-space-page .bili-dyn-item { position: relative !important; background: #ffffff !important; border: 1px solid #e3e5e7 !important; border-radius: 8px !important; padding: 12px 8px 0 8px !important; margin: 0 !important; box-sizing: border-box !important; overflow: hidden !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: block !important; float: none !important; } body.bili-space-page .bili-dyn-item * { max-width: 100% !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-item img, body.bili-space-page .bili-dyn-item video, body.bili-space-page .bili-dyn-item picture { max-width: 100% !important; height: auto !important; } body.bili-space-page .bili-dyn-item__main { position: relative !important; padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; float: none !important; } body.bili-space-page .bili-dyn-item__avatar { position: absolute !important; left: 0 !important; top: 0 !important; width: 56px !important; max-width: 56px !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-item__avatar .bili-dyn-avatar, body.bili-space-page .bili-dyn-item__avatar .b-avatar, body.bili-space-page .bili-dyn-item__avatar img { width: 48px !important; height: 48px !important; max-width: 100% !important; border-radius: 50% !important; } body.bili-space-page .bili-dyn-item__header { margin-left: 0 !important; margin-right: 0 !important; padding-left: 64px !important; padding-right: 8px !important; width: auto !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-item__more, body.bili-space-page .bili-dyn-more, body.bili-space-page .bili-dyn-more__btn, body.bili-space-page .bili-dyn-more__cascader { display: none !important; visibility: hidden !important; } body.bili-space-page .bili-dyn-content, body.bili-space-page .bili-dyn-content__orig, body.bili-space-page .bili-dyn-content__orig__major { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-card-video { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-card-video__header { width: 100% !important; max-width: 100% !important; height: auto !important; flex: 0 0 auto !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-card-video__cover { width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 16 / 9 !important; box-sizing: border-box !important; } body.bili-space-page .bili-dyn-card-video__cover .b-img, body.bili-space-page .bili-dyn-card-video__cover .b-img__inner, body.bili-space-page .bili-dyn-card-video__cover img, body.bili-space-page .bili-dyn-card-video__cover picture { width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 16 / 9 !important; object-fit: cover !important; display: block !important; } body.bili-space-page .bili-dyn-card-video__body { width: 100% !important; max-width: 100% !important; height: auto !important; flex: 1 1 auto !important; padding: 8px 0 0 0 !important; box-sizing: border-box !important; } /* 投稿了视频:隐藏视频封面下方「框住标题/简介文字」的那条左侧半开口边框 */ body.bili-space-page .bili-dyn-card-video__body, body.bili-space-page .bili-dyn-card-video__title, body.bili-space-page .bili-dyn-card-video__desc { border: none !important; border-top: none !important; border-right: none !important; border-bottom: none !important; border-left: none !important; border-width: 0 !important; border-style: none !important; box-shadow: none !important; outline: none !important; } /* 该边框也可能是 ::before / ::after 画的竖条,一并清掉 */ body.bili-space-page .bili-dyn-card-video__body::before, body.bili-space-page .bili-dyn-card-video__body::after, body.bili-space-page .bili-dyn-card-video__desc::before, body.bili-space-page .bili-dyn-card-video__desc::after { content: none !important; display: none !important; border: none !important; background: none !important; box-shadow: none !important; } body.bili-space-page .bili-dyn-card-video__title, body.bili-space-page .bili-dyn-card-video__desc, body.bili-space-page .bili-dyn-card-video__title .bili-ellipsis, body.bili-space-page .bili-dyn-card-video__desc .bili-ellipsis { text-align: center !important; } body.bili-space-page .bili-dyn-card-video__stat, body.bili-space-page .bili-dyn-card-video__stat__item, body.bili-space-page .bili-dyn-card-video__stat__item.danmaku { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; } body.bili-space-page .bili-dyn-item, body.bili-space-page .bili-dyn-item * { text-align: center !important; } /* 正文容器:只做内边距约束,绝不能隐藏(正文 .bili-dyn-content 就在它里面) */ body.bili-space-page .bili-dyn-item__body { margin-left: 0 !important; margin-right: 0 !important; padding-left: 8px !important; padding-right: 8px !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; } /* 去掉卡片内的「转发 / 评论 / 点赞」数量行(整行隐藏,与动态一致) */ body.bili-space-page .bili-dyn-item__footer, body.bili-space-page .bili-dyn-item__action, body.bili-space-page .bili-dyn-action, body.bili-space-page .bili-dyn-action.forward, body.bili-space-page .bili-dyn-action.comment, body.bili-space-page .bili-dyn-action.like { display: none !important; visibility: hidden !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; overflow: hidden !important; } /* 隐藏该行后,卡片底部补回一点留白,避免内容紧贴卡片下边缘 */ body.bili-space-page .bili-dyn-item { padding-bottom: 12px !important; } body.bili-space-page .bili-dyn-content__orig__major img, body.bili-space-page .bili-dyn-content__orig__major picture, body.bili-space-page .bili-dyn-content__orig__major .b-img { margin-left: auto !important; margin-right: auto !important; display: block !important; } body.bili-space-page .bili-dyn-content__orig__major [class*="grid"], body.bili-space-page .bili-dyn-content__orig__major [class*="pics"], body.bili-space-page .bili-dyn-content__orig__major [class*="gallery"], body.bili-space-page .bili-dyn-content__orig__major [class*="goods"], body.bili-space-page .bili-dyn-content__orig__major [class*="commodity"], body.bili-space-page .bili-dyn-content__orig__major [class*="card"] { margin-left: auto !important; margin-right: auto !important; justify-content: center !important; } body.bili-space-page .bili-dyn-item__action { flex: 1 1 0 !important; width: auto !important; max-width: none !important; min-width: 0 !important; box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; } body.bili-space-page .bili-dyn-action { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; gap: 4px !important; } body.bili-space-page .space-upload { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; gap: 0 !important; } body.bili-space-page .upload-sidenav { order: 1 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; padding: 8px !important; margin: 0 !important; box-sizing: border-box !important; position: static !important; flex: 0 0 auto !important; overflow: visible !important; background: #f1f2f3 !important; } body.bili-space-page .upload-sidenav .side-nav { display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; gap: 8px !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 auto !important; box-sizing: border-box !important; flex-wrap: wrap !important; position: static !important; } body.bili-space-page .upload-sidenav .side-nav__item { display: flex !important; align-items: center !important; justify-content: center !important; flex: 0 0 auto !important; width: auto !important; min-width: 64px !important; max-width: 100% !important; height: 34px !important; padding: 0 16px !important; margin: 0 !important; box-sizing: border-box !important; border-radius: 17px !important; background: #ffffff !important; color: #18191c !important; font-size: 13px !important; cursor: pointer !important; user-select: none !important; white-space: nowrap !important; position: static !important; } body.bili-space-page .upload-sidenav .side-nav__item.active { background: #00aeec !important; color: #ffffff !important; } body.bili-space-page .upload-sidenav .side-nav__item__main { display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important; background: transparent !important; } body.bili-space-page .upload-sidenav .side-nav__item__main-text { color: inherit !important; font-size: 13px !important; font-weight: 500 !important; line-height: 34px !important; } body.bili-space-page .upload-content { order: 2 !important; display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; padding: 0 8px 16px 8px !important; margin: 0 !important; box-sizing: border-box !important; overflow: visible !important; position: static !important; } body.bili-space-page .lists-view-mode, body.bili-space-page .video-mode-switcher, body.bili-space-page .lists-view-mode__action { display: none !important; visibility: hidden !important; } body.bili-space-page .upload-content .video-list, body.bili-space-page .upload-content .video-list.grid-mode, body.bili-space-page .upload-content .video-list.hide-stat, body.bili-space-page .video-list.grid-mode, body.bili-space-page .video-list.hide-stat { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 8px !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; padding: 0 !important; margin: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; list-style: none !important; align-items: start !important; align-content: start !important; background: transparent !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; grid-auto-rows: auto !important; } /* ------------------------------------------------------------ v131.16 「合集和系列」整页(route_listsIndex)左右边距对齐主页 结构:main.space-main.route_listsIndex > .space-lists[360 满屏,无内边距] > .lists-header[360] + .lists-content[360] > .contet-list[360] > .video-list[360] > .video-list__content[360,已是两列网格 gap8] 这一页此前没有命中任何边距规则,卡片 176 宽直接顶到屏幕边缘; 主页 .space-home > .content 是 padding: 0 8px 16px 8px, 这里给 .space-lists 同一组值,内容宽回到 344、卡片 168,与主页一致。 v131.17 修正:只补左右边距,不要动 position / padding-top。 .lists-header 是 sticky 定位(自带 top 偏移躲开吸顶的 navbar), 上一版给它写了 position: static,粘性失效后它就直接跑到 「主页 动态 投稿 合集和系列」那一排按键底下被压住了。 同理 padding-top 也不能清零。 ------------------------------------------------------------ */ body.bili-space-page .space-lists { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; padding-bottom: 16px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; overflow: visible !important; } body.bili-space-page .space-lists .lists-content, body.bili-space-page .space-lists .contet-list, body.bili-space-page .space-lists .video-list { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; } /* 标题行同样只补左右,保留它自己的 sticky / top 偏移 */ body.bili-space-page .space-lists .lists-header { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; padding-bottom: 16px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; } /* 标题行与卡片之间,沿用主页「合集·/系列·」的 20px */ body.bili-space-page .space-lists .video-list__content { margin-top: 20px !important; } /* ------------------------------------------------------------ v131.18 合集详情页(route_listDetails,点进某个「合集·xxx」后) 结构:main.space-main.route_listDetails > .space-list-details[360] > .list-header[360x110](.title + .subtitle) > .list-content[360x170] > .list-video-item[59x110,桌面版一排放 5 个] 问题:整页无边距、卡片被压成 59 宽(封面只剩 33 高)。 改法:外层补 8px 左右边距(同主页 .space-home > .content), .list-content 改两列网格,卡片回到 168x172(封面 95 + 信息区 77)。 注意:.list-header 同样是 sticky,这里不写 position / padding-top。 ------------------------------------------------------------ */ body.bili-space-page .space-list-details { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 8px !important; padding-right: 8px !important; padding-bottom: 16px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; overflow: visible !important; } body.bili-space-page .space-list-details .list-header { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; float: none !important; } /* 标题「合集·xxx」与卡片之间 20px,和主页一致 */ body.bili-space-page .space-list-details .list-header .subtitle, body.bili-space-page .space-list-details .list-header .meta { width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin-bottom: 20px !important; box-sizing: border-box !important; } body.bili-space-page .space-list-details .list-content { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: auto !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; align-items: start !important; align-content: start !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; float: none !important; overflow: visible !important; } /* 桌面版给 item 算的是 5 列宽(59),这里放开让它吃满格子 */ body.bili-space-page .space-list-details .list-video-item { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; position: static !important; transform: none !important; left: auto !important; top: auto !important; float: none !important; flex: 0 1 auto !important; } /* ============================================================ ========== 通用两列视频卡片 ========== ============================================================ */ body.bili-home-page .container .bili-video-card, body.bili-home-page .container .bili-live-card, body.bili-search-page .bili-video-card, body.bili-search-page .bili-live-card, body.bili-search-page .search-video-card, body.bili-space-page .bili-video-card, body.bili-space-page .bili-live-card { --cover-radio: 56.25% !important; --title-font-size: 13px !important; --title-line-height: 18px !important; --title-padding-right: 0 !important; --no-interest-entry-size: 22px !important; --info-margin-top: 6px !important; --subtitle-font-size: 11px !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; display: block !important; align-self: start !important; background: #ffffff !important; border: none !important; border-radius: 8px !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important; overflow: hidden !important; box-sizing: border-box !important; position: relative !important; float: none !important; } body.bili-home-page .container .bili-video-card__wrap, body.bili-home-page .container .bili-live-card__wrap, body.bili-search-page .bili-video-card__wrap, body.bili-search-page .bili-live-card__wrap, body.bili-space-page .bili-video-card__wrap, body.bili-space-page .bili-live-card__wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: 0 !important; display: block !important; background: transparent !important; border: none !important; border-radius: 8px !important; box-sizing: border-box !important; overflow: hidden !important; } body.bili-home-page .bili-video-card__image--wrap, body.bili-home-page .bili-video-card__image--link, body.bili-home-page .v-img.bili-video-card__cover, body.bili-home-page .bili-video-card .b-img, body.bili-home-page .bili-video-card picture, body.bili-search-page .bili-video-card__image--wrap, body.bili-search-page .bili-video-card__image--link, body.bili-search-page .v-img.bili-video-card__cover, body.bili-search-page .bili-video-card .b-img, body.bili-search-page .bili-video-card picture, body.bili-space-page .bili-video-card__image--wrap, body.bili-space-page .bili-video-card__image--link, body.bili-space-page .v-img.bili-video-card__cover, body.bili-space-page .bili-video-card .b-img, body.bili-space-page .bili-video-card picture { width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border-radius: 8px 8px 0 0 !important; overflow: hidden !important; position: relative !important; display: block !important; float: none !important; box-sizing: border-box !important; } body.bili-home-page .bili-video-card__image--wrap img, body.bili-home-page .bili-video-card__image--link img, body.bili-home-page .v-img.bili-video-card__cover img, body.bili-home-page .bili-video-card .b-img > img, body.bili-home-page .bili-video-card .b-img__inner, body.bili-home-page .bili-video-card picture img, body.bili-search-page .bili-video-card__image--wrap img, body.bili-search-page .bili-video-card__image--link img, body.bili-search-page .v-img.bili-video-card__cover img, body.bili-search-page .bili-video-card .b-img > img, body.bili-search-page .bili-video-card .b-img__inner, body.bili-search-page .bili-video-card picture img, body.bili-space-page .bili-video-card__image--wrap img, body.bili-space-page .bili-video-card__image--link img, body.bili-space-page .v-img.bili-video-card__cover img, body.bili-space-page .bili-video-card .b-img > img, body.bili-space-page .bili-video-card .b-img__inner, body.bili-space-page .bili-video-card picture img { width: 100% !important; max-width: 100% !important; height: auto !important; aspect-ratio: 16 / 9 !important; object-fit: cover !important; display: block !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; } body.bili-home-page .bili-video-card__image--wrap picture > *, body.bili-search-page .bili-video-card__image--wrap picture > *, body.bili-space-page .bili-video-card__image--wrap picture > * { width: 100% !important; max-width: 100% !important; height: auto !important; padding: 0 !important; margin: 0 !important; display: block !important; box-sizing: border-box !important; } body.bili-home-page .bili-video-card__info, body.bili-home-page .bili-live-card__info, body.bili-home-page .video-info, body.bili-search-page .bili-video-card__info, body.bili-search-page .bili-live-card__info, body.bili-search-page .video-info, body.bili-space-page .bili-video-card__details, body.bili-space-page .bili-video-card__info, body.bili-space-page .bili-live-card__info { width: 100% !important; padding: 8px !important; margin: 0 !important; box-sizing: border-box !important; text-align: center !important; display: block !important; height: auto !important; max-height: none !important; min-height: 0 !important; background: transparent !important; } body.bili-home-page .bili-video-card__info--tit, body.bili-home-page .bili-video-card__info--tit a, body.bili-home-page .bili-video-card h3, body.bili-home-page .bili-video-card h3 a, body.bili-home-page .bili-live-card__info--tit, body.bili-home-page .bili-live-card__info--tit a, body.bili-search-page .bili-video-card__info--tit, body.bili-search-page .bili-video-card__info--tit a, body.bili-search-page .bili-video-card h3, body.bili-search-page .bili-video-card h3 a, body.bili-search-page .bili-live-card__info--tit, body.bili-search-page .bili-live-card__info--tit a, body.bili-space-page .bili-video-card__title, body.bili-space-page .bili-video-card__title > a, body.bili-space-page .bili-video-card__title .bili-ellipsis, body.bili-space-page .bili-video-card__info--tit, body.bili-space-page .bili-video-card__info--tit a { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; text-align: center !important; font-size: 13px !important; line-height: 18px !important; min-height: 36px !important; max-height: 36px !important; color: #18191c !important; font-weight: 500 !important; margin: 0 !important; padding: 0 !important; word-break: break-all !important; width: 100% !important; } body.bili-home-page .bili-video-card__info--bottom, body.bili-home-page .bili-video-card__info--owner, body.bili-home-page .bili-video-card__info--stat, body.bili-search-page .bili-video-card__info--bottom, body.bili-search-page .bili-video-card__info--owner, body.bili-search-page .bili-video-card__info--stat, body.bili-space-page .bili-video-card__info--bottom, body.bili-space-page .bili-video-card__info--owner, body.bili-space-page .bili-video-card__stats, body.bili-space-page .bili-video-card__subtitle, body.bili-space-page .bili-video-card__date { display: flex !important; justify-content: center !important; align-items: center !important; text-align: center !important; width: 100% !important; margin-top: 4px !important; margin-left: auto !important; margin-right: auto !important; padding: 0 !important; height: 21px !important; min-height: 21px !important; } body.bili-home-page .bili-watch-later, body.bili-home-page [class*="watch-later"], body.bili-home-page [class*="watchlater"], body.bili-home-page [class*="add-to-watch-later"], body.bili-home-page [class*="watch-later-btn"], body.bili-home-page .bili-video-card__mask, body.bili-search-page .bili-watch-later, body.bili-search-page [class*="watch-later"], body.bili-search-page [class*="watchlater"], body.bili-search-page [class*="add-to-watch-later"], body.bili-search-page [class*="watch-later-btn"], body.bili-search-page .bili-video-card__mask, body.bili-space-page .bili-card-watch-later, body.bili-space-page .bili-video-card .bili-watch-later, body.bili-space-page .bili-video-card [class*="watch-later"] { display: none !important; visibility: hidden !important; } /* v131.21 投稿页 / 搜索页的卡片外观改为与主页卡片完全一致。 主页和投稿页用的是同一个 .bili-video-card 组件(168x172, 封面 95 + 信息区 77,标题 152x36,副标题 152x21),DOM 尺寸本来就一样, 差的只是这条规则把投稿卡的背景/圆角/阴影全清掉了,看起来比主页卡"素"。 这里只保留 border:none(v131.6 要去掉的投稿卡文字框边框), 背景、圆角、阴影统统交还给原生 -> 与主页同源、必然一致。 搜索页的卡片同样包在 .upload-video-card 里,一并生效。 */ body.bili-space-page .upload-video-card .bili-video-card, body.bili-space-page .upload-video-card .bili-video-card__wrap { border: none !important; overflow: hidden !important; } /* ============================================================ v131.13 UP主主页三处调整 ============================================================ */ /* ---------- 1) 隐藏「收藏夹 ·N」整块 ---------- 结构:section.home-section > .section-wrap.fav-section > .section-wrap__header + .section-wrap__content > .fav-section__content > .items 用 :has() 把外层 section 一并收掉,避免留下空壳占位。 */ /* ---------- 1c) 隐藏「最近点赞的视频」整块(v131.22)---------- 探针实测(洛克宅桑主页): section.home-section:nth-of-type(8) > .section-wrap.like-section[344x964] > .section-wrap__header(标题「最近点赞的视频」) > .section-wrap__content > .like-section__content[344x890] > .items 用 :has() 连带外层 section,避免只收内层留下空壳。 */ body.bili-space-page .route_home .section-wrap.like-section, body.bili-space-page .route_home .like-section__content, body.bili-space-page .route_home .home-section:has(> .section-wrap.like-section) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; overflow: hidden !important; } /* ---------- 1b) 隐藏「订阅追番 ·N」整块(v131.21)---------- 与收藏夹同一套路:按区块类名收掉,并用 :has() 连带外层 section。 站内这一块的类名在 bangumi / sub / follow 之间换过, 这里三种写法都写上,任一命中即隐藏。 */ body.bili-space-page .route_home .section-wrap.bangumi-section, body.bili-space-page .route_home .bangumi-section__content, body.bili-space-page .route_home .section-wrap.sub-section, body.bili-space-page .route_home .sub-section__content, body.bili-space-page .route_home .section-wrap.follow-section, body.bili-space-page .route_home .follow-section__content, body.bili-space-page .route_home .home-section:has(> .section-wrap.bangumi-section), body.bili-space-page .route_home .home-section:has(> .section-wrap.sub-section), body.bili-space-page .route_home .home-section:has(> .section-wrap.follow-section) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; overflow: hidden !important; } body.bili-space-page .route_home .section-wrap.fav-section, body.bili-space-page .route_home .fav-section__content, body.bili-space-page .route_home .home-section:has(> .section-wrap.fav-section) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; overflow: hidden !important; } /* ---------- 2) 专栏卡片 -> 与视频卡片完全一致 ---------- 视频卡实测:168x172 = 封面 95(16:9) + 信息区 77 信息区 = padding8 + 标题36(13px/18px 两行) + 间距4 + 副标题21 + padding8 专栏卡原为 168x166(封面 95 + 底部 61,标题 15px/22.5px 三行), 这里把外框/圆角/阴影/字号行高全部对齐视频卡,并把信息区锁成 77px, 保证两列网格里两种卡片等高、标题基线一致。 */ body.bili-space-page .route_home .article-section .article-list { margin-top: 20px !important; } body.bili-space-page .article-card { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 172px !important; max-height: 172px !important; min-height: 172px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; display: block !important; position: relative !important; float: none !important; background: #ffffff !important; border: none !important; border-radius: 8px !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important; overflow: hidden !important; } /* 封面区:原生是用 padding-top 比例盒(或定高 95px)撑开、 封面 绝对定位铺满的。上一版在这里写了 height:auto + padding:0,把比例盒清零 -> 封面塌成 0 高, 文字就顶到了卡片最上面。这里只改外观,不再碰 height/padding, 比例交给原生(168x95 本身就是 16:9)。 */ body.bili-space-page .article-card__top { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; box-sizing: border-box !important; /* 兜底:高度算不出来时用 16:9 撑开(定高或比例盒在时不起作用) */ aspect-ratio: 16 / 9 !important; position: relative !important; float: none !important; border: none !important; border-radius: 8px 8px 0 0 !important; overflow: hidden !important; background: transparent !important; } body.bili-space-page .article-card__cover { display: block !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; border: none !important; border-radius: 8px 8px 0 0 !important; overflow: hidden !important; background: transparent !important; } /* 缩略图兜底:万一原生高度没算出来,用 16:9 撑住, 图片铺满并按 cover 裁切,保证任何情况下都有封面 */ body.bili-space-page .article-card__top > .article-card__cover, body.bili-space-page .article-card__top .bili-cover-card__thumbnail { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-space-page .article-card__top img, body.bili-space-page .article-card__cover img, body.bili-space-page .article-card__top .b-img__inner { width: 100% !important; max-width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; margin: 0 !important; padding: 0 !important; border: none !important; border-radius: 0 !important; box-sizing: border-box !important; } body.bili-space-page .article-card__bottom { width: 100% !important; height: 77px !important; min-height: 77px !important; max-height: 77px !important; margin: 0 !important; padding: 8px !important; box-sizing: border-box !important; background: transparent !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: stretch !important; text-align: center !important; overflow: hidden !important; } body.bili-space-page .article-card__bottom .title { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; text-align: center !important; width: 100% !important; font-size: 13px !important; line-height: 18px !important; min-height: 36px !important; max-height: 36px !important; color: #18191c !important; font-weight: 500 !important; margin: 0 !important; padding: 0 !important; word-break: break-all !important; text-decoration: none !important; } /* 标题内层再套了一层 .vui_ellipsis.multi-mode, 让它退化为普通内联文本,避免两层 clamp 叠出额外高度 */ body.bili-space-page .article-card__bottom .title > * { display: inline !important; font-size: 13px !important; line-height: 18px !important; color: #18191c !important; font-weight: 500 !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; padding: 0 !important; text-align: center !important; white-space: normal !important; } /* ---------- 3) 顶部 tab 蓝色位置条:改为跟随选中项自身定位 ---------- 原因:脚本用 fixSpaceNavTabs() 把「收藏夹/订阅」等 tab 设为 display:none, 站内那条蓝色条是按 tab 序号/旧布局算出来的绝对定位元素, 隐藏若干 tab 后算出的 left 就对不上了(每次刷新还不一定一样)。 做法:隐藏所有非 的兄弟节点(即那条 JS 定位的滑动条), 改由选中项自身的 ::after 画线,位置永远等于该项实际位置。 */ body.bili-space-page .nav-tab { position: relative !important; } body.bili-space-page .nav-tab > *:not(a) { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; } body.bili-space-page .nav-tab::before, body.bili-space-page .nav-tab::after, body.bili-space-page .nav-tab > a.nav-tab__item::before { content: none !important; display: none !important; } body.bili-space-page .nav-tab > a.nav-tab__item { position: relative !important; } body.bili-space-page .nav-tab > a.nav-tab__item::after { content: '' !important; display: block !important; position: absolute !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: auto !important; min-width: 0 !important; height: 3px !important; margin: 0 !important; padding: 0 !important; border: none !important; border-radius: 2px !important; transform: none !important; transition: none !important; background: transparent !important; } body.bili-space-page .nav-tab > a.nav-tab__item.active::after, body.bili-space-page .nav-tab > a.nav-tab__item.router-link-exact-active::after { background: #00aeec !important; } body.bili-space-page .nav-tab > a.nav-tab__item.active, body.bili-space-page .nav-tab > a.nav-tab__item.router-link-exact-active { color: #00aeec !important; } /* ---------- 4) 投稿 → 图文:瀑布流改两列网格,卡片对齐主页专栏卡 ---------- 结构:.opus-feed > .masonry_grid_v2 > .container[814 宽,JS 瀑布流] > .item(绝对定位 + transform) > .opus-card > .opus-card--with-cover > [a.opus-card__cover(缩略图 + stats), a.opus-card__title] 原卡 189x187(封面 142 + 标题 46),瀑布流列宽由 JS 算。 (!important 的作者样式优先级高于站内 JS 写在 style 属性里的普通声明, 所以 transform / position / width 都能直接压住。) */ /* 外层只做"满宽容器",绝不能再设成网格: 一旦 .masonry_grid_v2 也是两列网格,它唯一的子元素 .container 就会变成占一列的网格项,宽度掉到 (344-8)/2 = 168, 卡片再被挤成 80x172,整块内容就都堆在屏幕左半边了。 */ body.bili-space-page .opus-feed .masonry_grid_v2 { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; position: static !important; overflow: visible !important; } body.bili-space-page .opus-feed .masonry_grid_v2 > .container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: auto !important; gap: 8px !important; row-gap: 8px !important; column-gap: 8px !important; align-items: start !important; align-content: start !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; position: static !important; overflow: visible !important; list-style: none !important; } body.bili-space-page .opus-feed .masonry_grid_v2 > .container > .item { position: static !important; transform: none !important; translate: none !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; inset: auto !important; width: auto !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; display: block !important; visibility: visible !important; opacity: 1 !important; float: none !important; } /* 卡片本体:与主页专栏卡同一套外观(白底 / 8px 圆角 / 同一条阴影 / 172 高) */ body.bili-space-page .opus-card, body.bili-space-page .opus-card--with-cover { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 172px !important; min-height: 172px !important; max-height: 172px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; display: block !important; position: relative !important; float: none !important; background: #ffffff !important; border: none !important; border-radius: 8px !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important; overflow: hidden !important; } body.bili-space-page .opus-card__cover { display: block !important; position: relative !important; float: none !important; width: 100% !important; max-width: 100% !important; height: 95px !important; min-height: 95px !important; max-height: 95px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; border: none !important; border-radius: 8px 8px 0 0 !important; overflow: hidden !important; background: transparent !important; } body.bili-space-page .opus-card__cover > .bili-cover-card__thumbnail, body.bili-space-page .opus-card__cover > a.bili-cover-card__thumbnail { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; box-sizing: border-box !important; } body.bili-space-page .opus-card__cover img, body.bili-space-page .opus-card__cover .b-img__inner { width: 100% !important; max-width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; margin: 0 !important; padding: 0 !important; border: none !important; border-radius: 0 !important; box-sizing: border-box !important; } /* 标题区:与专栏卡 bottom 同为 77px(8 + 36 + 21 + 8 的留白结构) */ body.bili-space-page .opus-card__title { display: block !important; width: 100% !important; max-width: 100% !important; height: 77px !important; min-height: 77px !important; max-height: 77px !important; padding: 8px !important; margin: 0 !important; box-sizing: border-box !important; text-align: center !important; text-decoration: none !important; background: transparent !important; overflow: hidden !important; } body.bili-space-page .opus-card__title > * { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; text-align: center !important; width: 100% !important; font-size: 13px !important; line-height: 18px !important; min-height: 36px !important; max-height: 36px !important; color: #18191c !important; font-weight: 500 !important; margin: 0 !important; padding: 0 !important; word-break: break-all !important; white-space: normal !important; } `; root.appendChild(style); } const PAGE_CLASS_RULES = [ { test: isSearchPage, cls: ['bili-search-page'] }, { test: isTBiliDynamic, cls: ['bili-dynamic-page'] }, { test: isOpusPage, cls: ['bili-opus-page'] }, { test: isHome, cls: ['bili-home-page'] }, { test: isSpacePage, cls: ['bili-space-page'] }, // 播放列表页:额外带上 bili-video-page,直接复用视频页的全部优化 { test: isListPage, cls: ['bili-video-page', 'bili-list-page'] }, { test: isVideoPage, cls: ['bili-video-page'] }, { test: isBangumiPage, cls: ['bili-bangumi-page'] } ]; const ALL_PAGE_CLASSES = [ 'bili-search-page', 'bili-dynamic-page', 'bili-opus-page', 'bili-home-page', 'bili-space-page', 'bili-video-page', 'bili-list-page', 'bili-bangumi-page' ]; function currentPageClasses() { for (let i = 0; i < PAGE_CLASS_RULES.length; i++) { if (PAGE_CLASS_RULES[i].test()) return PAGE_CLASS_RULES[i].cls; } return []; } function syncPageClass() { if (!document.body) return false; const want = currentPageClasses(); const cl = document.body.classList; ALL_PAGE_CLASSES.forEach(c => { if (want.indexOf(c) === -1) cl.remove(c); }); want.forEach(c => cl.add(c)); return true; } function applyPageClassEarly() { if (!syncPageClass()) { const obs = new MutationObserver(() => { if (syncPageClass()) obs.disconnect(); }); obs.observe(document.documentElement, { childList: true, subtree: true }); } // 站内跳转(如 /list/ 与 /video/ 互跳)时同步页面 class window.addEventListener('popstate', syncPageClass); ['pushState', 'replaceState'].forEach(fn => { const orig = history[fn]; if (typeof orig !== 'function') return; history[fn] = function () { const ret = orig.apply(this, arguments); setTimeout(syncPageClass, 0); return ret; }; }); } function fixVideoControls() { if (!isVideoPage() && !isBangumiPage() && !isListPage()) return; if (fixVideoControls._done) return; const playerContainer = document.querySelector('body.bili-video-page .bpx-player-container') || document.querySelector('body.bili-bangumi-page .bpx-player-container'); if (!playerContainer) return; const videoArea = playerContainer.querySelector('.bpx-player-video-area'); if (!videoArea) return; const videoPerch = videoArea.querySelector('.bpx-player-video-perch'); const videoWrap = (videoPerch && videoPerch.querySelector('.bpx-player-video-wrap')) || videoArea.querySelector('.bpx-player-video-wrap'); if (!videoWrap) return; const video = videoWrap.querySelector('video'); if (!video) return; if (videoWrap.parentElement === videoArea && videoArea.firstElementChild === videoWrap) { fixVideoControls._done = true; return; } if (videoPerch && videoWrap.parentElement !== videoArea) { videoArea.insertBefore(videoWrap, videoPerch); } video.playsInline = true; const oldControlWrap = videoArea.querySelector('.bpx-player-control-wrap:not(.new)'); if (!oldControlWrap) return; const controlEntity = oldControlWrap.querySelector('.bpx-player-control-entity'); if (!controlEntity) return; let clickTimer; let hideTimer; const controlWrap = document.createElement('div'); controlWrap.className = 'bpx-player-control-wrap new'; controlWrap.innerHTML = '
'; videoArea.insertBefore(controlWrap, oldControlWrap); controlWrap.appendChild(controlEntity); const controlTop = controlEntity.querySelector('.bpx-player-control-top'); const bottomRight = controlEntity.querySelector('.bpx-player-control-bottom-right'); const isBpxStateShow = () => controlEntity.querySelector('.bpx-player-control-bottom-right > .bpx-state-show'); const isShown = () => playerContainer.getAttribute('ctrl-shown') === 'true'; playerContainer.setAttribute('ctrl-shown', 'false'); const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { const firstNode = mutation.addedNodes[0]; if (firstNode && firstNode.nodeType === Node.ELEMENT_NODE && firstNode.classList.contains('bpx-player-ctrl-web')) { if (video.paused) showControlWrap(); const subtitleBtn = document.querySelector('.bpx-player-ctrl-subtitle'); if (subtitleBtn) { window.addEventListener('click', (event) => { if (!subtitleBtn.contains(event.target)) { subtitleBtn.dispatchEvent(new MouseEvent('mouseleave')); } }); } observer.disconnect(); } }); }); if (bottomRight) observer.observe(bottomRight, { childList: true }); function hideControlWrap(isEnd = false) { if ((!video.paused && !isBpxStateShow()) || isEnd) { playerContainer.setAttribute('ctrl-shown', 'false'); clearTimeout(hideTimer); } else { delayHideTimer(); } } function showControlWrap() { playerContainer.setAttribute('ctrl-shown', 'true'); delayHideTimer(); } function delayHideTimer() { clearTimeout(hideTimer); hideTimer = setTimeout(hideControlWrap, 3000); } function unmute() { video.muted = false; if (video.volume === 0) { const muteIcon = document.querySelector('.bpx-player-ctrl-muted-icon'); if (muteIcon) muteIcon.click(); } } video.addEventListener('ended', () => hideControlWrap(true)); video.addEventListener('play', delayHideTimer); videoWrap.addEventListener('mousemove', (e) => e.stopPropagation()); videoWrap.addEventListener('click', () => { clearTimeout(clickTimer); clickTimer = setTimeout(() => { if (isShown()) hideControlWrap(); else showControlWrap(); if (video.paused) video.play(); else video.pause(); }, 250); }); videoWrap.addEventListener('dblclick', () => { clearTimeout(clickTimer); unmute(); const isPortrait = video.videoHeight / video.videoWidth > 1; if (isPortrait) { const webBtn = document.querySelector('.bpx-player-ctrl-web'); if (webBtn) webBtn.click(); } else if (videoPerch) { videoPerch.dispatchEvent(new MouseEvent('dblclick', { bubbles: true })); } }); controlWrap.addEventListener('mousemove', (e) => e.stopPropagation()); controlWrap.addEventListener('click', (e) => { e.stopPropagation(); delayHideTimer(); }); if (controlTop) controlTop.addEventListener('touchstart', delayHideTimer); fixVideoControls._done = true; } function bindVideoSlideGesture() { if (!isVideoPage() && !isBangumiPage() && !isListPage()) return; if (bindVideoSlideGesture._bound) return; bindVideoSlideGesture._bound = true; let mask = document.getElementById('my-bili-right-mask'); if (!mask) { mask = document.createElement('div'); mask.id = 'my-bili-right-mask'; document.body.appendChild(mask); } const MIN_DISTANCE = 60; const MAX_TIME = 600; function getPanel() { if (isListPage()) return document.querySelector('body.bili-list-page .playlist-container--right'); if (isVideoPage()) return document.querySelector('body.bili-video-page .right-container'); if (isBangumiPage()) return document.querySelector('body.bili-bangumi-page .plp-r-wrap'); return null; } function isOpen() { const r = getPanel(); return r && r.classList.contains('show'); } function openPanel() { const r = getPanel(); if (r) r.classList.add('show'); mask.classList.add('show'); } function closePanel() { const r = getPanel(); if (r) r.classList.remove('show'); mask.classList.remove('show'); } mask.addEventListener('click', closePanel); let startX = 0, startY = 0, startTime = 0; document.addEventListener('touchstart', e => { if (e.touches.length !== 1) return; startX = e.touches[0].clientX; startY = e.touches[0].clientY; startTime = Date.now(); }, { passive: true }); document.addEventListener('touchend', e => { if (e.changedTouches.length !== 1) return; const dx = e.changedTouches[0].clientX - startX; const dy = e.changedTouches[0].clientY - startY; const dt = Date.now() - startTime; if (Math.abs(dy) > Math.abs(dx)) return; if (dt > MAX_TIME) return; if (dx < -MIN_DISTANCE && !isOpen()) openPanel(); else if (dx > MIN_DISTANCE && isOpen()) closePanel(); }, { passive: true }); } function bindFullscreenFix() { if (!isVideoPage() && !isListPage()) return; if (bindFullscreenFix._bound) return; bindFullscreenFix._bound = true; const handleChange = () => { const isFull = !!(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement); if (isFull) { document.body.classList.add('video-fullscreen'); } else { document.body.classList.remove('video-fullscreen'); } }; document.addEventListener('fullscreenchange', handleChange); document.addEventListener('webkitfullscreenchange', handleChange); document.addEventListener('mozfullscreenchange', handleChange); document.addEventListener('MSFullscreenChange', handleChange); document.addEventListener('orientationchange', () => { if (document.fullscreenElement || document.webkitFullscreenElement) { setTimeout(handleChange, 100); } }); } function createSearchBar() { if (!isHome() && !isSearchPage() && !isSpacePage()) return; if (document.getElementById('my-bili-searchbar')) return; const onSearch = isSearchPage(); const onSpace = isSpacePage(); const url = new URL(location.href); const currentOrder = url.searchParams.get('order') || ''; const isLatest = currentOrder === 'pubdate'; const bar = document.createElement('div'); bar.id = 'my-bili-searchbar'; const showLeftBtn = !onSpace; let leftBtnHTML = ''; if (showLeftBtn) { if (onSearch) { leftBtnHTML = `
${isLatest ? '最新' : '综合'}
`; } else { leftBtnHTML = `
`; } } const placeholderText = onSpace ? '搜索视频、动态' : '搜索视频、番剧、UP主...'; const kw = onSearch ? (url.searchParams.get('keyword') || '') : ''; const escapedKw = kw.replace(/"/g, '"').replace(//g, '>'); bar.innerHTML = ` ${leftBtnHTML}
`; const attach = () => { if (!document.body) { setTimeout(attach, 50); return; } document.body.appendChild(bar); const input = bar.querySelector('input'); const btn = bar.querySelector('.my-search-btn'); const doSearch = () => { const keyword = input.value.trim(); if (!keyword) return; if (onSpace) { const mid = location.pathname.split('/').filter(Boolean)[0] || ''; if (!mid || !/^\d+$/.test(mid)) return; location.href = `https://space.bilibili.com/${mid}/search?keyword=${encodeURIComponent(keyword)}`; return; } const next = new URL('https://search.bilibili.com/all'); next.searchParams.set('keyword', keyword); if (isLatest) next.searchParams.set('order', 'pubdate'); location.href = next.toString(); }; input.addEventListener('keydown', e => { if (e.key === 'Enter' || e.keyCode === 13) { e.preventDefault(); doSearch(); } }); btn.addEventListener('click', doSearch); const orderBtn = bar.querySelector('#my-bili-order-btn'); if (orderBtn) { const toggleOrder = () => { const cur = new URL(location.href); const kwNow = input.value.trim() || cur.searchParams.get('keyword') || ''; if (!kwNow) { input.focus(); return; } const next = new URL('https://search.bilibili.com/all'); next.searchParams.set('keyword', kwNow); if (isLatest) next.searchParams.delete('order'); else next.searchParams.set('order', 'pubdate'); location.href = next.toString(); }; orderBtn.addEventListener('click', toggleOrder); } }; attach(); } function fixSpaceNavTabs() { if (!isSpacePage()) return; const allowedTabs = ['主页', '动态', '投稿', '合集和系列']; document.querySelectorAll('body.bili-space-page .nav-tab > a.nav-tab__item').forEach(el => { const text = (el.textContent || '').trim(); el.style.removeProperty('display'); el.style.removeProperty('visibility'); const isAllowed = allowedTabs.some(t => text.indexOf(t) !== -1); if (!isAllowed) { el.style.setProperty('display', 'none', 'important'); el.style.setProperty('visibility', 'hidden', 'important'); } }); } function run() { if (!document.body) return; if (isTBiliDynamic()) { // 动态页 } else if (isOpusPage()) { // opus 详情页 } else if (isHome()) { // 首页 } else if (isSearchPage()) { // 搜索页 } else if (isSpacePage()) { fixSpaceNavTabs(); } else if (isVideoPage() || isListPage()) { fixVideoControls(); bindVideoSlideGesture(); bindFullscreenFix(); } else if (isBangumiPage()) { fixVideoControls(); bindVideoSlideGesture(); } } function start() { installShadowRootPatch(); injectStyle(); applyPageClassEarly(); fixViewport(); createSearchBar(); const runAll = () => { run(); setTimeout(run, 300); setTimeout(run, 800); setTimeout(run, 1500); setTimeout(run, 3000); setTimeout(run, 5000); setTimeout(run, 8000); setTimeout(run, 12000); }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runAll); } else { runAll(); } window.addEventListener('load', runAll); const observer = new MutationObserver(() => { if (observer._t) clearTimeout(observer._t); observer._t = setTimeout(() => { run(); }, 200); }); const observeStart = () => { if (!document.body) { setTimeout(observeStart, 50); return; } observer.observe(document.body, { childList: true, subtree: true }); }; observeStart(); } start(); })();