Um die erste Frage zu beantworten (obwohl es bis zum Tod beantwortet wurde): Eine CSS-Breite ist, was Sie brauchen.
Aber ich wollte Gaius's question in den Antworten beantworten. Gaius, du hast das Problem, dass du die Breite in ems eingibst. Dies ist eine gute Idee zu tun, aber Sie müssen daran denken, dass ems auf Schriftgröße basieren. Standardmäßig haben ein Eingabebereich und ein Textbereich unterschiedliche Schriftgrößen & Größen. Wenn Sie also die Breite auf 35em einstellen, verwendet der Eingabebereich die Breite der Schriftart, und die Textfläche verwendet die Breite der Schriftart. Die Standardschriftart für den Textbereich ist kleiner, daher ist das Textfeld kleiner.Entweder setzen die Breite in Pixel oder Punkte, oder stellen Sie sicher, dass die Eingabefelder und Textbereiche haben die gleiche Schriftart & Größe:
.mywidth {
width: 35em;
font-family: Verdana;
font-size: 1em;
}
<input type="text" class="mywidth"/><br/>
<textarea class="mywidth"></textarea>
Hoffnung, das hilft.
Siehe die Antwort auf [HTML Erste Textfeld steuert auf die Breite des Behälters zu erweitern] (http://stackoverflow.com/a/9556001/165673), es ist besser als die Antworten hier eingeschlossen. Oder für eine vollständige Erklärung: [Box Sizing | CSS-Tricks] (http://css-tricks.com/box-sizing/) – Yarin