What
What

Reputation: 83

How to center div?

I have a problem with centering div in HTML (vertical & horizontal). My code looks something like this:

<div id="container">SOME HTML</div>

#container{
    width: 366px;
    height: 274px;
    margin: 50%;
    top: -137px;
    left: -188px;
    position:absolute;
}

Only chrome center this div in to the middle of the screen.

Upvotes: 5

Views: 483

Answers (6)

Dimitris DK
Dimitris DK

Reputation: 11

Try this one:

<div class="cont">
  <div class="box"></div>
</div>

Css:

.cont{
  background-color: tomato;
  width: 600px;
  height: 400px;
  position: relative;
}
.box {
  width:100px;
  height:100px;
  background-color: teal;
  color:#fff;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%)
}

Upvotes: 1

Neil Knight
Neil Knight

Reputation: 48537

You could use:

#container {
    // Your other values, but remove position: absolute;
    margin: 0 auto;
}

Alternatively, you can do:

#wrapper, #container {
    border: 1px solid red;
    height: 500px;
    width: 600px;
}

#wrapper {
    bottom: 50%;
    right: 50%;
    position: absolute;
}

#container {
    background: yellow;
    left: 50%;
    padding: 10px;
    position: relative;
    top: 50%;
}

And you're HTML code:

<div id="wrapper">
    <div id="container">
        <h1>Centered Div</h1>
        <p>
            This div has been centered within your browser window.</p>
    </div>
</div>

That will center the <div> in the middle of the browser window.

Upvotes: 1

sp00m
sp00m

Reputation: 48807

This does the trick (vertical & horizontal):

#container{
    position: absolute;
    width: 366px;
    height: 274px;
    left: 50%;
    top: 50%;
    margin-left: -183px; /* half width */
    margin-top: -137px; /* half height */
}

Upvotes: 1

methodofaction
methodofaction

Reputation: 72385

#container{
    width: 366px;
    height: 274px;
    top: 50%;
    left: 50%;
    margin: -137px 0 0 -188px;
    position:absolute;
}

Upvotes: 2

AlexC
AlexC

Reputation: 9661

Should be fine to use just CSS:

here is the demo

#container{
    width: 366px;
    height: 274px;
    margin: 50%;
    top: 50%;
    left: 50%;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
}​

Upvotes: -1

Yogu
Yogu

Reputation: 9445

This will center the <div> horizontally:

#container{
    width: 366px;
    height: 274px;
    margin: 0 auto;
}

Centering vertically is not quite simple, you maybe have to use javascript for that, or you try this css solution.

Upvotes: 7

Related Questions