уменьшается, потому что границы textarea
input
по умолчанию равны 2-3px, и вы переопределяете их только на 1px в состоянии фокуса
он не будет уменьшаться, если вы переопределите границы по умолчанию на одинаковую ширину, например ::1005*
input, textarea {
border: 1px solid #444;
}
input:focus, textarea:focus{
background-color: #FFFF99;
border-width: 1px;
border-style:solid;
border-color:Black;
}
Обновление
чтобы сохранить исходные размеры без пересчета границ, это работает:
input, textarea {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
width: 300px;
height: 50px;
}
input:focus, textarea:focus{
background-color: #FFFF99;
border-width: 1px;
border-style:solid;
border-color:#000;
}