0

我有以下代码用于演示:

<html>
    <head>
        <style type="text/css">
            a{
              display:block;
              float:left;
            }
            #linkDiv{
                border-style:solid;
            }
        </style>
    </head>
    <body>
        <div id="linkDiv">
            <a href="">test</a>
            <a href="">test</a>
            <a href="">test</a>
        </div>
    </body>
</html>

我希望我的链接成为块,并且每个链接都相邻。没有float:left这就是我得到的:

在此处输入图像描述

然而,当我使用float:left这是结果:

在此处输入图像描述

提前致谢

4

3 回答 3

2

您需要在父元素上使用“clearfix”:

overflow: hidden;

或者

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
    *zoom: 1;
}

http://nicolasgallagher.com/micro-clearfix-hack/

于 2012-12-06T21:18:37.710 回答
0

尝试

overflow: auto 

在包含div

或使用 clearfix hack。

于 2012-12-06T21:20:47.263 回答
0

你可以把它添加到你的CSS:

#linkDiv {
    overflow:auto;
}

但为什么不在你的 a 标签上使用内联块呢?

a {
    display:inline-block;
}
#linkDiv {
    border-style:solid;
}​

内联块元素看起来很像左浮动元素,但行为更像常规内联元素(通常更容易操作)。适用于所有浏览器 IE8+(IE7 有一个简单的 polyfill)。

几篇可能有用的文章:

于 2012-12-06T21:26:34.193 回答