郁闷死了,用System.Text.Encoding.Default.GetByteCount这个函数测得一样长度的若干个字符串(都等于105),在页面上显示出来的长度居然不一样!页面代码:
<html 
<head></head>
<body>
     <ol style="font-size:15px;">
         <li>蛋清蛋白酶解物清除DPPH自由基活性研究..........................................郑淋,林松毅,刘静波,等(1)</li>                               
         <li>五种天然抗氧化剂Rancimat法对食用油的抗氧化效果评估................................陆洋,杨波涛,陈凤香(3)</li>                               
         <li>石柑子不同溶剂提取物及其总蒽醌的抗氧化活性研究..................................尹文清,张岩,曾立,等(7)</li>                               
         <li>蛋黄卵磷脂对受试小鼠改善记忆效果的实验研究..................................刘静波,宫新统,林松毅,等(9)</li>                               
         <li>大豆混合油酶法脱磷技术的研究...............................................屈岩峰,于殿宇,罗淑年,等(11)</li>                               
         <li>利用南瓜粉制备水溶性膳食纤维的工艺研究.........................................张英春,杨鑫,张华,等(14)</li>                               
         <li>冻干技术对米饭品质特性影响的研究.............................................李建芳,邬全喜,周枫,等(16)</li>                               
         <li>应用二氧化氯保鲜烧鸡的研究.....................................................................杨玉红(18)</li>                               
         <li>复合果蔬酸乳汁的研制...................................................................吴红艳,杨桂玲(20)</li>                               
     </ol>
</body>
</html>如果把那个 style="font-size:15px;"去掉或者把15px修改成14px,就可以了,这是为啥啊?

解决方案 »

  1.   

    <ol style="font-size:15px;font-family:宋体"> 
    我觉得应该是.和英文的问题,特别是..是2个byte,按理来说应该是一个汉字的宽度,但实际上不是如此。
      

  2.   

    我用这个,完全整齐:
      <ol style="font-size:12px;font-family:宋体"> 
      

  3.   

    这样的,就1楼那几行字,我在一个页面里,去掉font-size=15,或者改成14,也可以对齐的,但是放在另外一个环境(有父级div)下,就必须换个像素数字!而且,有个环境下,换了好几个像素都不行,晕死了。根本上说,为什么要等于12呢?为什么15对不齐呢?很想知道这个。
      

  4.   

    font-size:16px中大小为偶数时就对齐,
    应该是汉字为两个长度,大小为奇数就不一致了
      

  5.   

    font-size:16px中大小为偶数时就对齐, 
    应该是汉字为两个长度,大小为奇数就不一致了
    =================
    对。
      

  6.   

    这跟宽度有什么关系?如果你修改桌面系统的默认字体、浏览器的默认文字大小、css的默认设置、换一种字体显示、换一种浏览器.....字的默认显示就变了。如果认为跟宽度有关系,你就被那些只懂15年前MSDOS下开发软件的人的陈腐恶习给忽悠了。记住,跟宽度没有关系。甚至同一个字体中每一个字符的宽度都可能不同!
      

  7.   

    csdn有一个很蠢的习惯重演了两次,就是要把页面的字体调整为那种所有英文字符都等宽的、恶心的字体,他的目的大概就是让中文等于两个英文字符宽。好恶心的字体选择,稍微懂一点英文印刷体的人看到那些瘦的和肥的字符使用同样的宽度就觉得恶心。。
      

  8.   

    呵呵,但是我们排版的时候,不是总是要弄整齐一些么?回上边两位,偶数像素,在没有父级div的时候,似乎能行,但是放在其他父级div下,又不行了,持续测试中...
      

  9.   

    哦,也管用的,把文字放在<a></a>中间就不管用了,呵呵。
      

  10.   

    结帖说明:wuyq11的回答是完全正确的:
    font-size:16px中大小为偶数时就对齐, 
    应该是汉字为两个长度,大小为奇数就不一致了 不过,考虑到此前cpp2017积极帮助分析,但是在之后给出了结果,给的分数少一些。分别给30、20分。sp1234的说法,隐隐约约有所触动,但是,还不能十分理解,而且对解决我的问题效果不大,先记在脑子里了。
      

  11.   

    算显示的宽度还是MeasureString准一点。H和i显示的宽度是不一样的,但都是一个字节