在...中的填充顶部输入字段

时间:2014-12-13 15:18:04

标签: html css internet-explorer

如何更正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>

2 个答案:

答案 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;
}

http://codepen.io/anon/pen/RNaQxY

答案 1 :(得分:0)

我设法找到了我的问题的解决方案(使用IE9和IE10在CrossBrowserTesting.com中测试):)

我刚刚注意到IE9和IE10在输入字段的底部有一个空格,当比较IE9,IE10和IE11之间的结果时,会占用输入文本的下半部分。

所以我在padding-bottom: 0样式中添加input:focus以删除该空格。

它有效。输入的文本现在正确显示。 padding-bottom:0似乎不会影响其他浏览器,因为它们仍能正确显示结果。