惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AWS News Blog
AWS News Blog
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
S
Secure Thoughts
L
LINUX DO - 最新话题
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Announcements
Recent Announcements
S
Schneier on Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cyberwarzone
Cyberwarzone
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Vulnerabilities – Threatpost
T
Tor Project blog
GbyAI
GbyAI
B
Blog
博客园 - 司徒正美
博客园 - 叶小钗
Recorded Future
Recorded Future
F
Fortinet All Blogs
Spread Privacy
Spread Privacy
IT之家
IT之家
Forbes - Security
Forbes - Security
L
Lohrmann on Cybersecurity
有赞技术团队
有赞技术团队
博客园 - 聂微东
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Blog of Author Tim Ferriss
N
News and Events Feed by Topic
O
OpenAI News
Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
TaoSecurity Blog
TaoSecurity Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

澄沨的漫游茶记

岁暮杂记 在 KOReader 上显示直排文本 虎落平阳:TNO 美国罗伯特·F·肯尼迪线·前篇 烟火·乙巳 蜀都行纪 实习日 事故小记 烟火·甲辰 藏地行纪 元旦杂记 浴火重生:TNO 东方红西北国防阵线党权线·后篇 太阳旗之下:TNO 东方红西北国防阵线党权线·前篇 尚在人间:TNO 乌克兰-苏维埃社会主义共和国线 上海电信 SDN 网关全局域网皆可收看 IPTV 的实现 论 AList 的滥用:多平台串联搭建个人影音-番剧流媒体服务 俄罗斯已逝:TNO 俄罗斯科米-神俄线·后篇 紫日高悬:TNO 俄罗斯科米-神俄线·前篇 The Pure WINDOWS Project: 使用 Windows Sandbox 隔离腾讯系软件的笔记 廣東手艺人:TNO 广东国索尼-长江实业线 使用 PaaS 服务部署 umami 统计工具的笔记 柏林春晓:TNO 德国施佩尔左线 闲话 COMICUP 与敝站 解决小米手机在 fastboot 模式下不被 Windows 识别的问题 贺正·癸卯 MIUI 下观看 Netflix 等流媒体时 Widevine DRM L1 认证失效之解决 崇明骑行纪事·合 磊哥小传 崇明骑行纪事·转 让 Hyper-V 虚拟机支持调用 USB 摄像头 崇明骑行纪事·起承 炎夏小憩 飞哥小传 さよなら、WordPress 使用 Cloudflare Workers 加速甲骨文存储桶 博客流浪纪事 moe-counter-cf:将萌萌计数器部署到 Cloudflare Workers 烟火·迪士尼 红十字救护员培训小记 迁移到了狗云 探索优雅纯粹的追番体验:蜜柑计划 + Resilio Sync Moe-counter: 给网站装上多种风格可选的萌萌计数器 疫情,在下的朋友圈拾遗 Postcrossing 初探小记 解决 Github 同步复刻上游仓库时冲突的问题 使用甲骨文免费云服务器搭建 frp 内网穿透工具的笔记 「在下」的两周年 The Pure WINDOWS Project: Hyper-V 虚拟机使用笔记 The Pure MIUI Project: 小米 10 刷机笔记 烟火·壬寅 贝恩小传「大盛り」 非法侵入住宅罪之浅究 碧蓝航线舰娘原型考据「铁血驱逐篇」 贰拾 火警纪事 观 EDG 夺冠有感 华硕路由器实现远程唤醒局域网设备的笔记 军训随笔 夏日蓝调 在 Wordpress 博客里创建彩色标签云页面的笔记 贝恩小传 迁移到了 Bandwagon Host 杂诗二首 乡影随摄 从刑法的报复主义论中国刑法的发展 漫谈二次元的「破圈」 浅谈「FBI WARNING」 とある魔都の ACGN 巡礼目録 桜色 在 WordPress 上添加 moc3 Live2d 看板娘的超简单方法 COVID-19 疫苗接种全纪录 Steam 转区小记 元旦 更新主题为 Sakurairo 华为 HarmonyOS / EMUI 安装 GMS 谷歌框架的笔记 下载没有下载权限的钉钉直播回放的笔记 Re:从零开始的 Windows 简明优化指南 Re:从零开始的计算机使用指南 使用 ADB 工具箱卸载手机预装应用 基于宝塔面板的 Google Drive 百宝箱搭建笔记 The Story of the Snake | 蛇纪事 参议院纪事 箱轮纪事
来给 WordPress 添加一个书单页面吧
澄沨 · 2021-05-29 · via 澄沨的漫游茶记

