CSS center content inside div

HtmlCssCss Float

Html Problem Overview


I need to center html content inside a div class="partners" (top div with 2 images). As you can see from the image below (it floats left instead of center of the div):

enter image description here

This is my html code:

<div id="partners">
	<div class="wrap clearfix">
	    <h2>Partnertnerzy serwisu:</h2>
	    <ul>
            <li><a href="http://www.dilbert.com/"><img width="56" height="16" alt="Parnter bar wika" src="/as/partners/wika.png"></a></li>    
            <li><a href="http://www.youtube.com><img width="65" height="15" alt="Parnter bar siemens" src="/as/partners/siemens.png"></a></li>    
		</ul>
		<a class="linkClose" href="/firmy?clbp=1">Zamknij </a>
	</div>
</div>

Image: enter image description here

CSS:

#partners, #top {
    position: relative;
    z-index: 100;
}
#partners {
    margin: 12px 0 3px;
    text-align: center;
}
.clearfix:after, .row:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}
#partners .wrap {
    width: 655px;
}
.wrap {
    margin: 0 auto;
    position: relative;
    width: 990px;
}
#partners h2 {
    color: #A6A5A5;
    float: left;
    font-weight: normal;
    margin: 2px 15px 0 0;
}
#partners ul {
    float: left;
}
ul {
    list-style-position: outside;
    list-style-type: none;
}

Html Solutions


Solution 1 - Html

To center a div, set it's width to some value and add margin: auto.

#partners .wrap {
    width: 655px;
    margin: auto;
}

EDIT, you want to center the div contents, not the div itself. You need to change display property of h2, ul and li to inline, and remove the float: left.

#partners li, ul, h2 {
    display: inline;
    float: none;
}

Then, they will be layed out like normal text elements, and aligned according to text-align property of their container, which is what you want.

Solution 2 - Html

There are many ways to center any element. I listed some

  1. Set it's width to some value and add margin: 0 auto.

.partners {
    width: 80%;
    margin: 0 auto;
}


  1. Split into 3 column layout

.partners {
    width: 80%;
    margin-left: 10%;
}


  1. Use bootstrap layout

<div class="row">
    <div class="col-sm-4"></div>
    <div class="col-sm-4">Your Content / Image here</div>
</div>

Solution 3 - Html

You just need

.parent-div { text-align: center }

Solution 4 - Html

Try using flexbox. As an example, the following code shows the CSS for the container div inside which the contents needs to be centered aligned:

Depending on the axis of the flexbox, you will need to align or justify items, read more at MDN

.absolute-center {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;

    -ms-flex-align: center;
    -webkit-align-items: center;
    -webkit-box-align: center;

    align-items: center;
    justify-content: center;
}

Solution 5 - Html

You just do CSS changes for parent div

.parent-div { 
        text-align: center;
        display: block;
}

Solution 6 - Html

in parent div

parentDiv: {
     display:flex;
     height:100%;
     width:100%;
     justify-content:center;
     align-items:center;
}
      

Solution 7 - Html

The problem is that you assigned a fixed width to your .wrap DIV. The DIV itself is centered (you can see that when you add a border to it) but the DIV is just too wide. In other words the content does not fill the whole width of the DIV.

To solve the problem you have to make sure, that the .wrap DIV is only as wide as it's content.

To achieve that you have to remove the floating in the content elements and set the display property of the block levels elements to inline:

#partners .wrap {
 display: inline;
} 

.wrap { margin: 0 auto; position: relative;}

#partners h2 {
color: #A6A5A5;
font-weight: normal;
margin: 2px 15px 0 0;
display: inline;
}

#partners ul {
display: inline;
}

#partners li {display: inline}
 
ul { list-style-position: outside; list-style-type: none; }

Solution 8 - Html

do like this :

child{
    position:absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionShaneKmView Question on Stackoverflow
Solution 1 - Htmlsocha23View Answer on Stackoverflow
Solution 2 - HtmlGnanasekar SView Answer on Stackoverflow
Solution 3 - HtmlDan AlboteanuView Answer on Stackoverflow
Solution 4 - HtmlMahendra LiyaView Answer on Stackoverflow
Solution 5 - HtmlMahammad Shareef MView Answer on Stackoverflow
Solution 6 - HtmlInshaf AhmedView Answer on Stackoverflow
Solution 7 - HtmljoernView Answer on Stackoverflow
Solution 8 - HtmlAzizAhmadView Answer on Stackoverflow