我正在为他们构建一个Wordpress主题。在customizer中,我为用户提供了使用rem单位来计算字体大小的功能。我为三种不同的媒体查询创建了三种不同的设置,用于控制html或:root元素上的字体大小。
当我在(1)样式表或(2)wp\\u add\\u inline\\u样式中添加:root或html的代码时,通过浏览器计算样式会花费太多时间。浏览器首先呈现所有文本,就像rem大小为16px一样,然后所有字体缩放到正确的大小。这看起来很糟糕。我只在iOS上的Safari上遇到过这种情况。(这是一个常见问题吗?我在互联网上找不到其他人有这种经历……)
此问题的唯一解决方案是在wp_head()
行动这样,样式加载得很早,浏览器可以正确计算它们。在这个位置添加CSS可以极大地改善用户体验。
Themeforest要求不允许内联css,背景图像除外。允许Wp\\U add\\U inline\\U样式。是否可以添加<style>
以这样的方式标记到<head
&燃气轮机;具有wp_add_inline_style
, 它是之前的第一个元素wp_head
或中的第一个元素wp_head
?
谢谢
最合适的回答,由SO网友:Antti Koskinen 整理而成
是的,这应该是可行的。只需将内联样式与挂接到wp_enqueue_scripts
并且优先级设置为0(假设其他样式的加载时间较晚/优先级较低/数字较大)。您还需要注册一个虚拟句柄,将内联样式附加到该句柄,以便在它们之前不会加载其他样式。
function my_pre_theme_assets() {
wp_register_style( \'dummy-handle\', false );
wp_enqueue_style( \'dummy-handle\' );
wp_add_inline_style( \'dummy-handle\', \'* { color: red; }\' );
}
add_action( \'wp_enqueue_scripts\', \'my_pre_theme_assets\', 0 );
这里看到了虚拟手柄的想法,
wp_add_inline_script without dependency