消除ie6 7 输入框上下边与容器间的间距

这个bug很常见

    <div id="wrap">
        <input type="text" />
    </div>
*{
    margin: 0;
    padding: 0;
}
input{
    height: 19px;
    line-height: 19px;
    padding: 11px 0 11px 10px;
    width: 192px;
    font-size: 16px;
}
#wrap{
    border: 1px solid red;
}

ff,ie8 容器和input边框重合

ie7

ie6

如果是textarea也存在这个bug.

怎么解决呢?网上有很多说在input上加float:left就可以了,那样确实可以消除间距,但很可能让你的布局在ie下又变得面目全非,因为很多bug都是float引起的,而且也多了消除浮动这件事。

float是把双刃剑,能不用还是就不用吧。

最终方法

首先input{border:0;*margin:-1px 0;},这样消除输入框的边框,并压缩input.

这时,ie7还是有间距。然后

input[type="text"] {
   background: none repeat scroll 0 0 transparent;
 border:medium none;
}

最后用容器边框代替输入框边框。

这时看容器的高度是否一致。

转载请注明:TheViper http://www.cnblogs.com/TheViper/

原文地址:https://www.cnblogs.com/TheViper/p/4102745.html