图像链接之间的CSS间隙无缘无故

时间:2010-04-17 14:54:39

标签: html css padding margin

我一直试图让这个水平导航现在排序过去几个小时,但没有任何工作。我试过reset.css样式表,* {padding:0;保证金:0)等我的图像链接之间仍然存在间隙。

你看,导航是由内联显示的无序图像链接列表组成,但每个图像之间,左,右,上,下都有间隙,我看不清楚原因。它在所有浏览器中都是一样的。

以下是该页面的链接,因此来源:Beansheaf Temporary

链接到css: http://pentathlongb-yorkshire.co.uk/tomsmith/Beansheaf/styles/fund2.css

网站的其余部分显然还没有完成,这只是我现在担心的导航。

10 个答案:

答案 0 :(得分:11)

为避免浮动导航li,您至少有两个选项可以删除内联元素之间的空格。

<ul> 
  <li><a href="#"><img src="../hotel.jpg" /></a></li 
  ><li><a href="#"><img src="../foodDrink.jpg" /></a></li
  ><li><a href="#"><img src="../meetingsConferences.jpg" /></a></li>
</ul>

请注意,关闭</li>标记在后续行(最后一行除外)上关闭,该行有效且保持可读性(至少对我而言)。

另一种选择稍微麻烦

<ul> 
  <li><a href="#"><img src="../hotel.jpg" /></a></li><!-- 
  --><li><a href="#"><img src="../foodDrink.jpg" /></a></li><!--
  --><li><a href="#"><img src="../meetingsConferences.jpg" /></a></li>
</ul>

只需使用html注释<!-- ... -->来注释掉原本会被折叠到一个空格中的空格。

我确实希望有一些方法可以指定(例如):

ul li img {whitespace: none-between; }

答案 1 :(得分:6)

另一种避免浮动的方法是将容器上的font-size设置为0,然后为LI重新设置它,如下所示:

#mainNav
{    font-size: 0}

#mainNav li
{
    display: inline;
    list-style-type: none;
    font-size: 1em
}

答案 2 :(得分:3)

图像链接下方的间隙是由于图像默认情况下与基本文本行对齐,您只需声明即可解决

li img {
    vertical-align:bottom;
}

魔法!

答案 3 :(得分:1)

尝试删除li元素之间的所有空格和换行符。

由于您是以内联方式显示它们,因此HTML中的空格将像内联文本中的空格一样,并在渲染时留下间隙。

答案 4 :(得分:1)

添加

#mainNav li { 
  float:left;
}

到您的CSS。

答案 5 :(得分:1)

这是因为HTML文档中的新行将被解释为打印内容中的空格。由于所有'li'元素都在新行上,因此它们之间会增加一个空格。确保将它们显示为块元素并将它们浮动到左侧,使它们均匀地运行。

答案 6 :(得分:0)

您可以浮动列表元素,然后空白区域不会干扰:

#mainNav li
{
 float: left;
 list-style-type: none;
}

答案 7 :(得分:0)

我使用li标签上的line-height属性来修复此问题。

ul li { line-height:0; }

答案 8 :(得分:0)

最佳解决方案来自http://www.cssplay.co.uk/menus/centered.html。并引用:

  

我们需要做的就是将ul标签包含在一个外部容器中,该容器的宽度为100%,溢出设置为隐藏。

     

然后<ul>标签的样式为相对位置,左侧浮动,左侧位置为50%。

     

最后,<li>标签的样式也是相对位置,向左浮动,但这次是50%的正确位置。

     

......正如他们所说,只需要这一切。

答案 9 :(得分:0)

如果您使用xslt来显示这些元素,则应该执行以下操作:

<xsl:template match=".//text()">  
    <xsl:value-of select="normalize-space(.)" />
</xsl:template>