换行符(在代码中)在HTML输出中导致不需要的边距
我有一份菜单,用DIV-s隔开。 当这个看起来像这样的时候:换行符(在代码中)在HTML输出中导致不需要的边距,html,css,Html,Css,我有一份菜单,用DIV-s隔开。 当这个看起来像这样的时候: <div id="container"> <div>1</div><div>2</div><div>3</div> </div> 123 它渲染得很好,但那不好。但如果我这样做: <div id="container"> <div>1</div> <div>2</div
<div id="container">
<div>1</div><div>2</div><div>3</div>
</div>
123
它渲染得很好,但那不好。但如果我这样做:
<div id="container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
1.
2.
3.
输出中会出现不需要的空间。两个部门之间有差距。
如何解决这个问题
编辑:
对不起大家。下面是一把详细的小提琴:
.places\u histNavigator{
颜色:#AC3B75;
字体系列:georgiab;
字体大小:1.3em;
线高:38px;
}
.places\u histNavigatorElement{
左边框:1px实心#F3F2EB;
右边框:1px实心#C2BEA8;
显示:内联块;
文本对齐:居中;
}
125
2.
3.
4.
5.
125
2345
添加边距:0px代码>和填充:0px如果div
元素被设置为显示inline
,它们就像单词一样被有效地处理,因此HTML格式很重要-在这种情况下,新行创建空间。如果您希望格式化HTML但控制此效果,则可以将元素设置为内联块
,然后手动控制其边距以抵消此效果,或者可能在父元素上设置字间距
。根据注释中发布的假设,以下是一种可能的解决方案:
<代码>内联属性考虑在<代码> div <代码> s之间存在的空间,以避免使用“<代码>块/<代码>显示或在div之间添加<代码> <代码>(HTML注释标记)。
CSS
*{
margin:0px;
padding:0px;
}
#container1,#container2 {
display:block /* this is the key, make sure it's not marked inline */
}
HTML
<div id="container1">
<div>1</div><div>2</div><div>3</div>
</div>
<br />
<div id="container2">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
第二次编辑
见,如注释所示,代码>内联属性甚至考虑div之间的空格。即……如果你有这样的标记“代码> <代码>之间没有任何内容,并且它的<代码>内联< /代码>,那么它们之间的空间将被浏览器解析并呈现在网页上,以避免这一点,(如我之前所说)。放置
或更改显示
类型。
我假设容器是内联的
,但您仍然可以显示您的css吗请…我无法复制您所说的内容:很抱歉,我不认为css是必要的。。。这里有一个链接解释了这个问题和一些解决方法:我检查了编辑过的版本,仍然是错误的。只需检查上下两行,仍然存在不必要的间隙(灰色-浅灰色线之间,大约5个像素)。问题是,HTML源代码中存在ENTER或空格字符,CSS无法隐藏这些字符。我猜莫尔斯电码很糟糕……你会抓狂,因为它再次不起作用或什么的。别担心,它确实起作用了:)我只是把帽子扔到地板上看了看
<div id="container1">
<div>1</div><div>2</div><div>3</div>
</div>
<br />
<div id="container2">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
.places_histNavigator {
color: #AC3B75;
font-family: georgiab;
font-size: 1.3em;
line-height: 38px;
white-space:nowrap; /* added this */
display:block ; /* optional for uniformity*/
}