可能重复:
忽略 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中点击 return显然会在网页上输出一些间距。我觉得代码格式化会导致在页面上添加东西是荒谬的。我不想删除代码中的返回以防止它发生。
除了从我的代码中删除返回以确保我的表单元素之间的那些空格不显示之外,还有其他方法吗?