死神漫画 - 死神漫画全集在线阅读_千年血战篇动画剧场版更新_热搜榜
favicon 是 data URI 的内联 SVG。行,写短一点。
CSS 先写……
现在仔细写,开始产出最终代码。
版式细节:
css
复制
下载
.wrap{max-width:1240px;margin:0 auto;padding:0 18px}
页头:
css
复制
下载
.site-header{position:sticky;top:0;z-index:60;background:rgba(10,13,20,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{max-width:1240px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:18px}
品牌:svg 标志 + 文字。
logo 用内联 SVG 来做:一个斩魄刀风格的图形或者一个骷髅风格图标。先简单来:圆形加闪电。
html
复制
下载
运行
不错。
导航链接带 hover 下划线。
移动端:导航折叠成横向滚动的一行,或者用一个切换按钮。就用汉堡按钮切换一个下拉面板吧。
这样写:
css
复制
下载
.main-nav{display:flex;gap:4px;flex:1}
.main-nav a{padding:8px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14.5px;font-weight:500;white-space:nowrap;transition:.2s}
.main-nav a:hover{color:var(--txt);background:var(--panel2)}
移动端:
css
复制
下载
@media(max-width:900px){
.main-nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#0e131e;border-bottom:1px solid var(--line);padding:10px 18px;display:none}
.main-nav.open{display:flex}
.nav-toggle{display:inline-flex}
}
汉堡按钮默认隐藏。
头部工具栏:“连载中”的脉冲小圆点。
接下来是面包屑。
Hero 区域:
html
复制
下载
运行
hero-grid:grid-template-columns: 1fr 320px;移动端折叠。
Hero 特性区域:aspect-ratio 16/9 配最小高度。小屏幕上改成 4/3。
hero 上的图片要 object-fit: cover。
然后是各个区块。
区块标题模式:
html
复制
下载
运行
嗯,sec-more 应该指向某个锚点。用筛选标签来当锚点。
其实“首页所有分类标签、题材标签、风格标签,全部做成本页筛选锚点链接”——所以标签就链接到各个区块的锚点。
我把筛选条放在漫画区块里:
html
复制
下载
运行
嗯,它们全都指向 #manga——那也行(本页锚点)。
其实不如把标签分散到不同的区块:#manga、#anime、#rank、#news。但筛选标签指向“漫画”区块也合理。
让我让标签指向不同区块,让权重在页内流动:#schedule、#manga、#anime、#rank、#news、#faq、#chat。
我把标签云放在侧边栏,链接到各个区块,做成“题材标签”。
好。
现在来写追更日历部分——横向滚动的卡片,带日期。
html
复制
下载
运行
...
周一
死神漫画 千年血战篇 第 42 话
已更新
...
横向滚动加 scroll-snap。
接下来是漫画卡片网格。
然后是动画区——也许用不同的布局:列表行加上缩略图(横向布局)来打破网格的重复感。对,差异化。
html
复制
下载
运行
更新至 08 集
好。
然后是热搜榜标签页。
html
复制
下载
运行
JS 从数据对象切换内容。
数据:
js
复制
下载
const platData = {
tx:[{t:"死神 千年血战篇 相克谭",h:"1",hot:"3281万",tag:"动漫"}...],
...
}
渲染列表。
然后是资讯区块——带日期的卡片。
再然后是 FAQ——用 还是自定义的手风琴?用 / 做语义化吧,样式也简单。
再然后是留言区。
侧边栏:
编辑推荐(内链锚点)
题材标签云
本站数据
最后是页脚。
页脚链接全部指向页内锚点。
页脚里放 JSON-LD。
现在开始写所有代码。
字符数会很大,但没关系。
写 JS:
js
复制
下载
const navToggle=document.querySelector('.nav-toggle');
const nav=document.querySelector('.main-nav');
navToggle.addEventListener('click',()=>nav.classList.toggle('open'));
document.querySelectorAll('.main-nav a').forEach(a=>a.addEventListener('click',()=>nav.classList.remove('open')));
Toast 提示:
js
复制
下载
let toastTimer;
function showToast(msg){
let el=document.getElementById('toast');
el.textContent=msg;
el.classList.add('show');
clearTimeout(toastTimer);
toastTimer=setTimeout(()=>el.classList.remove('show'),2200);
}
用事件委托绑定 data-toast 的点击:
js
复制
下载
document.addEventListener('click',e=>{
const t=e.target.closest('[data-toast]');
if(t){e.preventDefault();showToast(t.dataset.toast);}
});
但预约按钮的文案要切换:
js
复制
下载
document.querySelectorAll('.book-btn').forEach(b=>b.addEventListener('click',e=>{
e.stopPropagation();
const on=b.classList.toggle('on');
b.textContent=on?'已预约':'预约';
showToast(on?'已加入预约,更新后自动提醒':'已取消预约');
}));
卡片弹窗:
js
复制
下载
const modal=document.getElementById('modal');
...
document.querySelectorAll('.work-card').forEach(card=>{
card.addEventListener('click',e=>{
if(e.target.closest('button')) return;
openModal(card.dataset);
});
card.addEventListener('keydown',e=>{if(e.key==='Enter'){openModal(card.dataset)}});
});
openModal 根据 data 里的字段来填充:
data-title、data-sub、data-cover、data-score、data-desc、data-tags、data-info。
先把弹窗的 HTML 写出来:
html
复制
下载
运行
点击遮罩关闭,按 ESC 关闭,锁定 body 滚动。
注意:modal-actions 里的 data-toast 按钮——全局的 toast 委托点击处理器能工作。
但要注意:[data-toast] 的全局处理器——modal 里的按钮也有 data-toast,没问题。
现在来给 rank 写 tabs 的 JS。
再给图片做加载时的 shimmer 骨架屏:用 .card-media::before 加动画——但图片会把它盖住。其实用一个包裹层,在图片加载完成前显示一个带 shimmer 动画的背景,img 加个 loading class……
最简单的方式:.card-media{background:linear-gradient(...);background-size:200% 100%;animation:shimmer 1.4s infinite},图片加载完成把它盖住。但因为图片是 webp 的,而且可能 404,所以 onerror 的降级图就会盖上去。行,shimmer 在图片后面一直转也无所谓。其实有个小视觉问题——图片盖在上面,无所谓。
更好的做法:在 img 上加 img.onload,加个 class 停掉 shimmer。但每张图都这么写太麻烦。干脆就用容器上一直转的 CSS 渐变当背景,图片盖住它就行,够用了。
好。
再给卡片入口加个错开的入场动画,用 CSS 的 animation-delay 配合 nth-child?可选,先跳过或者简单点。
hover 效果:卡片上浮、图片放大。
现在写具体内容。
内容细节——需要原创感:
Hero 描述:「久保带人用一把斩魄刀切开少年漫的固有框架:把「守护」写成责任,把「离别」写成常态。本站整理死神漫画全集阅读顺序、千年血战篇动画对照表与久保式留白分镜解析。」
卡片:
死神漫画 千年血战篇 — 9.7 — 久保带人 — 热血/奇幻 — 描述:最终章把友哈巴赫与灭却师的历史一次性收束,动画补完了漫画里被压缩的十二场队长级对决。
死神漫画 破面篇 — 9.5
死神漫画 尸魂界拯救篇 — 9.4
死神漫画 完现术篇 — 8.6
死神漫画 代理死神篇 — 9.2
死神漫画 狱颐鸣鸣篇 — 9.3
动画/剧场版:
死神 千年血战篇 相克谭 — TV — 更新至 08 集
死神 剧场版 无人的回忆 — 剧场版
死神 剧场版 呼唤君之名 — 剧场版
死神 剧场版 别处的回忆 — 剧场版
行。
热搜榜数据:
腾讯视频:
1 死神 千年血战篇 相克谭 3281万 动漫
2 斗罗大陆 神界传说 2914万 动漫
3 遮天 年番 2456万 动漫
4 剑来 第二季 2103万 动漫
5 完美世界 1902万 动漫
爱奇艺:
1 死神漫画改编剧集企划 1876万 资讯……
嗯,爱奇艺的话不如写这些:
1 大主宰 年番 1654万
2 神墓 第二季 1433万
3 死神 千年血战篇 回顾特辑 1288万
4 苍兰诀 动画版 1102万
5 一人之下 第六季 986万
红果短剧:
1 死神:我在尸魂界当队长 短剧 892万
2 重生之斩魄刀觉醒 短剧 771万
3 穿成死神我成了最强 短剧 655万
4 千年血战 短剧版 543万
5 灵王宫的秘密 短剧 421万
小红书:
1 死神漫画完结了吗 笔记 512万
2 久保带人画风教程 笔记 447万
3 死神千年血战篇名场面 笔记 388万
4 死神漫画阅读顺序 笔记 302万
5 斩魄刀人气排名 笔记 266万
抖音:
1 死神 卍解合集 视频 1523万
2 千年血战篇最终季 视频 1288万
3 久保带人 诗人 视频 977万
4 死神漫画名台词 视频 845万
5 黑崎一护 虚化 视频 702万
快手:
1 死神 热血剪辑 视频 1132万
2 死神漫画解说 视频 986万
3 卍解全收录 视频 803万
4 死神 护廷十三队 视频 654万
5 死神 蓝染 视频 548万
可以。
资讯:
《死神 千年血战篇》最终季制作阵容公开,久保带人亲自参与分镜监修
死神漫画全球累计发行量突破 1.3 亿册,海外占比首次超过三成
久保带人短篇《狱颐鸣鸣篇》确定动画化,填补千年血战后的空白
死神漫画阅读顺序指南:新手该从哪一话开始补
FAQ:
死神漫画全集在哪里可以看?
死神漫画一共有多少话?
千年血战篇动画和漫画结局一样吗?
死神漫画阅读顺序应该怎么排?
死神漫画完结了吗?
评论区:
浦原喜助 的粉丝
斩月
朽木露琪亚
更木剑八
评论内容里带上关键词。
好,现在开始写。
另外在页脚区域加上 JSON-LD,包含 WebSite 和 FAQPage。
现在把所有内容都写出来。
还有一个:底部导航固定吗?不要,底部就做普通页脚吧。
动手写吧。
CSS 长度要注意,不过继续。
先写 CSS:
css
复制
下载
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:#0a0d14;color:#e6ecf6;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
overflow-x:hidden 放在 body 上会不会把 position: sticky 弄坏?其实不会,只要不是设在 html 上的 overflow 就还好。嗯,body 上的 overflow-x: hidden 对 sticky 一般也没影响(主要是在祖先元素上设 overflow 才会出问题)。还是稳妥点,把 overflow-x: hidden 放到 html, body 上吧。其实 html 上设了 overflow-x: hidden 会把 sticky 搞坏吗?也不一定。算了,干脆换个思路:用 max-width 和合适的尺寸来兜底,不设 overflow-x,或者设在 html 上就好。
嗯,就直接在 body 上用 overflow-x: hidden 吧——大多数浏览器都没问题。
继续写。
背景加一点微妙的径向渐变:
css
复制
下载
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(700px 400px at 12% -8%,rgba(255,122,47,.13),transparent 60%),radial-gradient(800px 500px at 92% 4%,rgba(46,230,197,.09),transparent 62%);z-index:0}
然后给内容包装层加个 position: relative 和 z-index: 1。
其实给 body 设个 position: relative 再让子元素都设 z-index 就行。
更简单的做法:body::before 设 z-index: 0,position: fixed;页头设 z-index: 60,内容正常流动。因为内容没有设置 position,它渲染在……其实固定定位的伪元素如果 z-index 是 0,会跑到静态定位内容上面吗?不会——设了正 z-index 的固定定位元素会跑到静态内容上面。所以得把内容也设成 position: relative、z-index: 1。还是直接给伪元素设成 z-index: -1 吧,这样它在内容后面、但在 body 背景之上(body 有背景色)。对,z-index: -1 可行,因为 body 会创建层叠上下文吗?……实际上 body::before 设了 z-index: -1 会跑到 body 背景后面去,然后就看不见了。嗯。
那就干脆别用 body 背景色?不行。
另一个方案:把渐变加在 .page 包装元素上……要么给 body 设背景图:
css
复制
下载
body{background-color:#0a0d14;background-image:radial-gradient(...),radial-gradient(...);background-attachment:fixed}
这样最干净。就这么办。
现在真正开始写代码。
我会写得很细但保持高效。
区块间距:margin-bottom 44px。
开始写。
html
复制
下载
运行
嗯,head-cta 在移动端可能隐藏。
再加一个面包屑:
html
复制
下载
运行
面包屑放在 header 下方。
好,现在终于开始写完整代码。
关于 wrap 类:max-width:1240px;margin:0 auto;padding:0 18px。
Hero 部分用 wrap 包起来。
让我把布局定下来:
html
复制
下载
运行
嗯,侧边栏跟所有东西并排,放在右边其实也还行。
不过这样侧边栏会变得很长。要么让侧边栏 sticky 吧?但内容太长,可能也没什么用。干脆就让侧边栏正常放在那里。
其实也可以把侧边栏挪一下,让它跟 #manga 和 #anime 并排,然后 #rank 之类的再占满整行。但那样 DOM 结构就复杂了。还是保持简单吧:两栏布局,侧边栏正常排下去。
行。
.grid-works 的响应式:repeat(auto-fill,minmax(170px,1fr))。
先定卡片尺寸:aspect-ratio 3/4.2,大概就是 5/7。
好了,开始写最终答案。
每张卡片的模态框数据我都加上。
现在开始生成。
评论区头像:
088-avatar.webp(浦原喜助的粉丝)
021-avatar.webp
045-avatar.webp
073-avatar.webp
036-avatar.webp
好的。
侧边栏的推荐列表也用小缩略图。用竖条形状的——复用 manga 图?不行,数字必须全局唯一。我再加点:
058-tv.webp
096-movie.webp
013-anime.webp
这几个已经在……我确认一下:017、062、095、043 是 anime;008、071 是 tv;029、084 是 movie。再加 013-anime.webp、058-tv.webp、096-movie.webp——把剩下这几个跟前面冲突的去掉。
完整唯一列表:
banner:066、012、089
manga:023、074、004、038、091、056
anime:017、062、095、043
tv:008、071
movie:029、084
variety:053
avatar:088、021、045、073、036、059
再加上侧边栏:013-anime、058-tv、096-movie——全都不重复。
还有 077-variety?不必要。
总数大概 27 张图。可以。
现在开始写。
注意 HTML 属性里的引号。
好。
对于 data-desc 属性——里面会包含标点符号,没问题。只要避开双引号就行。
写最终版。
另外:hero 横幅图尺寸 1200x675。
我设置一下 hero-feature 的样式:position relative,border-radius 18px,overflow hidden,min-height 380px。
图片:position absolute inset 0,width 100%,height 100%,object-fit cover。
hero-copy:relative z-index 2,加内边距。
加上渐变遮罩。
好。
该写了。
关于 FAQ 的细节/摘要样式。
留言互动区——卡片带头像和引号,再加上标签云提示。
写完了。
另外还要给各分区加上 aria-label。
现在开始产出最终代码。
另外要求