我有以下代码:
#inputfield
{
width: 300px;
height: 28px;
font-style: italic;
outline: medium none;
padding: 3px 0px 3px 5px;
margin: -2px 1px 3px 0px;
box-shadow:inset 0 0 4px 0 #dfdfdf;
-moz-box-shadow:inset 0 0 4px 0 #dfdfdf;
-wevkit-box-shadow:inset 0 0 4px 0 #dfdfdf;
text-align: center;
font-size: 16px;
color: #9A9A9A;
font-family: Georgia, Arial, sans-serif;
}
#inputfield:focus {
color: #797f86;
text-align: left;
padding-left: 10px;
}
单击输入字段以进行输入时,输入框的宽度会增加。原因是我有:padding-left:10px in:focus。我需要左侧填充,所以不确定如何仍然使用此解决方案而没有宽度问题?
我尝试在:focus伪选择器中添加一个宽度,但是没有用。我试过用这个:
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
但它并没有什么区别。
答案 0 :(得分:2)
简单:从#inputfield中删除填充并将高度增加到31px而不是28px,并在#inputfield中:将焦点宽度减小到290px。
HTML:
<input id="inputfield" placeholder="Enter Text">
CSS:
#inputfield {
width: 300px;
height: 31px;
font-style: italic;
outline: medium none;
margin: -2px 1px 3px 0px;
box-shadow:inset 0 0 4px 0 #dfdfdf;
-moz-box-shadow:inset 0 0 4px 0 #dfdfdf;
-wevkit-box-shadow:inset 0 0 4px 0 #dfdfdf;
text-align: center;
font-size: 16px;
color: #9A9A9A;
font-family: Georgia, Arial, sans-serif;
border: 1px solid #206CAF;
}
#inputfield:focus {
color: #797f86;
text-align: left;
padding-left: 10px;
border: 1px solid #9A9A9A;
width: 290px;
}
请参阅小提琴:http://jsfiddle.net/HjaTZ/