网站开发日志

2009年6月17日星期三

分享家:Addthis中国

CSS line-height

在百度知道里,看到一位网友提问有关line-height的问题。

HTML+CSS代码如下:

<html>
</head>
<style type="text/css">
#a{ height:90px; width:400px; line-height:60px;background:#003399;}
#b{background:#FF6600; width:200px; height:25px;}
</style>
<body>
<div id=a>
<div id=b>ddd</div>555
</div>
</body>
</html>

请测试以上代码,为什么id=a的div设了line-height:60px后 id=b的div 高度设为25px,实际却等于60px呢?怎么样才能在父级div设了line-height的情况下,控制自身的高度。 请在IE6里面测试。看代码id=b的div高度应该是25px;可在IE6里面实际却是60px。 在firefox里高度就是25px,可里面的文字,却跑到外面了。

分析:line-height(行高)是有继承性的。在上述例子里,div(a)的行高=60px,div(b)是div(a)的子级。如果div(b)没有定义行高,那么它将继承父级的行高。由于div(b)的高度是25px,小于行高(60px), 在firefox下文字就跑到div的外面,而在IE6下,当div的高度小于行高,div的高度将被自动扩大,因此显示为60px。

解决方法:给子级定义行高,覆盖继承值。CSS如下:

#b {background:#FF6600; width:200px; height:25px;line-height:25px;}

标签:

相关文章:

0 条评论:

发表评论

指向此帖子的链接:

创建链接