0

I am trying to center an icon in my header navigation. I have the basics down but the center changes depending on if there are multiple icons in the same header.

How can I keep the center icon centered even if the left or right icons are removed?

Here is a fiddle demonstrating the issue

HTML

<br>   
<br>   
<div class="mp-myheader">
        <div class="mp-center-wrapper">
            <i class="mp-icon-hamburger mp-icon-xsm mp-float-left"></i>
            <i class="mp-icon-hamburger mp-icon-xsm"></i>
            <i class="mp-icon-hamburger mp-icon-xsm mp-float-right"></i>
        </div>
    </div>

<br>
    <div class="mp-myheader">
        <div class="mp-center-wrapper">
            <i class="mp-icon-hamburger mp-icon-xsm"></i>
            <i class="mp-icon-hamburger mp-icon-xsm mp-float-right"></i>
        </div>
    </div>

CSS

.mp-center-wrapper{
    text-align: center;
}

.mp-myheader {
    background: #015688 !important;
    width:100%
}

.mp-icon-hamburger {
    background-image:       url("http://icons.iconarchive.com/icons/klukeart/summer/128/hamburger-icon.png");
    background-position:center;
    background-repeat:no-repeat;
}

.mp-icon-xsm {
    width: 25px;
    height:25px;
    background-size: 25px;
    display:inline-block;
}

.mp-float-left {
    float:left;
}

.mp-float-right {
    float:right;
}
Sevle
  • 3,109
  • 2
  • 19
  • 31
fat fantasma
  • 7,483
  • 15
  • 48
  • 66

3 Answers3

4

http://jsfiddle.net/es_kaija/7Ln420jo/1/

Put position: relative; for your headers and for right and left icons: position: absolute; and left: 0; and right: 0;

Fixed that for me.

Kristine
  • 737
  • 2
  • 9
  • 22
0

.mp-center-wrapper {
  overflow: auto;
  text-align: center;
}
.mp-myheader {
  background: #015688 !important;
  width: 100%;
  position: relative;
}
.mp-icon-hamburger {
  background-image: url("http://icons.iconarchive.com/icons/klukeart/summer/128/hamburger-icon.png");
  background-position: center;
  background-repeat: no-repeat;
}
.center {
  /* created this new class and applied to middle hamburger icon */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.mp-icon-xsm {
  width: 25px;
  height: 25px;
  background-size: 25px;
  display: inline-block;
}
.mp-float-left {
  float: left;
}
.mp-float-right {
  float: right;
}
<br>
<br>
<div class="mp-myheader">
  <div class="mp-center-wrapper"> <i class="mp-icon-hamburger mp-icon-xsm mp-float-left"></i>
    <i class="mp-icon-hamburger mp-icon-xsm center"></i>
    <i class="mp-icon-hamburger mp-icon-xsm mp-float-right"></i>

  </div>
</div>
<br>
<div class="mp-myheader">
  <div class="mp-center-wrapper"> <i class="mp-icon-hamburger center mp-icon-xsm"></i>
    <i class="mp-icon-hamburger mp-icon-xsm mp-float-right"></i>

  </div>
</div>

Check this code, and read the comments in CSS

Deepak Yadav
  • 6,804
  • 5
  • 31
  • 49
-1

Add margin: 0 auto; for your middle icon (.mp-icon-xsm)

.mp-icon-xsm {
    margin: 0 auto;
}
Dejan Munjiza
  • 790
  • 1
  • 12
  • 23