line-height使文本居中的3像素bug问题

2016-02-19 23:17 28 1 收藏

下面图老师小编跟大家分享line-height使文本居中的3像素bug问题,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

虽然题目这么写,可是这真是bug吗?我觉得不算。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

line-height使文本居中的3像素bug,先查下这3px的底细,怎么查?观察+FW

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

先写个height、line-height都为30px,背景为红色的元素,设置文字为12px。然后量下,果然有3px的bug。同时增加或者减少height、line-height 1px发现如果当前值是奇数那1px会加到文字和底部空间里而减少时减掉的是文字和顶部空间的1px(加下减上);为偶数时刚好相反:加上减下。当我们给文字加下划线的时候发现文字的垂直位置并没变,这能说明什么呢?还不太肯定,继续同时减小heighe、line-height直到一个合适的值:14px,这时候我们可以看到文字和下划线都是完整的,继续减小1px。这时IE已经不按我们刚才发现的规矩办事了,文字上面被截去1px,这样看来14px应该是IE认为的一个临界点,此时整体高低减去文字高度刚好为3px。会不会?。。。因为这时文字是顶这上边界的,我们把文字增加到2行,发现了吧,第二行的文字不是顶这第一行的下划线的,而是有1px的距离。3px果然是下划线的高度。

其实这里还有一点特殊的地方就是如果我们一开始把height、line-height都设为31px那这时3px会变为2px。这个可以用我们上面得出的偶数情况加上减下的结论解释:heighe、line-height同为30px的时候上下空白区域高度差是3px,然后height、line-height同时加1px,这1px应该是加到上部空间里,所以3pxbug会变成2pxbug。

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

来源:http://www.tulaoshi.com/n/20160219/1629573.html

延伸阅读
在一个容器里再定义一个绝对定位的p容器,再在p容器里放需要垂直居中的图片,图片定义相对定位的CSS。 直接上CSS代码: #pic { width:300px; height:300px; background-color:green; border:6px solid #ccc; text-align:center; position:relative; display:table-cell; vertical-align:middle; } #pic p { *position:absolute;...
标签: Web开发
使用表格的方法来表现设计效果 style type="text/css" !-- body{     font-size:12px;     font-family:"宋体"; } table{     border:1px solid #E6EFF8;     margin-bottom:2px; } td{     height:23px;     line-height:23px;     paddin...
标签: Web开发
开始之前首先说说分类体系。回忆一下,分类体系是指事先确定的类别的层次结构以及文档与这些类别间的关系。 其中包含着两方面的内容: 一,类别之间的关系。一般来说类别之间的关系都是可以表示成树形结构,这意味着一个类有多个子类,而一个子类唯一的属于一个父类。这种类别体系很常用,却并不代表它在现实世界中也是符合常识...
标签: Web开发
关于CSS 控制DIV水平居中问题,我看到很多新人搞不明月。记得第一次看CSS是一个老外写的书,那个里面谈到居中使用。 margin-left:auto; margin-right:auto; 其实等同于: margin:0 auto; 于是可以使用这种方式,但是有人用IE时发现没有居中。这里建议你看看是否遗漏了DTD声明。 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Tr...
标签: Web开发
有朋友使用DIV居中,但是却发现DIV居中失灵了,是怎么回事呢?下面给大家解决一下问题,呵呵! 1、一般情况下DIV居中失效是因为没写DTD语句 在页面的最上方加上: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 就可以了!其实其他...

经验教程

914

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部