字体大小属性不是像素?

时间:2011-11-04 04:49:10

标签: html css

我正在尝试在现代浏览器中显示旧的HTML2。 (创建不佳)HTML3代码包含字体 HTML元素,其中包含大小属性。文本大小以像素为单位定义,因此size =“14”表示用户希望文本大小为14px。

W3School文档指定size属性的有效值只能是这些“1,2,3,4,5,6,7,+ 1,+ 2,+ 3,+ 4,+ 5,+ 6,+ 7,-1,-2,-3,-4,-5,-6,-7" 。所以看起来字体大小属性单位不是以像素为单位,而是em或者什么?

有没有办法让字体元素以像素为单位显示字体文字大小?

我尝试了以下操作,但它们无法在Safari浏览器中使用:

<font size="14">test</font>    // displays in huge text(its not 14px in font size)
<font size="14px">test</font>  // looks the same as line 1
<font size="14pt">test</font>  // looks the same as line 1
<font size="14em">test</font>  // On Firefox the font size is 14px(correct) but on Safari it looks the same as line 1
<font size="14%">test</font>   // looks the same as line 1

也许如果我尝试更改HTML文件的DTD,它会读取HTML3代码吗?

3 个答案:

答案 0 :(得分:1)

  

有没有办法让字体元素以像素为单位显示字体文字大小?

不,您无法为size中的<font>属性设置像素值。值范围映射到任意未指定的大小,并且您不能指定除这些范围之外的任何内容。

正如Lee的评论所暗示的那样,您可以通过style属性使用内联CSS。 <font>元素支持它,就像其他元素一样。

或者,您知道,只使用真实的样式表

  

也许如果我尝试更改HTML文件的DTD,它会读取HTML2代码吗?

与我的回答不太相关,但HTML 2.0中不存在<font>元素。它只在HTML 3.2中定义(如果你愿意),然后在HTML 4.0和XHTML中弃用,然后从HTML5中完全消失。

更改doctype定义不会更改浏览器分析和显示HTML的方式。标记版本不会影响它的渲染方式,至少到目前为止。

答案 1 :(得分:1)

正如您可能知道的那样,标签已被弃用,因此很有可能您会看到来自各种现代浏览器的更奇怪和更奇怪的行为,因为对于如何呈现它不再有任何“标准”。

由于您似乎无论如何都要进入并更改代码,我强烈建议您切换到CSS,即使它像添加这样的简单样式标记一样简单:

<style type="text/css">
  body {
    font-size: 14px;
  }
</style>

您还可以查看代码中的一些查找和替换,例如将'font'的所有实例替换为'div'或'p'。然后,您可以为该类型的元素创建单一样式规则,然后从那里开始。

<style type="text/css">
  p {
    font-size: 14px;
  }
</style>

对于一个额外的控制程度,而不是仅仅替换所有size =“14”的东西,你可以找到并替换为class =“myclass”,然后设置该特定类的样式。

<style type="text/css">
  p.myclass {
    font-size: 14px;
  }
</style>

现在可能还有一点工作(但不多,我发誓!),但如果重点是让代码在现代浏览器上运行,那么它可能是值得的。我不认为在这种情况下改变DTD也会有所帮助。查看此论坛http://www.sitepoint.com/forums/showthread.php?607459-Can-t-change-font-using-Font-tag了解详情。

答案 2 :(得分:0)

正如您所提到的,w3schools声明size属性已弃用且不再受支持。它只支持一个数值,所以试图破解px,em等不会产生任何结果。

推荐的方法是使用CSS(以及现代/支持的HTML元素,例如段落或div)。以某种方式使用CSS是您能够达到预期效果的唯一方式。

<p style="font-size:14px">test</p>