前一段时间,在Rat’s Blog上看到了小夜大佬Directory Lister美化修改版,但是发现网上下载下来的美化版都和小夜大佬的字体不一样。
自己安装好后是这样的
但是VPSMM的是这样的:
明显小夜大佬的下载站好看多了。是经过优化的字体。
那要如何修改呢。之前试着直接导入小夜大佬下载站的样式表, 但是还是没变化。今天重新试了一下,原来是缺少了Source code pro字体库。
这样的话我们需要将这个字体库加到自己的样式表并调用它。
修改过程
对比样式表
将小夜大佬的样式表和自己的样式表对比一下后发现。自己的样式表有多处用到不同的font-family
。
打开css样式表,搜索font-family
,发现小夜的样式表里面只有两处font-family
。
一处是第5行开始的body样式:
body {
padding: 70px 0 0;
font-size: 16px;
font-family: 'Source Code Pro',Lato,Helvetica,Arial,sans-serif;
}
另一处是第105行的file-info .sha1-hash
样式
#file-info .sha1-hash {
font-family: 'Cutive Mono', monospace, serif;
}
但是实际上控制全局的字体样式只有body那个。
另一方面搜索我从网上下载到的小夜优化版本的CSS样式表。一共找到四处。
分别是23行,43行,49行,107行的样式表。
#page-navbar .navbar-text {
display: block;
float: left;
font-family: 'Cutive Mono', monospace, serif;
max-width: 80%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
#directory-list-header {
font-family: 'Cutive Mono', monospace, serif;
font-weight: bold;
padding: 10px 15px;
}
#directory-listing {
font-family: 'Cutive Mono', monospace, serif;
}
#file-info .sha1-hash {
font-family: 'Cutive Mono', monospace, serif;
}
所以这个版本的样式表在每个地方都定义了字体唯独body没有,而小夜优化版的样式表在body直接定义了。
修改样式表
知道了样式表的区别后,就对样式表进行修改。
先在body样式里面插入Source Code Pro
字体。
body {
padding: 70px 0 0;
font-size: 16px;
font-family: 'Source Code Pro',Lato,Helvetica,Arial,sans-serif;
}
接着将其他地方的font-family
注释或者删除。比如:23行,43行,49行的样式里面的font-family
那一行,这些地方影响到Source Code Pro
字体的生效。
css的注释方法是前后添加
/* 要注释的代码 */
加入Source Code Pro
字体
小夜的是直接调用网上的字体库
<link href="//fonts.loli.net/css?family=Source+Code+Pro" rel="stylesheet">
你也可以这样,直接将这个代码加入到主题下面的主页文件index.php
,比如我用的版本是/resources/themes/vpsmm/index.php
,但是如果怕以后字体库失效的话可以把这个字体本地化(下载到自己的服务器)。
字体本地化
打开Source Code Pro的样式表 可以看到样式表内容
/* latin-ext */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(https://gstatic.loli.net/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(https://gstatic.loli.net/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
其中有两个字体,我们可以将其下载下来。 - https://gstatic.loli.net/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 - https://gstatic.loli.net/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2
这样会得到这两个字体
- HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2
- HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 字体的名字如果觉得太长要改成自己喜欢的名字也可以。这次我选择不修改。
将这两个字体文件传到服务器上。位置可以自己定。这次我是传到了/resources/themes/vpsmm/Source_Code_Pro里面,Source_Code_Pro是自己新建的文件夹。
这样我们可以通过调用这两个本地的字体来实现字体的样式。
在/resources/themes/vpsmm/css下面新建一个样式表命名为
Source_Code_Pro.css
内容为
/* latin-ext */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(/resources/themes/vpsmm/Source_Code_Pro/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(/resources/themes/vpsmm/Source_Code_Pro/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
其中url部分是刚刚上传的字体的路径,如果不一样请修改。
最后在主题下面的主页文件index.php
(我的版本是在/resources/themes/vpsmm/index.php
)里面的<head>
标签内调用我们刚刚新建的包含这两个字体文件的样式表Source_Code_Pro.css
,其实就是将前面的 加入Source Code Pro
字体那个步骤里面的路径改为自己的本地样式表,而不是调用loli字体库的样式表。
<head>
标签内的<!-- STYLES -->
的最后加入
<link href="/resources/themes/vpsmm/css/Source_Code_Pro.css" rel="stylesheet">
这样就完成了。
对比
最后对比一下刚开始的截图
对比
是不是好看了许多。