使用javascript在飞行中更改字体大小

时间:2011-11-11 19:01:48

标签: javascript

我正在开发一个c#应用程序。我们使用xsl将xml内容转换为html。文件转换为HTML后。我想通过克隆1 2和3来改变字体大小。因此,如果用户点击1字体大小为9pt,则在2 11pt和3上它应该是13pt。我可以用javascript做到这一点吗?是否可以在xsl中添加javascript函数,以便在将文件转换为html时它具有javascript功能? 如果您回答这个问题,请尝试完整解释。提前谢谢。

4 个答案:

答案 0 :(得分:0)

假设您将内容呈现为某种容器(例如跨度),您应该可以执行以下操作:

修改
如果用户能够选择下拉列表的大小或其他内容,请将选项值设置为以磅为单位的实际大小。

changeFontSize = function(size){
    var el = document.getElementById("container");
    if (el){
        el.style.fontSize = size + "pt";
    }
}

答案 1 :(得分:0)

答案 2 :(得分:0)

首先,理论上是的,这是可能的。但是,你需要首先确保一些事情。

  1. 确保您网页上的字体都是相对的。这意味着一切都应该使用100%,150%,1.2em等字体大小,而不是12px,10pt等。
  2. 确保您的脚本是HTML中最后加载的节点,或者更改文本的函数是由正文的onload事件触发的。
  3. 这个过程很简单。您可以创建一个更改body元素字体大小的函数。因为所有其他是相对的,这将影响每个元素。 (例如,将正文字体设置为12px会使任何设置为150%的内容为18px)。

    执行此操作的简单功能可能是这样的:

    function changeFont(sizeInPixels)
    {
        document.body.style.fontSize = sizeInPixels + "px";
    }
    

    然后只需将函数作为事件添加到具有适当参数的按钮/链接中。

答案 3 :(得分:0)

您需要在CDATA中插入JavaScript。否则它只是编写改变身体fontSize样式大小的锚点。

<![CDATA[ 
<script> 
window.onload = function() {

  var fontchange = document.createElement("div");
  var fontchangelink = function(fontsize, desc) {
      var a = document.createElement('a');
      a.href="#";
      a.style.margin = "5px";
      a.onclick = function() { 
        document.body.style.fontSize = fontsize + 'pt';
      };
      a.innerHTML = desc;
      return a;
  };
  fontchange.appendChild(document.createTextNode("Change font size:"));
  fontchange.appendChild(fontchangelink(9, "1"));
  fontchange.appendChild(fontchangelink(11, "2"));
  fontchange.appendChild(fontchangelink(13, "3"));    

  document.body.insertBefore(fontchange, document.body.childNodes[0]);
};
</script> 
]]> 

你可以更好地设计它,但它的外观如下:

Example Output