转自 (old9的帖子)
关于内联元素的 padding,margin,border 等等,它们并不是没有作用,而是不会影响元素的 line-height,就是说你的上下padding(或者margin,border)设得再大,它的 line-height 是不变的,所以高度上就看不出什么效果。
用楼主的例子来说一下,这里我把背景色换成了边框便于观察:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " "> <html xmlns=" "> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>span问题</title> <style type="text/css"> span{ padding:20px; color:red; border:2px solid red; } </style> </head> <body><p style="width:18em; color:#999;"> 关于内联元素的 padding,margin,border 等等,它们并不是没有作用,而是不会影响 line-height,就是说你的上下 padding(或者margin,border)设得再大,它的 line-height 是不变的,所以高度上就看不出什么效果。用楼主的例子来说一下 <span>测试span</span> 关于内联元素的 padding,margin,border 等等,它们并不是没有作用,而是不会影响 line-height,就是说你的上下padding(或者margin,border)设得再大,它的 line-height 是不变的,所以高度上就看不出什么效果。用楼主的例子来说一下 </p> </body></html>
可以看到 padding 是起作用的,但上下的文字并没有撑开——因为 line-height 没变。
楼主的例子文字不够多,所以看不出效果,看起来似乎是 padding 没起作用,其实是 IE 按照 line-height 把多于的 padding 给切掉了。 下面的例子在 firefox 和 IE 下比较一下就可以看出为什么了: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " "> <html xmlns=" "> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>span问题</title> <style type="text/css"> span{ padding:50px; background-color:#666666; color:#FFFFFF; margin:50px; } p{border:1px solid red;} </style> </head> <body> <p style="width:350px;"><span>测试span</span>asdasdasd无标题文档</p></p> </body> </html>