• ie对行高line-height的诡异解释


    切 游戏页面真地是要求太精细了,做按钮的时候我犯了一个错误,居然用span的内联元素的行高和padding来控制,虽然有很多好处,但是IE对 line-height的解释导致按钮经常下边会缺一小部分,也就是说,实际上居中的文本距离顶部和底部的距离会差2个像素左右,一般情况看不出问题,但 在精细的场合就没办法了。所以最好用块元素的PADDING来做按钮,而且高度最好为偶数值


    先写个height、line-height都为25px,背景为红色的元素,设置文字为12px。然后量下,文字上面是6像素,文字下面是8像 素。。同时增加或者减少height、line-height 1px发现如果当前值是奇数那1px会加到文字和底部空间里而减少时减掉的是文字和顶部空间的1px(加下减上);为偶数时刚好相反:加上减下。当我们给 文字加下划线的时候发现文字的垂直位置并没变,这能说明什么呢?还不太肯定,继续同时减小heighe、line-height直到一个合适的 值:14px,这时候我们可以看到文字和下划线都是完整的,继续减小1px。这时IE已经不按我们刚才发现的规矩办事了,文字上面被截去1px,这样看来 14px应该是IE认为的一个临界点,此时整体高低减去文字高度刚好为3px。会不会?。。。因为这时文字是顶这上边界的,我们把文字增加到2行,发现了 吧,第二行的文字不是顶这第一行的下划线的,而是有1px的距离。3px果然是下划线的高度。
    其实这里还有一点特殊的地方就是如果我们一开始把height、line-height都设为30px那这时2px会变为3px。这个可以用我们上面得出 的“偶数情况加上减下的结论”解释:heighe、line-height同为30px的时候上下空白区域高度差是3px,然后height、line- height同时加1px(就是31px),这1px应该是加到上部空间里,所以3pxbug会变成2pxbug。
    IE6-IE8都有这个问题,firefox,Opera,Safari也都存在这个问题,


    <div style="height:25px;line-height:25px;background:red;color:#FFFFFF;font- size:12px;">文字字</div>

    文字上面是6像素,文字下面是8像素


    <div style="height:30px;line-height:30px;background:red;color:#FFFFFF;font- size:12px;">文字字</div>

    ie下:文字上面是8像素,文字下面是11像素;firefox,Opera,Safari下:文字上面是9像素,文字下面是10像素

    算一下我们就可以知道,其实没带下划线的12px文字在显示的时候都是11像素。


    有2个相对解决方案;
    方案1、加padding-top:
    <div style="height:22px;line-height:22px; padding-top:3px;background:red;color:#FFFFFF;font-size:12px;">文字 字</div>

    方案2、加overflow:hidden:
    <div style="height:25px;line-height:28px;background:red;color:#FFFFFF;font- size:12px; overflow:hidden">文字字</div>
  • 相关阅读:
    DFS HDU 1518 Square
    输入初始单纯形表后的单纯形程序,线性规划 未写完
    奇数幻方 程序实现 C++,linux系统下的codeblocks写的,估计里面的清屏函数windows下不能被调用
    棋盘切割 DP POJ 1191
    POJ 3716 Cow Bowling 数字三角形 简单DP
    ZOJ 3703 Happy Programming Contest (01背包,稍微加点处理)
    SQL Server 2005 Analysis Services实践(二)
    SPGridView的使用增加自动生成的序列号
    SQL Server 2005 Analysis Services实践(一)
    [转帖]传说中的MOSS葵花宝典Office SharePoint Server 2007 Starter Guide
  • 原文地址:https://www.cnblogs.com/tonykan/p/3293354.html
Copyright © 2020-2023  润新知