为什么IE6浏览器下line-height属性不管用了

为什么IE6浏览器下line-height属性不管用了:
建议:尽可能的手写代码,可以有效的提高学习效率和深度。
并不是所有的情况都会导致line-height属性在IE6浏览器下失效, 而是在特定条件才会遇到。例如以下代码就是正常的:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.mytest{
  width: 100px;
  height: 40px;
  border: 1px solid red;
  font-size: 14px;
  line-height: 40px;
}
</style>
</head>
<body>
<div class="mytest">蚂蚁部落</div>
</body>
</html>

以上代码在IE浏览器中运行一切正常。再看下面这种情况:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.mytest{
  width:300px;
  height:80px;
  border:1px solid red;
  line-height:80px;
}
</style>
</head>
<body>
<ul>
  <li class="mytest">蚂蚁部落
    <input type="text" name="mytext" />
  </li>
</ul>
</body>
</html>

以上代码在其他主流浏览器中貌似是上下垂直居中(如果仔细观察会发现其实也没有精准的居中),但是在IE6中,line-height彻底失效了。也就是说如果文本与img、input、textarea、select和bject等元素连在一起使用的时候就会导致这种情况。
解决方法如下:
为img、input、textarea、select和bject等元素添加margin属性和vertical-align属性,margin-top和margin-bottom的属性值设置为:line-height值减去相应元素的高度然后再除以二。以上代码修改如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.mytest {
  width: 300px;
  height: 40px;
  border: 1px solid red;
  line-height: 40px;
}
input {
  vertical-align: middle;
  height: 20px;
  margin-top: 10px;
  margin-bottom: 10px;
}
</style>
</head>
<body>
<ul>
  <li class="mytest">蚂蚁部落
    <input type="text" name="mytext" />
  </li>
</ul>
</body>
</html>

但是以上代码只能够满足在IE6下垂直居中对齐(精准垂直居中对齐了),但是在其他浏览器下只能够貌似垂直居中的,不过对于图片是个例外,可以在任何浏览器中达到精准垂直居中对齐。也就是说如果是表单标签建议是padding使之精准垂直居中对齐。

原文地址是http://www.51texiao.cn/div_cssjiaocheng/2015/0405/145.html

时间: 2024-10-12 07:30:47

为什么IE6浏览器下line-height属性不管用了的相关文章

IE6浏览器下div无法遮盖select下拉框解决方法

IE6浏览器下div无法遮盖select下拉框解决方法:在IE6浏览器下,select下拉框无法被div遮盖,其他的主流浏览器都是正常的.这里简单介绍一下如何解决此问题.默认状态下IE6的表现: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn

IE6浏览器下3px解决方法

IE6浏览器下3px解决方法:建议:尽可能的手写代码,可以有效的提高学习效率和深度.IE6下的3px问题的产生主要应该归咎于书写不规范造成的,比如我们要写一个左右两列的结构,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&quo

解决IE6浏览器下position:fixed固定定位问题

2010年4月15日 像你所遇到的问题一样, IE6浏览器有太多的bug让制作网页的人头疼.这篇文章介绍的是介绍的是如何解决IE6不支持position:fixed;属性的办法.如果我们需要做某个元素始终位于浏览器的底部,不会因为浏览器窗口的缩放和滚动条的滚动而变化,那个肯定是想到的用position:fixed生成绝对定位,只要设置这个CSS属性就能达到刚刚的需求.当其他浏览器都正常显示的时候,只有IE6不那么完美.该元素的位置是通过"left", "top",

深入了解css的行高Line Height属性

来源:http://www.cnblogs.com/fengzheng126/archive/2012/05/18/2507632.html 什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. 不过,行间距与半行间距,还是取决于CSS中的line-height.那么,如何来使用line-height呢? 默认状态,浏览器使用1.0-1.2 line-

解决IE6浏览器下PNG图片无法正常显示的问题

在body标签内的低端添加如下代码: <!--[if IE 6]> <script src="js/png.js" type="text/javascript"></script> <script type="text/javascript"> DD_belatedPNG.fix('*'); </script> <![endif]--> 其中js/png.js是js文件夹下的

去除IE6浏览器下获得焦点的元素的虚线框的两个小办法

[1]onfocus = "this.blur()"//得到焦点时,失去焦点 e.g. <a href="#" onfocus = "this.blur()">test</a> [2]使用HTML标签的特性 hidefocus e.g. <a href="#" hidefocus>test</a> [注意]由于使元素失去焦点后,该元素将无法通过Tab键选中,所以不到万不得已,不要

IE6下为什么overflow属性不起作用了

IE6下为什么overflow属性不起作用了:建议:尽可能的手写代码,可以有效的提高学习效率和深度.在IE6浏览器下,如果一个对象的子对象是绝对定位或者相对定位,那么父对象的overflow属性则对子对象不起作用.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http:

IE7浏览器下CSS属性选择器二三事

一.为何专门说起IE7 以前,或者说数年前,我们从事桌面端网页开发的时候,基本上都还要兼顾IE6浏览器, 即使有些特性,IE7支持,我们也会忽略之.于是,我们会不自然地把IE6和IE7浏览器归为一路货色,研究的多半是两个浏览器共性的东西,比方说haslayout之类的. 但是,最近1~2年,至少我个人所从事的桌面PC项目都不需要管IE6浏览器(0.3%)了,但是,还是要关心IE7浏览器(3%+)的.虽然,我们有丰富的处理IE6浏览器的经验,但是,当我们不要管IE6浏览器的时候,我们前端技术的选型

为什么设置的margin-top属性不管用

为什么设置的margin-top属性不管用:建议:尽可能的手写代码,可以有效的提高学习效率和深度.有时候大家可能会遇到奇怪的现象,尽管没有任何的语法错误,但是设置的margin-top属性不会起作用,下面就就结合代码实例介绍一下产生此现象的原因和解决方法.原因一:外边距合并margin-top属性失效.代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co