151

我试图将两个链接“查看网站”和“查看项目”集中在周围的 div 中。有人可以指出我需要做些什么来完成这项工作吗?

JS 小提琴:http: //jsfiddle.net/F6R9C/

HTML

<div>
  <span>
    <a href="#" target="_blank">Visit website</a>
    <a href="#">View project</a>
  </span>
</div>

CSS

div { background:red;overflow:hidden }

span a {
    background:#222;
    color:#fff;
    display:block;
    float:left;
    margin:10px 10px 0 0;
    padding:5px 10px
}
4

7 回答 7

166

另一种选择是display: table;通过margin: 0 auto;

span {
    display: table;
    margin: 0 auto;
}
于 2013-05-10T20:07:14.193 回答
156

一种选择是<a>显示,inline-block然后应用于text-align: center;包含块(也删除浮动):

div { 
    background: red;
    overflow: hidden; 
    text-align: center;
}

span a {
    background: #222;
    color: #fff;
    display: inline-block;
    /* float:left;  remove */
    margin: 10px 10px 0 0;
    padding: 5px 10px
}

http://jsfiddle.net/Adrift/cePe3/

于 2013-05-10T20:01:17.127 回答
12
<div style="text-align:center">
    <span>Short text</span><br />
    <span>This is long text</span>
</div>
于 2016-03-06T00:44:21.600 回答
10

应用于inline-block要居中的元素并应用于text-align:center父块对我来说是诀窍。

甚至适用于<span>标签。

于 2016-03-15T20:03:29.650 回答
2

跨度可能会有点棘手。如果您设置教学跨度的宽度,您可以使用

margin: 0 auto;

使它们居中,但它们最终会出现在不同的行上。我建议对您的结构尝试不同的方法。

这是我想到的 jsfiddle:jsfiddle

编辑:

Adrift 的答案是最简单的解决方案:)

于 2013-05-10T20:05:12.363 回答
0

我假设您希望根据您的小提琴将它们集中在一条线上,而不是两条单独的线上。如果是这种情况,请尝试以下 css:

 div { background:red;
      overflow:hidden;
}
span { display:block;
       margin:0 auto;
       width:200px;
}
span a { padding:5px 10px;
         color:#fff;
         background:#222;
}

我删除了浮动,因为你想将它居中,然后通过向它们添加 margin:0 auto 来使围绕链接的跨度居中。最后,我为跨度添加了一个静态宽度。这会将链接集中在红色 div 内的一行上。

于 2013-05-10T20:05:52.403 回答
0

只有 css div 你可以将内容居中

div{
       display:table;
       margin:0 auto;
    }

http://jsfiddle.net/4q2r69te/1/

于 2020-07-25T09:31:59.560 回答