为什么底部填充和底部边距无助于在这些链接之间添加垂直间距?

时间:2009-07-16 00:14:05

标签: css html anchor spacing

我有一个带有链接的div。而且我用<br>标签将它们排在另一个之上,因为我无法弄清楚如何使用CSS添加垂直间距。我尝试在样式规则中添加底部边距和底部填充,但它似乎没有任何影响(为什么?)。我可以添加另一个<br>标签来将它们分开来更多,但我必须假设有一种更好的方法来使用我无法弄清楚的CSS。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
html, body 
{
    height: 100%;
    margin: 0;
    padding: 0;
    font-weight:normal;
    font-size:12pt;
    font-family: Verdana, Arial, Helvetica, serif, sans-serif;
    background:lime;
}

#linksouter
{
    margin: 0;
    padding: 0;
    border-style:solid;
    border-width:0px;
    position:absolute;
    top: 0px;
    left: 0px;
    width: 80px;
    background: blue;
    text-align:left;
}
#linksinner
{
    margin: 80px 0 0 .5em;
    width:100%;
    background:fuchsia;
    display:inline;
    height:100%;
}
#linksinner a
{
    color:red;
    text-decoration: none;
    background:yellow;
}
</style>
</head>

<body>
<div id="linksouter">
    <div id="linksinner">
    <a href="#">1</a><br />
    <a href="#">1</a><br />
    <a href="#">1</a><br />
    <a href="#">1</a><br />
    <a href="#">1</a><br />
    </div>
</div>

</body>
</html>

4 个答案:

答案 0 :(得分:9)

垂直边距和填充仅适用于divp等块级元素。 a是一个内联元素,因此无法工作。

为了做你想做的事,你需要在链接中添加以下样式:

display:block;

只有这样才能正确应用顶部和底部的边距和分页

编辑:如果你这样做,你也可以摆脱<br/>标签

答案 1 :(得分:1)

要添加垂直间距,您可以执行以下操作:

#linksinner
{
    line-height: 150%;
}

边距不会对<a>元素产生任何影响,因为它们是内联的。另一种解决方案是制作它们:

display: block;

这意味着他们会尊重您的利润,然后您就不需要<br>

答案 2 :(得分:0)

链接不能定义边距,因为默认情况下它们是“内联”元素。内联元素不能应用边距或宽度规则。要允许内联元素应用这些内容,您需要在规则中添加另一个属性。

试试这个:

#linksinner a {
    display: inline-block;
    /* Add your margin or height rules here */
}

我认为,对于你想要做的事情,你应该使用一个列表:

<ul id="linksinner">
    <li><a href="#">1</a></li>
    <li><a href="#">1</a></li>
    <li><a href="#">1</a></li>
    <li><a href="#">1</a></li>
    <li><a href="#">1</a></li>
<ul>

然后,您可以将保证金或填充规则应用于<li />代码。如果您不希望使用子弹点:

#linksinner li { list-style-type: none}

答案 3 :(得分:-1)

您需要为锚标签提供填充或边距,而不是div。但实际上不这样做,而是这样做:

<p><a href="#"></a></p>

并给p填充底部或填充顶部。