2011-07-04 65 views
0

我正在努力在下面的HTML和CSS代码的行为。我知道盒子的布局和边缘折叠,但它似乎没有解释以下几点:css余量和填充新手问题

1)使用下面的代码,未修改,徽标显示与它之间约10px的空白和顶部该页面以及大约4或5个像素,但由#allcontent.background-color给出的颜色。有趣的是,如果我将body内的font-size属性设置为0px,则会删除徽标上方的所有空白区域以及其下方的4或5像素。

2)如果#allcontent内的填充值从0px更改为1px,则大约10px的填充实际上是使用#allcontent.background-color指定的颜色在徽标的上方和下方添加的。

index.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
     <title>Home</title> 
     <link rel="stylesheet" type="text/css" href="my.css" /> 
    </head> 

    <body> 
     <div id="allcontent"> 
     <div id="header">   
      <p> 
      <img width="200" height="60" src="images/logo.gif" alt="Logo" /> 
      </p> 
      </div> 
     </div>  
    </body> 
</html> 

my.css文件:

body {  
    margin: 0px; 
    padding: 0px; 
} 

#allcontent{ 
    background-color: #dddddd; 
    padding: 0px; 
    margin: 0px;  
} 

#header { 
    padding: 0px; 
    margin: 0px; 
} 

回答

2

这是你的代码:http://jsbin.com/eronaq

先易后难的问题开始:

该徽标显示为[..]约4或 个5像素下面

即间隙是用于文本的下伸像0​​和p信件保留的空间。

您可以通过几种方法解决这个问题。例如,通过在img上设置display: blockvertical-aligntopbottom

display: blockhttp://jsbin.com/eronaq/2

标志显示与它之间的 顶部

看到有关 的10px的空白页:http://reference.sitepoint.com/css/collapsingmargins

这个空间是p崩溃的margin-top t一直到body,因为根据折叠边距的规则,没有什么可以阻止它做的。

通过“触摸”,是指在 其中没有填充,边框或内容 相邻边缘之间存在的地方。