
7折
减价出售
¥799
可变字体(Variable Fonts)是OpenType 1.8规范引入的革命性技术,它将字体的多个变体(如不同字重、字宽、斜度)整合到单个文件中。这种技术通过设计轴(Design Axes)系统实现动态调整,为WordPress网站带来前所未有的排版灵活性。
在主题的functions.php
中注册可变字体:
function register_variable_fonts() {
wp_register_style('variable-fonts', get_template_directory_uri() . '/fonts/variable-fonts.css');
wp_enqueue_style('variable-fonts');
}
add_action('wp_enqueue_scripts', 'register_variable_fonts');
创建variable-fonts.css
文件:
@font-face {
font-family: 'Inter Var';
src: url('fonts/Inter.var.woff2') format('woff2-variations');
font-weight: 100 900;
font-style: oblique 0deg 10deg;
font-display: swap;
}
为区块编辑器添加可变字体支持:
add_theme_support('editor-font-sizes', [
[
'name' => '细体',
'slug' => 'light',
'weight' => 300
],
[
'name' => '常规',
'slug' => 'regular',
'weight' => 400
],
[
'name' => '粗体',
'slug' => 'bold',
'weight' => 700
]
]);
:root {
--font-weight: 400;
--font-width: 100;
--font-slant: 0;
}
body {
font-family: 'Inter Var', sans-serif;
font-variation-settings:
'wght' var(--font-weight),
'wdth' var(--font-width),
'slnt' var(--font-slant);
}
@media (max-width: 768px) {
:root {
--font-width: 92;
--font-weight: 350;
}
}
// 根据滚动深度动态调整字重
window.addEventListener('scroll', function() {
const scrollPercent = window.scrollY / document.body.scrollHeight;
const weight = 400 + Math.floor(scrollPercent * 300);
document.documentElement.style.setProperty('--font-weight', weight);
});
// 鼠标交互效果
document.querySelectorAll('.hover-effect').forEach(item => {
item.addEventListener('mouseenter', () => {
item.style.fontVariationSettings = "'wght' 700, 'wdth' 105";
});
item.addEventListener('mouseleave', () => {
item.style.fontVariationSettings = "'wght' 400, 'wdth' 100";
});
});
// 预加载关键字体
function preload_variable_fonts() {
echo '<link href="/fonts/Inter.var.woff2" as="font" type="font/woff2">';
}
add_action('wp_head', 'preload_variable_fonts');
使用pyftsubset
工具创建优化版本:
pyftsubset Inter.var.woff2 --text-file=charset.txt --flavor=woff2 --output-file=Inter.var.optimized.woff2
/* 基础尺寸 */
:root {
--min-font-size: 16px;
--max-font-size: 20px;
--min-screen-width: 320px;
--max-screen-width: 1200px;
}
body {
font-size: clamp(
var(--min-font-size),
calc(var(--min-font-size) + (var(--max-font-size) - var(--min-font-size)) *
(100vw - var(--min-screen-width)) /
(var(--max-screen-width) - var(--min-screen-width))),
var(--max-font-size)
);
font-variation-settings:
'wght' clamp(300, calc(300 + (400 - 300) *
(100vw - var(--min-screen-width)) /
(var(--max-screen-width) - var(--min-screen-width))), 400);
}
@media (prefers-color-scheme: dark) {
:root {
--font-weight: 350; /* 降低字重提高可读性 */
--font-width: 98; /* 略微收缩字宽 */
}
}
创建字体控制面板:
class Variable_Fonts_Control {
public function __construct() {
add_action('customize_register', [$this, 'customize_register']);
add_action('wp_head', [$this, 'output_custom_styles']);
}
public function customize_register($wp_customize) {
$wp_customize->add_section('variable_fonts', [
'title' => __('可变字体', 'textdomain'),
'priority' => 30
]);
$wp_customize->add_setting('font_weight', [
'default' => 400,
'transport' => 'postMessage'
]);
$wp_customize->add_control(new WP_Customize_Range_Control($wp_customize, 'font_weight', [
'label' => __('字重', 'textdomain'),
'section' => 'variable_fonts',
'input_attrs' => [
'min' => 100,
'max' => 900,
'step' => 1
]
]));
}
public function output_custom_styles() {
echo '<style>
:root {
--font-weight: ' . get_theme_mod('font_weight', 400) . ';
}
</style>';
}
}
new Variable_Fonts_Control();
// 检测可变字体支持
if (CSS.supports('font-variation-settings', 'wght 400')) {
document.documentElement.classList.add('variable-fonts-supported');
} else {
document.documentElement.classList.add('variable-fonts-not-supported');
// 加载传统字体备用
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/fonts/static-fonts.css';
document.head.appendChild(link);
}
.variable-fonts-not-supported body {
font-family: 'Inter Static', sans-serif;
font-weight: 400;
}
.variable-fonts-not-supported .bold-text {
font-weight: 700;
}
.article-body {
font-variation-settings:
'wght' 420, /* 略高于常规提高可读性 */
'wdth' 100;
}
.article-body h2 {
font-variation-settings:
'wght' 650,
'wdth' 103; /* 标题略微扩展 */
}
.article-body blockquote {
font-variation-settings:
'wght' 380,
'wdth' 98, /* 引用略微收缩 */
'slnt' -10; /* 轻微斜体效果 */
}
.product-price {
font-variation-settings:
'wght' 700,
'wdth' 92; /* 紧缩显示数字 */
}
.product-title {
font-variation-settings:
'wght' 600,
'wdth' 102; /* 扩展标题吸引注意力 */
}
.discounted-price {
font-variation-settings:
'wght' 800,
'wdth' 85, /* 更紧缩突出折扣 */
'slnt' -5; /* 轻微倾斜表示特殊状态 */
}
// 监控字体加载性能
const font = new FontFace('Inter Var', 'url(/fonts/Inter.var.woff2)');
font.load().then(loadedFont => {
document.fonts.add(loadedFont);
performance.mark('fontLoaded');
// 发送性能数据到分析平台
const loadTime = performance.now() - performance.timing.navigationStart;
ga('send', 'event', 'Font', 'Load', 'Variable Font', loadTime);
}).catch(error => {
console.error('Font loading failed:', error);
});
由于可变字体将所有样式合并到一个文件中,因此它们显着减少了向服务器发出的请求数量。这可以缩短加载时间,这对于用户体验和搜索引擎优化至关重要。例如,像 Inter 这样的可变字体无需加载各种粗细和样式的多个文件,而是将所有这些数据保存到一个文件中,从而缩短加载时间并减少带宽。使用多种字体样式(如标题、正文、粗体、斜体)的网站可以使用可变字体将字体文件总大小减少 50-80%,而不是加载单个字体文件。
通过系统化的可变字体集成,WordPress网站可以实现更精细的排版控制、更好的性能表现和更优秀的用户体验。这种技术特别适合需要高度品牌一致性和设计控制的项目,为现代网页设计开辟了新的可能性。
减价出售
减价出售
减价出售
减价出售
电话咨询
1855-626-3292
微信咨询