Unable to center div on bootstrap 3

I’m unable to center a lot of div since I upgrade my bootstrap from 2.1 to 3.0

For example with this code:

<div id="center" class="container">
  <div class="row">
    <div class="btn-toolbar">
        <div class="btn-group">
            <a class="btn btn-default" href="#">test</a>
        </div>
    </div>
    <br />
    <p>Am I centered ?</p>
    <a class="btn btn-default" href="#">Back</a>
  </div>
</div>

I had this rule:

#center {
  margin: 0 auto;
}

But the result is: enter image description here

Or another example, how to center this:

<div id="center" class="container">
  <div class="row">
    <li class="col-md-5">
        <ul class="list-unstyled">
            <li><i class="icon-user"></i> aaaaaaaaa</li>
            <li><i class="icon-envelope"></i> bbbbbbbbbb</li>
            <li><i class="icon-envelopebug"></i> cccccccccccc</li>
        </ul>
    </li>
    <li class="col-md-5">
        <ul class="list-unstyled">
            <li><i class="icon-user"></i> aaaaaaaaa</li>
            <li><i class="icon-envelope"></i> bbbbbbbbbb</li>
            <li><i class="icon-envelopebug"></i> cccccccccccc</li>
        </ul>
    </li>
  </div>
</div>

enter image description here


solution

In this instance, margin:0 auto doesn’t work because the width of the element is 100%. If you want it to work, you would have to set a width on the element:

.btn-toolbar { width: 50px; margin: 0px auto; }

If you want to center the text and the button, you could add the class text-center to the parent element, in this case: .row. The styling of this class is simply text-align: center.

<div class="row text-center">
..
</div>

EXAMPLE HERE

As @Adrift points out, it would be much more efficient to center the element by making it inline-block, as you can use text-align:center as opposed to margin:0 auto and avoid having to set a fixed width on the element. This will ensure that the element is centered regardless of its width. (example here) - don’t forget you can just add the class text-center to the parent for centering.

It’s also worth noting that inline/inline-block elements respect white-space in the markup, and thus generate space if present. If you want to remove this space, see this answer.