我的问题与Convert font tag (size attribute) to css
几乎是一个重复的问题我看到了2014年的答案。因此,我不确定是否会继续在那里提问或提出这个新问题。但是我遇到了同样的问题,并且想知道自那以后是否有解决方案,除了上面链接中的德文的答案。
在Java应用程序中,我试图解析一些HTML代码行,然后以编程方式将某些字体值设置为CSS。
我有一个简单的字体输出,其文本字体大小设置为6。
<font id="test" face="Calibri" size="6" color="#000000">Hello World</font>
它显示的很好,但是如上所述,我试图解析出脸部,大小和颜色属性,并将其设置为CSS
<style>
#test {
color: #000000;
font-family: Calibri, Times, serif;
font-size: 6px;
}
</style>
显示此CSS文本时,“ Hello World”文本要小得多。
我了解CSS中的字体大小单位为px,但我无法在线找到进行转换的HTML字体大小属性是什么单位。
HTML字体大小属性的单位是什么?所以我知道如何以编程方式解析它并创建适当的CSS值?
答案 0 :(得分:1)
这里有一个谜,因为今天没有理智的Java应用程序可以支持这一点,并且今天没有人编写HTML甚至不知道这个标签曾经存在过……这已经有二十多年了:没HTML标准自1999年发布的HTML 4.01开始,是<font>
元素。
最后一个允许<font>
元素的HTML标准是HTML 3.2,因此让我们参考一下1997年的https://godoc.org/github.com/oracle/oci-go-sdk/core#LaunchInstanceRequest:
字体大小是由用户代理定义的标量范围给出的,没有直接映射到点大小等。
很不幸,您完全不走运。在size
元素具有HTML3.2 <font>
属性的情况下,实际上无法确定字体“应”使用的实际点或像素大小。当HTML 3.2仍然存在时,您也许能够找出特定操作系统上特定浏览器的特定版本用来支持,但是这些信息对于任何其他OS,任何其他浏览器甚至任何其他版本都将是无用的。用于相同操作系统上的相同浏览器。
这是样式属性完全从HTML规范中删除的主要原因之一,而样式指令几乎(几乎)留给CSS处理。
说了这么多:您正在使用什么疯狂的Java代码,可以使用<font>
元素而不会出现错误,或者至少可以警告二十年来不存在的标记? >
答案 1 :(得分:-1)
我对Java相当生疏,而且我不知道您是如何解析/声明类属性的,因此这可能不适用...可能会让您顺利通过
//Make an array with the sizes and their equivalents. Probably a more elegant way to accomplish this
var sizes = [['6', '2em'], ['7', '3em'], /*etc. Follow pattern from example you provided*/]
Document myDoc = parse(myHtml);
Element myEl = myDoc.select("font").first();
String mySize = myEl.attr("size");
String fontSize = "";
//Also not so elegant
for(int i = 0; i < sizes.length; i++){
if(mySize.equals(sizes[i][0])){
fontSize = sizes[i][1];
}
}