我有确切的字符串:123 ..
我想知道它的长度是什么,好像它是在Html页面上(作为SPAN)
font-name:arial
font-size:16px;
我做了一个实验:
http://jsbin.com/axezib/edit#preview
所以
<span style="font-family:arial;border:solid 1px red;display:inline-block;font-size:16px;">123..</span>
呈现为:
及其属性:
当然 *
{
填充:0像素;边缘:0像素;
}
你可以看到它的宽度是35,高度= 19. (让我们忽略边界…)
但是我有这个代码应该(或不)告诉我相同的结果:
void Main( )
{
string input = "123..";
FontFamily fontFamily = new FontFamily("Arial");
Font testFont = new Font( fontFamily, 16, FontStyle.Regular, GraphicsUnit.Pixel);
Size s = TextRenderer.MeasureText(input, testFont);
Console.WriteLine("Size: height " + s.Height + ", width " + s.Width);
Console.ReadLine();
}
但结果是:
我在这里想念的是什么?
谢谢 :-)
编辑
在re-editing之后通过添加CSS RESET的html代码 – 代码在所有4个浏览器中完全呈现.
所以问题仍然存在 – 为什么c#没有给我显示相同的结果
解决方法:
看起来好像是在尝试比较使用默认Windows字体渲染(以及系统上默认的任何消除锯齿,ClearType设置等)渲染的字符串的大小,并将其与Windows上的浏览器进行的渲染进行比较.或者可能没有自己的字体渲染引擎.据我所知,Gecko(Firefox)和Webkit(Chrome,Safari)实现了自己的字体渲染,因此可以在不同平台上一致地呈现HTML / CSS.
所以基本上,即使你可以让你的C#代码同意,结果也是毫无意义的,因为你在比较苹果和橘子!请参阅this article中的“当前实施”.