Javascript 为什么在第一个元素之后有额外的空间

Javascript 为什么在第一个元素之后有额外的空间,javascript,html,Javascript,Html,$(文档).on('click','item',function(){ var title=$(this.text(); var obj=$(“-”+标题+”); 对象附加到(“#路径”); }); .line{ 显示:内联块; 边际:0.2px; } .面包屑{ 显示:内联块; 填充:0 7px; 背景:金; } .项目{ 光标:指针; } 家 洛勒姆 乱数假文 因为您在div关闭之前添加了一个空格 这个问题被称为HTML块元素错误:您可以看到 $(文档).on('click','ite

$(文档).on('click','item',function(){
var title=$(this.text();
var obj=$(“-”+标题+”);
对象附加到(“#路径”);
});
.line{
显示:内联块;
边际:0.2px;
}
.面包屑{
显示:内联块;
填充:0 7px;
背景:金;
}
.项目{
光标:指针;
}

洛勒姆 乱数假文
因为您在div关闭之前添加了一个空格

这个问题被称为HTML块元素错误:您可以看到

$(文档).on('click','item',function(){
var title=$(this.text();
var obj=$(“-”+标题+”);
对象附加到(“#路径”);
});
.line{
显示:内联块;
边际:0.2px;
}
.面包屑{
显示:内联块;
背景:金;
填充:0px 7px;
}
.项目{
光标:指针;
}

洛勒姆 乱数假文
css中有填充

padding:0 7px;
换成

padding:0 0px;

我不知道你为什么不使用Float。您不使用浮动有什么具体原因吗

我建议你使用下面的css,一切都会很好

.crumb,.line{float:left}
问题在于:

<div class='path' id='path'>
  <div class='crumb'>home</div>
</div> <--- this div is counting that extra space.

洛勒姆 乱数假文
空格是换行符,一种可能的修复方法是将字体大小:0添加到父容器中

$(文档).on('click','item',function(){
var title=$(this.text();
var obj=$(“-”+标题+”);
对象附加到(“#路径”);
});
.line{
显示:内联块;
边际:0.2px;
字体大小:16px;
}
.面包屑{
显示:内联块;
填充:0 7px;
背景:金;
字体大小:16px;
}
.项目{
光标:指针;
}
.path{font size:0;}

洛勒姆 乱数假文
我已经注意到,让我来修复它,但它应该在添加的元素上是相同的吗?顺便说一句,在你的代码片段上还有一个额外的空间!那么
\n
之间有什么区别呢?新行不是空格。希望它对您来说是固定的。在数字添加的元素上,空格应该是相同的。额外的空格在原始标记中。虽然可以通过添加
$('#path').append(document.createTextNode('\n'))强制插入一些碎屑,但插入的其他碎屑没有任何周围的空格
obj.appendTo(“#path”)
之后,以查看整个过程中的相同效果。@JonathanLonowski,
新行
新行
空格
应该是
空格
。具体是什么样的擦洗?可能是重复的谢谢,但我需要知道
内联块
有什么问题。请你也发一个例子好吗?我明白了,但为什么新行会呈现为空格?@puerto,这是因为框之间的空格来自标记中的换行和缩进。jQuery在附加元素时不保留这种格式样式,因为它修改DOM。因为我们是在
块级别
元素后面追加空间,因为现有的DOM元素是块级别的。
<div class='path' id='path'>
<div class='crumb'>home</div></div>