実際、純粋な CSS を使用してこれを行う非常に自然な方法がありますtext-align: justify;
。
正当化が最後の行に対して機能しないため、成功しませんでした (また、行が 1 つしかない場合は、最後の行と見なされます)。最後の行のテキストの配置を設定する CSS3 プロパティがあります: text-align-last。残念ながら、広くサポートされていません。
解決策は、次の行にドロップされる余分な要素を生成することです。その後、最初の行が正当化されます。
<form>
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
</form>
form {
width: 800px;
text-align: justify; /* Can we really make this work? Sure! */
}
input {
display: inline-block; /* making elements respect text-align */
}
form:after {
content: ""; /* creating a hidden element that drops to next line */
display: inline-block; /* making it respect text-align and width */
width: 100%; /* forcing it to drop to next line */
}
デモ: http://jsbin.com/ituroj/5/ (右上隅の [編集] をクリックして、コードをいじります)。
結果: セマンティック、HTML フットプリントなし、最小限の CSS コード、完全なブラウザー サポート。