使用javascript将自动生成的HTML中的字体大小从px更改为em

使用javascript将自动生成的HTML中的字体大小从px更改为em,html,css,font-size,em,Html,Css,Font Size,Em,我有一个从web服务生成的HTML,我无法控制。HTML的字体大小为px和pt。我的要求是将所有字体大小更改为em 这就是我所尝试的: 我尝试使用以下方式访问所有标记: document.getElementByTagName('font').style.fontSize; 然而,它返回了null,尽管我在HTML中有许多字体标记 我阅读的所有相关资料都假设我们可以控制CSS或HTML,因此不适用于我的问题 简而言之,我想解析HTML并找到所有内联样式(字体大小),然后从任何其他类型更改为em

我有一个从web服务生成的
HTML
,我无法控制。
HTML
的字体大小为
px
pt
。我的要求是将所有字体大小更改为
em

这就是我所尝试的:

我尝试使用以下方式访问所有
标记:

document.getElementByTagName('font').style.fontSize;
然而,它返回了
null
,尽管我在
HTML
中有许多字体标记

我阅读的所有相关资料都假设我们可以控制
CSS
HTML
,因此不适用于我的问题


简而言之,我想解析
HTML
并找到所有内联样式(字体大小),然后从任何其他类型更改为
em

尝试
document.getElementsByTagName
……如果样式是HTML的,那么它就是内联样式。没有CSS向导可以覆盖它。您需要做的是直接修改内联样式

以下是您要查找的内容:

var elem = document.getElementById("elementID");
elem.setAttribute("style", "font-size: 2em");

你会在IE中遇到关于
setAttribute
的问题,所以如果这是一个问题。。。你需要写一个后备方案来处理它

您的方法的问题是您试图更改整个节点列表的样式

当调用getElementsByTagName时,不会返回任何元素。您需要迭代节点中的元素,然后使用
elememt.style.fontSize=size


这是一个小提琴,它实现了

你是否尝试过像这样的css,你的父标记在字体标记中#父字体{font size:1em!重要;}啊。抱歉,这就是抛出空值的原因。谢谢…我得到了那个位并修改了我的代码。它现在工作正常,就像你创建的小提琴一样。但是,是否建议使用这种px到em转换?我不确定,正在寻找替代方法。通常建议使用em或百分比。在px中设置字体大小时可能会遇到一些问题。一种非常流行的方法是将文档正文中的字体大小设置为62.5%,然后使用em调节特定元素的字体大小。您可以尝试的一种方法是剥离内联样式,然后注入您自己的自定义样式表。这样您就可以控制页面上的所有样式。