jquery - 为什么 HTML 标记中的空格会导致 CSS 不同?

标签 jquery html css

我有以下标记格式:

<!-- .section markup with line breaks and indentation (normal formatted coding) -->
<form id="form" name="form">
  <div class="section">
    <input type="checkbox" class="switch" />
    <select class="overlays" name="overlays">
        <option value="test">Test</option>
    </select>
    <input type="text" class="parameters" />
  </div>
</form>
<span id="plus">+</span>

还有一些 JQUERY 可以根据需要附加更多 .section,如下所示:

$('#plus').click(function () {
  $('#form').append('<div class="section"><input type="checkbox" class="switch" /><select class="overlays" name="overlays"><option value="test">Test</option></select><input type="text" class="overlay_parameters" name_parameters" /></div>');
});

但是我注意到,每当我附加 .section

时,CSS 边距/填充都有点偏离

然后,我意识到如果我使用以下格式:

<!-- .section markup all in one line -->
<form id="form" name="form">
  <div class="section"><input type="checkbox" class="switch" /><select class="overlays" name="overlays"><option value="test">Test</option></select><input type="text" class="parameters" /></div>
</form>
<span id="plus">+</span>

现在由标记提供的原始 .section 具有与 JQUERY 相同的 CSS 间距 附加 .section

第一种格式:http://jsfiddle.net/projeqht/NCfym/

第二种格式:http://jsfiddle.net/projeqht/NCfym/1

所以我的问题是:

为什么格式化的 HTML 标记输出的 CSS 空间与写在 1 行 HTML 上的完全相同的标记不同?

最佳答案

换行符在 HTML 中算作一个空格,所以下面的代码在元素之间有一个空格:

<input type="text">
<input type="text">

这个也有:

<input type="text"> <input type="text">

但是这个没有空格:

<input type="text"><input type="text">

这不是“CSS 空间”,而是一个老派的“HTML 空间”。 :D

关于jquery - 为什么 HTML 标记中的空格会导致 CSS 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927209/

相关文章:

javascript - 简单的 Jquery POST 调用不起作用

javascript - 间隔并不总是被清除

php - 使用 jquery 解析 json 不起作用

javascript - Kendo 窗口 - 提交时不要关闭窗口

javascript - 使用自动完成是否需要 jqueryui css?

javascript - 如何在不影响输入值的情况下向输入字段添加美元符号?

javascript - jQuery 通过 POST 调用返回未定义

javascript - 如何让 "am"或 "pm"指示符与 HTML5 时间输入元素一起显示?

html - 两张表,重叠的边框

css - 添加右边框 : 1px causes the whole structure to fall apart