我有两个div id。一个人有一个图像,另一个有背景图像。这两个div之间有一个不需要的空间。在Dreamweaver设计视图中,它看起来好像没有空间,但如果我将其设置为实时或在浏览器中预览,则会再次出现空格。
这是div的css
#header {
text-align: center;
padding: 0px;
margin: 0px;
}
#content {
background-image:url(img/ContentBox.png);
background-repeat: no-repeat;
background-position:center;
padding: 0;
margin: 0;
}
这是我的身体html(忽略多个换行符,这只是我可以看到div中的bg img)
<body>
<div id="header"><img src="img/Header.jpg" /></div>
<div id="content"><br><br><br><br><br><br><br></div>
</body>
答案 0 :(得分:3)
图片的默认显示设置为inline
。这使它们与文本内联流动,与基线垂直对齐。默认情况下,所有文本都与基线垂直对齐,除非您通过将vertical-align
设置为其包含元素上的其他内容来更改它。
基线漂浮在实际线的底部之上。查看小写字母g
。顶部圆圈的底部是基线。这就是图像对齐的地方。
你可以通过多种方式解决这个问题,但这里有几个:
同样,默认情况下,图像元素设置为display: inline
。假设您不想更改此设置,则需要调整图像元素在当前文本行上垂直对齐的方式。
vertical-align
CSS属性设置当前文本行上的内联元素的垂直对齐方式。 它不会相对于容器设置它。
因此,您可以将vertical-align
属性设置为middle
,top
或bottom
,并且只要图片元素大于{{1}当前文本行,它下面没有额外的空格。
但是,你需要记住我刚才所说的关于line-height
的内容。如果您的line-height
大于图片元素,line-height
除了删除额外的间距外,还会做更多的事情:它会相应地对齐线上的图像元素。 See this jsFiddle to see an example of how a line-height
greater than the height of the image will affect the result.
因此,根据您提供的HTML,设置垂直对齐方式,您可以执行以下CSS规则:
vertical-align
另一种选择是将图像元素更改为显示为块级元素。除非您知道需要块级图像,否则我不建议使用此方法。
块级元素会自动填充到其容器中,并且不会与文本或其他内联元素内联。另外,如果您在图片上设置#header img {
vertical-align: bottom; /* or top or middle */
}
,则会强制它为float
级别。
因此,您有两个选项可以显示为块级别:
block
或
#header img {
display: block;
}