Вот простой тест, чтобы показать, что происходит:
HTML
/* This form will be 200px and centered within its parent element */
<form></form>
/* #formsection is 300px and not centered. The form it contains will be
200px and centered withint #formsection */
<div id="formsection">
<form></form>
</div
CSS
/* All forms will be 200px and centered in their parent container */
form {
width: 200px;
margin: 0 auto;
border: 1px solid red;
}
/* #formsection is 300px in width and not centered */
#formsection {
width: 300px;
border: 1px solid blue;
}
#formsection form {
border: 1px solid green;
}
Вы можете увидеть демо-версию здесь .
Вы упоминали, что width
не меняет ширину элемента. Это возможно, если у вашего <form>
есть дочерний элемент, который шире, чем вы установили на нем (т. Е. Ваш 5px
случай). Чтобы проверить, добавьте border
или background-color
к дочерним элементам и проверьте, не переполняют ли они форму.
Другой, более быстрый, альтернативный вариант - использовать Web Developer addon для Firefox. После установки CTRL+SHIFT+Y
покажет информацию о стиле любого элемента, над которым вы наводите курсор.