如何在div内水平居中span元素
我试图把两个链接的“查看网站”和“查看项目”放在周围的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 }
一种select是给<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 }
另一个选项是给出跨度display:table;
并通过margin:0 auto;
居中margin:0 auto;
span { display:table; margin:0 auto; }
将“内嵌块”应用于要居中的元素,并应用文本alignment:中心到父块为我做了诀窍。
即使在<span>
标签上也是如此。
<div style="text-align:center"> <span>Short text</span><br /> <span>This is long text</span> </div>
跨度可以有点棘手来处理。 如果您设置示教跨度的宽度,您可以使用
margin: 0 auto;
集中他们,但他们然后结束在不同的线。 我会build议尝试不同的方法来你的结构。
jsfiddle: jsfiddle : jsfiddle : jsfiddle : jsfiddle : jsfiddle
编辑:
Adrift的答案是最简单的解决scheme:)
我假设你想要将它们集中在一条线上,而不是基于你的小提琴在两条单独的线上。 如果是这种情况,请尝试下面的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自动到他们的中心周围的链接跨度。 最后,我在span上添加了一个静态宽度。 这将链接集中在红色的div内的一行上。