重複の可能性:
HTML の空白を無視する
私はオランダのレシピのウェブサイトを作成しています。この問題は、Javascript を使用して新しいフォーム フィールドを追加するときに発生する視覚的なエラーです。
問題が発生する場所
必要なすべての成分を説明するために、HTML で事前に定義されている既存の成分フォーム フィールドに、ユーザーがさらに成分フォーム フィールドを追加できるようにします。「別の成分を追加」というボタンを押すと、これらの新しいフィールドを追加できます。addIngredient() と呼ばれる JavaScript 関数は onclick と呼ばれます (わかりやすくするために省略されています。完全なコードはここにあります)。
function addIngredient() {
ingredientCount++;
//define the elements that should be created
var Group = document.createElement("span");
var Quantity = document.createElement("input");
var Unit = document.createElement("input");
var Type = document.createElement("input");
var lineBreak = document.createElement("br");
//set the attributes for each element
Group.setAttribute("id", "ingredient_" + ingredientCount);
Quantity.setAttribute("type", "text");
Unit.setAttribute("type", "text");
Type.setAttribute("type", "text");
//add the ingredient group span and linebreak to the ingredients div
var ingredientList = document.getElementById("ingredienten");
ingredientList.appendChild(Group);
ingredientList.appendChild(lineBreak);
//add the ingredient form elements to the ingredient group span
var addElements = document.getElementById("ingredient_" + ingredientCount);
addElements.appendChild(Quantity);
addElements.appendChild(Unit);
addElements.appendChild(Type);
}
何が起こるのですか
JavaScript によって追加された入力要素は、HTML によって事前に作成されたものとは異なる間隔を持っているように見えます。視覚的なエラーを示すスクリーン キャプチャを次に示します。
この余分なスペースは、事前に作成された入力要素を定義する HTML からリターンを削除すると消えます。
返品あり:
<span>
<input>
<input>
<input>
</span><br>
返品なし:
<span>
<input><input><input>
</span><br>
このことから、HTML で作成された要素は、コードの書き方によって間隔や位置が実際に影響を受けると結論付けられます。Javascriptで作成したフォーム要素は、もちろん改行なしで生成されるため、こうした余分なスペースは存在しません。
私の質問
率直に言って、HTML で改行を押すと Web ページにスペースが出力されるようで、少しショックを受けています。コードの書式設定によってページに何かが追加されるというのはばかげていると思います。発生を防ぐために、コード内のリターンを削除したくありません。
フォーム要素間のスペースが表示されないようにするために、コードからリターンを削除する以外に方法はありますか?