这是你在那里遇到的一个有趣的困境。在我的脑海中,我唯一能想到的就是在标题中添加一个新标签,在该标题中你的字体大小用 !important 声明。例如,在您的头部标签中:
<style type="text/css" media="print">
.printfont {
font-size: 16px !important;
}
</style>
这将确保新的字体大小优先。
以下是一个非常简单的示例,说明如何使用 javascript 完成此操作
<script type="text/javascript">
var inlineMediaStyle = null;
function changeMediaStyle ()
{
var head = document.getElementsByTagName('head')[0];
var newStyle = document.createElement('style');
newStyle.setAttribute('type', 'text/css');
newStyle.setAttribute('media', 'print');
newStyle.appendChild(document.createTextNode('.printFont { font-size: 16px !important;}'));
if (inlineMediaStyle != null)
{
head.replaceChild(newStyle, inlineMediaStyle)
}
else
{
head.appendChild(newStyle);
}
inlineMediaStyle = newStyle;
}
</script>
只需确保您将 onchange="changeMediaStyle()" 作为下拉列表中的属性。此外,作为我的示例中的免责声明,我没有考虑内存泄漏等问题,因此您必须自己解决这些问题。
至于您的替代问题,据我所知,没有任何方法可以声明/使用本质上是 CSS 变量的内容。但是,目前有一个建议:http ://disruptive-innovations.com/zoo/cssvariables/