如何将浮动的div的内容居中:左?

时间:2009-07-05 19:23:17

标签: css

我找到了this article,我觉得我喜欢它们设置链接和按钮的方式。 所以我从文章中获取了CSS ...

.buttons a, .buttons button{
    display:block;
    float:left;
    margin:0 7px 0 0;
    background-color:#f5f5f5;
    border:1px solid #dedede;
    border-top:1px solid #eee;
    border-left:1px solid #eee;

    font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
    font-size:100%;
    line-height:130%;
    text-decoration:none;
    font-weight:bold;
    color:#565656;
    cursor:pointer;
    padding:5px 10px 6px 7px; /* Links */
}
.buttons button{
    width:auto;
    overflow:visible;
    padding:4px 10px 3px 7px; /* IE6 */
}
.buttons button[type]{
    padding:5px 10px 5px 7px; /* Firefox */
    line-height:17px; /* Safari */
}
*:first-child+html button[type]{
    padding:4px 10px 3px 7px; /* IE7 */
}
.buttons button img, .buttons a img{
    margin:0 3px -3px 0 !important;
    padding:0;
    border:none;
    width:16px;
    height:16px;
}

然后,我想连续使用几个按钮......

<div class="buttons">
    <a href="/password/reset/"><img src="pict1.png" class="positive" alt=""/>Button 1</a>
    <a href="/password/reset/"><img src="pict2.png" alt=""/>Button 2</a>
    <a href="/password/reset/"><img src="pict3.png" class="negative" alt=""/>Button 3</a>
</div>

请参阅此示例:http://reljac.com/csstest.php

但是那一排按钮可能需要对齐中心,而不是全部向右或向左。如果我将CSS更改为...

.buttons a, .buttons button{
    /*display:block;
    float:left;*/
    margin:0 7px 0 0;

当有图像时,按钮不再正确显示,特别是在IE 6,7&amp; 8。

请参阅此示例:http://reljac.com/csstest_wo.php

我可以将浮动更改为右边以使按钮对齐,但我无法弄清楚要使它们居中(如<td></td>中所示)。

所以缺点是我想要使用这种风格,但我还需要能够在必要时对按钮进行对齐。

2 个答案:

答案 0 :(得分:20)

尝试将此添加到CSS:

.buttons
{
    text-align:center;
    margin: 0px auto 0px auto;
}

自动使每边的边距相等。 text-align是旧浏览器的一个小工具。

编辑:

在名为buttonwrapper的按钮周围添加一个额外的div。然后应用此CSS

.buttonwrapper
{
    position:relative;
    float:left;
    left:50%;
}

.buttons
{
    position:relative;
    float:left;
    left:-50%;
}

http://www.pmob.co.uk/temp/centred-float4.htm

采取(但未经过测试)的方法

答案 1 :(得分:0)

我发现,当你有一个父div浮动和一个孩子div你想要居中时,很多时候人们会忘记继承。

HTML:

<div class="parent">
     <div class="child">
          Text
     </div>
</div>

CSS:

.parent {
  float: left;
  width: 300px;
}

.child {
  float:        none; /* <-- IMPORTANT! */
  width:        200px;
  margin-left:  auto;
  margin-right: auto;
}

重要: 继承声明子div也向左浮动。所以,确保子div没有浮动,然后保证:像往常一样自动。