Create a footer with small rectangles on the inside, responsive to the size of the browser window

There are 4 small rectangles in the footer (created with divs that have a red border around them) and they all need to be responsive to the width of the browser window as it is resized. They should be centered and have equal percentage of space between them, regardless of the size of the window.

Like this: http://s7.postimg.org/tvmmw91jf/theboxes.png

Fiddle: http://jsfiddle.net/NightSpark/1L5027qr/

#footer {
	width: 100%;
	clear: both;
	text-align: center;
	background-color: black;
	opacity: 0.7;
	height: 200px;
}

#fbox1 {
	border: 5px outset #ea2f2f;
	width: 100px;
	height: 100px;
	position: inline-block;
	float: left;
}

#fbox2 {
	border: 5px outset #ea2f2f;
	width: 100px;
	height: 100px;
	position: inline-block;
	float: left;
}

#fbox3 {
	border: 5px outset #ea2f2f;
	width: 100px;
	height: 100px;
	position: inline-block;
	float: left;
}

#fbox4 {
	border: 5px outset #ea2f2f;
	width: 100px;
	height: 100px;
	position: inline-block;
	float: left;
}
      

<body>
<div id="footer">
	<div id="fbox1">
	</div>
	<div id="fbox2">
	</div>
	<div id="fbox3">
	</div>
	<div id="fbox4">
	</div>
<div>
</body>
      

Run codeHide result


Update: I put a clearer illustration higher than the one I had at the beginning.

+3


source to share


3 answers


The simplest thing you could do to center your elements is CSS Flexbox .

Here's the HTML :

<div id="footer">
    <div id="fbox1">
    </div>
    <div id="fbox2">
    </div>
    <div id="fbox3">
    </div>
    <div id="fbox4">
    </div>
</div>

      



Here's the CSS :

#footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    clear: both;
    background-color: black;
    opacity: 0.7;
    height: 200px;
}

#fbox1 {
    border: 5px outset #ea2f2f;
    width: 100px;
    height: 100px;
    position: inline-block;
}

#fbox2 {
    border: 5px outset #ea2f2f;
    width: 100px;
    height: 100px;
    position: inline-block;
}

#fbox3 {
    border: 5px outset #ea2f2f;
    width: 100px;
    height: 100px;
    position: inline-block;
}

#fbox4 {
    border: 5px outset #ea2f2f;
    width: 100px;
    height: 100px;
    position: inline-block;
}

      

Here's the script: http://jsfiddle.net/1L5027qr/1/

+4


source


You can create 25% width around each div.



<div id="footer">
  <div style="width:25%;display:inline-block;text-align:center;">
    <div id="fbox1">
    </div>
  </div><div style="width:25%;display:inline-block;text-align:center;">
    <div id="fbox2">
    </div>
  </div><div style="width:25%;display:inline-block;text-align:center;">
    <div id="fbox3">
    </div>
  </div><div style="width:25%;display:inline-block;text-align:center;">
    <div id="fbox4">
    </div>
  </div>
</div>

      

+1


source


If you can change the label a little:

<div id="footer">
    <div id="fbox1" class="outer">
        <div class="inner">...</div>
    </div>
    <div id="fbox2" class="outer">
        <div class="inner">...</div>
    </div>
    <div id="fbox3" class="outer">
        <div class="inner">...</div>
    </div>
    <div id="fbox4" class="outer">
        <div class="inner">...</div>
    </div>
<div>

      

CSS

#footer {
    width: 100%;
    clear:both;
}
#footer .outer {
    width: calc(100% / 4 - 4px);
    text-align: center;
    display: inline-block;
    margin: 0px;
    border: 0px;
}
#footer .inner {
    border: 5px outset #ea2f2f;
    width: 100px;
    height: 100px;
    display: inline-block;
}

      

Fiddle: http://jsfiddle.net/simbunch/wcvb88yg/

+1


source







All Articles