2011-10-21 131 views
2

我有一个简单的问题,其中我的div中的东西不是没有保证金。 具体来说,设置边距,填充和边框都为0时,仍有元素边框/边距/填充不是0时,具体设置0

之间的空白

代码:

<div id="menu" > 
<a href="#" style="margin:0;border:0;padding:0;background:red">sup</a> 

<a href="#" style="margin:0;border:0;padding:0;background:red">sup</a> 

</div> 

只需通过添加这些代码到一个空的文本文件,并保存为HTML,有元素之间的空白区域,除非我特别设置了负边距。这将工作,但我只是想知道为什么它不为0时,它是专门设置为0

在此先感谢:d


新发现:

我试图使上述成显示:块到另一个之上显示一个只是当我在添加此发现,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

它没有工作

我本来应该使用这个文档类型,但它现在不工作。

任何解决方案?


的代码如下:在此撷取画面中所示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<div id="kingmenu" style="position:absolute;top:90px;left:290px;width:55px;"> 
<a href="#"><img src="http://white-attic.com/themes/prestashop/img/kingtop.png"></a><a href="#"><img src="http://white-attic.com/themes/prestashop/img/kingbottom.png"></a> 
</div> 

问题: http://img828.imageshack.us/img828/8331/whitespace.jpg

回答

3

的空白是在您的标记。

即使您将a元素设置为inline-block(它们不是默认值),您仍然会看到HTML中存在的(标准化)空间。

为了消除这种情况,你必须“对接”对方的元素。

UPDATE:您的文件现在应该是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<div id="menu" ><a href="#" style="margin:0;border:0;padding:0;background:red">sup</a><a href="#" style="margin:0;border:0;padding:0;background:red">sup</a></div> 

我已经在Chrome,火狐6和IE 8检查存在的联系之间没有空格。

+0

那么除了设置负边距之外,还有什么方法可以消除空白? – robobooga

+0

在源代码中消除它:一个接一个地运行''标签。 – harpo

+0

嗨,通过添加xhtml文档类型,它不再工作。 – robobooga

1

这是因为HTML中的新行在呈现时被解释为空格。

试试这个:

<div id="menu" > 
<a href="#" style="background:red">sup</a><a href="#" style="background:red">sup</a> 
</div> 
+0

嗨,但在我的问题中加入了doctype。你的方法不起作用。但如果我删除文档类型,它完美的作品。有什么解决方法吗? – robobooga

2

这是因为基本上你只需添加一个空格。 Div是一个块元素,a是一个内联元素,所以基本上两个内联元素都是间隔的。

请记住,浏览器解释空格。