自从建立博客以来,在下一直喜欢拜访其他大佬的博客,发现很多博客都有书单页面,令在下也很是动心。基于在下贫弱不堪的前端水平,在下开始寻找能够给 WordPress 博客添加一个书单页面的一条龙教程或插件,可惜既没有找到满意的教程,也没有能用的插件,遂决定自己动手制作。

说到书单页面,给在下留下非常深刻印象的还属 蝉时雨 大佬的作品,其书籍以立体的形式展示而且还带有旋转效果。于是在下决定也给自己来一个这样的书单,然而对于一个发量危急的法学生来说,想实现这个效果可并没有那么简单。好在有其他大佬已经在 CSDN 分享了立体书籍旋转效果的代码,只要拿来作适当修改便是。

模板制作

接下来就开始书单模板的制作了,首先在 Wordpress 主题根目录下把 page.php 复制一份,重命名为 page-book.php ,并把开头的注释改为如下所示。

1
2
3



这样一来,就能在后台的新建页面界面的模板选项中看到书单模板了。 继续在 page-book.php 的注释后添加如下样式代码。 当然可以依照个人需要进行微调。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<style>
.group:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

* html .group {
height: 1%;
}

*:first-child+html .group {
min-height: 1px;
}

body {
line-height: 1.9em;
background-color: #0b3065;
background-size: cover;
font-family: arial,
sans-serif;
}

.container {
max-width: 60em;
margin: 0 auto;
padding: 0 2em;
}

.text.container {
max-width: 38em;
text-align: center;
margin: 50px auto 100px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}

a {
color: #da9803;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

h.main-title {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #fff;
font-weight: normal;
margin: 1.25em;
text-align: center;
font-size: 2.75em;
letter-spacing: -1px;
}

p {
margin-bottom: 1em;
font-size: 1.25em;
}

hr {
margin: 2em 0;
}

.book-container {
width: 100%;
margin: 0 auto;
display: block;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}

.book {
z-index: 5;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
-webkit-transition: 0.75s;
-moz-transition: 0.75s;
transition: 0.75s;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transform-origin: 33% 0;
-moz-transform-origin: 33% 0;
transform-origin: 33% 0;
}

.book:after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 3px;
width: 7px;
background: url(翻页转角处的图片) repeat-y;
z-index: 20;
-webkit-transform: translateZ(1px);
}

.book:hover {
-webkit-transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
-moz-transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
}

.book-cover {
position: relative;
z-index: 10;
}

.book-cover img {
vertical-align: bottom;
max-width: 100%;
height: auto;
}

.book-spine {
position: absolute;
color: #fff;
bottom: 0;
top: 0;
width: 10%;
z-index: 5;
overflow: hidden;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
background: url(书的侧面图片) -64px 0 no-repeat;
background-size: auto 100%;
-webkit-transform: rotateY(-90deg) translateX(-100%);
-moz-transform: rotateY(-90deg) translateX(-100%);
transform: rotateY(-90deg) translateX(-100%);
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}

.book-spine h {
display: block;
width: 100%;
text-align: left;
color: #fff;
position: absolute;
top: 0;
left: 19%;
text-indent: 43px;
text-transform: uppercase;
font-family: "league_gothic_condensedRg", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 2em;
opacity: 0.75;
font-weight: normal;
-webkit-font-smoothing: antialiased;
-webkit-transform: rotateZ(90deg);
-moz-transform: rotateZ(90deg);
transform: rotateZ(90deg);
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}

.book-spine:before {
display: block;
content: "";
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.3);
}
</style>

模板使用

一切就绪之后就可以使用模板了,只要在模板当中输入以下 HTML 代码,就能使书籍的封面图获得立体旋转效果了。

1
2
3
4
5
6
7
8
9
10
11
12
<div class="container group" valign="top">
<a class="book-container">
<div class="book">
<div class="book-cover">
<img src="书籍封面图" alt="" />
</div>
<div class="book-spine">
<h>书脊文字</h>
</div>
</div>
</a>
</div>

此时可以结合使用 <div> 块或是表格来进行排版,添加更多的书籍信息和其他元素,最终打造出书单页面。

虽然这个模板做得十分笨拙,立体旋转效果也不如蝉时雨大佬的书单精致,且存在很多可以优化的地方(例如可以把那一大块 HTML 代码简化成短代码等等),但要比简单粗暴直接放表格陈列好多了。况且也是自己捣鼓的东西,对于在下这个伪程序宅,还是有不小的成就感。