如何更正IE中输入字段内的填充(在本例中为padding-top)?
所以,我想创建一个文本字段,即。搜索文本字段。该字段左侧有一个搜索图标,旁边有输入的文本,用垂直线分隔。
当字段在:focus
时,我想显示一个工具提示说:ie。 “在这里输入文字”。这段文字在里面字段中占据了字段高度的三分之一。
因此,当在focus
中我希望将字段中输入的文本按下字段高度的三分之一时,我可以显示工具提示和输入的文本,而不会让它们相互重叠。
我设法只使用CSS,并且在IE浏览器的每个浏览器中正确 。
在IE中,输入的文本被压得太多,因此文本的下半部分因为溢出而丢失了。
示例:http://codepen.io/ayakashi/pen/emZVed
我的代码:(CSS)
.form-2 label{
/*positioning icon in the left side of the text field*/
position:absolute;
padding: 0.5em 0;
text-align:center;
left:0;
color: rgba(0,0,0,0.6);
border-right: solid 1px rgba(0,0,0,0.1);
width: 2.5em;
}
.form-2 .tooltip{
font-size: 0.714em; /*10px*/
text-align:left;
padding-left: 1em;
font-family:Calibri, Helvetica, sans-serif;
font-weight:bold;
color:white;
width:21.7em;
/*positioning tooltip in top of text field*/
position:absolute;
border-radius: 0 0.5em 0 0;
margin-left: 3.5em;
top:-0.5em;
}
input:focus{
padding-top:1em;
}
input:focus, input:focus + .tooltip{
-webkit-transition: all 0.30s ease-in-out;
-moz-transition: all 0.30s ease-in-out;
-ms-transition: all 0.30s ease-in-out;
-o-transition: all 0.30s ease-in-out;
transition: all 0.30s ease-in-out;
}
HTML
<form role="form" class="form-2">
<div>
<label for="exampleInputEmail1"><i class="fa fa-user fa-lg"></i></label>
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">
<p class="tooltip">Username / Email address</p>
</div>
</form>
答案 0 :(得分:0)
识别line-height
似乎解决了IE9:
.form-2 input{
box-shadow: inset 0px 1px 3px rgba(0,0,0,0.2);
padding-left: 3em;
border-radius: 0.5em;
line-height: 1.1em;
}
答案 1 :(得分:0)
我设法找到了我的问题的解决方案(使用IE9和IE10在CrossBrowserTesting.com中测试):)
我刚刚注意到IE9和IE10在输入字段的底部有一个空格,当比较IE9,IE10和IE11之间的结果时,会占用输入文本的下半部分。
所以我在padding-bottom: 0
样式中添加input:focus
以删除该空格。
它有效。输入的文本现在正确显示。 padding-bottom:0似乎不会影响其他浏览器,因为它们仍能正确显示结果。