user3760941
user3760941

Reputation: 528

divs not centering horizontally & vertically

I want to make the turquoise and green divs be in the centre of the red div. Ive tried margin:0 auto, floating, text align, all which don't work.

turquoise div = header-logo-wrap
green div = header-text-wrap

How can I make these divs be in the centre horizontally and vertically?

really appreciate any help, thank you

@charset "UTF-8";
/* CSS Document */

body{
	background-color:#F6F7C1;	
	padding:0px;
	margin:0 auto; /* aligns content to touch the edge; gets rid of default spacing/margin between edge and content */
}

/* Header */
#header-wrap{
	background:#D6ECFF;
	width:100%;
	height:auto;
	border-bottom: 3px solid #CCC;
	/* margin:0 auto; needed? */
}
#header-top{
	/* contains logo & title text */
	background:#F00;
	width:960px;
	height:200px;
	margin:0 auto; /* aligns centrally */
}
.header-text-wrap{
	width:452px;
	height:auto;
	background:#0F0;
	text-align:justify;
	float:left;
}
.header-logo-wrap{
	width:100px;
	height:100px;
	background:#0CC;
	text-align:justify;
	float:left;
}
#header-bottom{
	/* contains navigation menu */
	background:#00F;
	width:960px;
	height:50px;
	margin:0 auto; /* aligns centrally */
	border-top: 3px solid #CCC;
}

/* Fonts */
header{
	font-family: Arial, sans-serif, tahoma, Arial, Cambria;
	-webkit-font-smoothing: antialiased; /* subtley makes fonts smoother */
	font-size:45px;
	text-transform:uppercase;
	line-height:40px;
}
slogan{
	font-family: courier new, tahoma, Arial, Cambria, serif;
	-webkit-font-smoothing: antialiased; /* subtley makes fonts smoother */
	font-size:20px;
	text-transform:uppercase;
	word-spacing:10px;
	letter-spacing:5px;
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css"/>
<!-- Meta Tags Below -->
<meta name="description" content="" />
<meta name="keywords" content="" />
<title>___________________________</title>
<!-- Google Analytics Code Below -->
<!-- _____________________________ -->
</head>

<body>
<div id="header-wrap">

<div id="header-top">
<div class="header-logo-wrap"></div>
<div class="header-text-wrap">
<header>text goes here &amp; more here
</header>
<slogan>more text goes here</slogan>
</div>
</div>
<div id="header-bottom"></div>

</div>
</body>
</html>

Upvotes: 0

Views: 413

Answers (2)

Banzay
Banzay

Reputation: 9470

You need to make these div-s display: inline-block to make them centered horizontally, and make display: table-cell for wrapping container to make divs centered vertically.

@charset "UTF-8";
/* CSS Document */

body{
	background-color:#F6F7C1;	
	padding:0px;
	margin:0 auto; /* aligns content to touch the edge; gets rid of default spacing/margin between edge and content */
}

/* Header */
#header-wrap{
	background:#D6ECFF;
	width:100%;
	height:auto;
	border-bottom: 3px solid #CCC;
	/* margin:0 auto; needed? */
}
#header-top{
	/* contains logo & title text */
    display: table-cell;
	background:#F00;
	width:960px;
	height:200px;
    text-align: center;
    vertical-align: middle;
}
.header-text-wrap{
    display: inline-block;
	width:452px;
	background:#0F0;
	text-align: center;
    margin: 0;
}
.header-logo-wrap{
    display: inline-block;
	width:100px;
	height:100px;
	background:#0CC;
	text-align: center;
}
#header-bottom{
	/* contains navigation menu */
	background:#00F;
	width:960px;
	height:50px;
	margin:0 auto; /* aligns centrally */
	border-top: 3px solid #CCC;
}

/* Fonts */
header{
	font-family: Arial, sans-serif, tahoma, Arial, Cambria;
	-webkit-font-smoothing: antialiased; /* subtley makes fonts smoother */
	font-size:45px;
	text-transform:uppercase;
	line-height:40px;
}
slogan{
	font-family: courier new, tahoma, Arial, Cambria, serif;
	-webkit-font-smoothing: antialiased; /* subtley makes fonts smoother */
	font-size:20px;
	text-transform:uppercase;
	word-spacing:10px;
	letter-spacing:5px;
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css"/>
<!-- Meta Tags Below -->
<meta name="description" content="" />
<meta name="keywords" content="" />
<title>___________________________</title>
<!-- Google Analytics Code Below -->
<!-- _____________________________ -->
</head>

<body>
<div id="header-wrap">

<div id="header-top">
<div class="header-logo-wrap"></div>
<div class="header-text-wrap">
<header>text goes here &amp; more here
</header>
<slogan>more text goes here</slogan>
</div>
</div>
<div id="header-bottom"></div>

</div>
</body>
</html>

Upvotes: 0

kind user
kind user

Reputation: 41893

Use flex positioning.

@charset "UTF-8";

/* CSS Document */

body {
  background-color: #F6F7C1;
  padding: 0px;
  margin: 0 auto;
  /* aligns content to touch the edge; gets rid of default spacing/margin between edge and content */
}
/* Header */

#header-wrap {
  background: #D6ECFF;
  width: 100%;
  height: auto;
  border-bottom: 3px solid #CCC;
  /* margin:0 auto; needed? */
}
#header-top {
  /* contains logo & title text */
  background: #F00;
  width: 100%;
  height: 200px;
  margin: 0 auto;
  /* aligns centrally */
  display: flex;
  justify-content: center;
  align-items: center;
}
.header-text-wrap {
  width: 452px;
  height: auto;
  background: #0F0;
  text-align: justify;
  float: left;
}
.header-logo-wrap {
  width: 100px;
  height: 100px;
  background: #0CC;
  text-align: justify;
  float: left;
}
#header-bottom {
  /* contains navigation menu */
  background: #00F;
  width: 100%;
  height: 50px;
  margin: 0 auto;
  /* aligns centrally */
  border-top: 3px solid #CCC;
}
/* Fonts */

header {
  font-family: Arial, sans-serif, tahoma, Arial, Cambria;
  -webkit-font-smoothing: antialiased;
  /* subtley makes fonts smoother */
  font-size: 45px;
  text-transform: uppercase;
  line-height: 40px;
}
slogan {
  font-family: courier new, tahoma, Arial, Cambria, serif;
  -webkit-font-smoothing: antialiased;
  /* subtley makes fonts smoother */
  font-size: 20px;
  text-transform: uppercase;
  word-spacing: 10px;
  letter-spacing: 5px;
}
<div id="header-wrap">

  <div id="header-top">
    <div class="header-logo-wrap"></div>

    <div class="header-text-wrap">
      <header>text goes here &amp; more here
      </header>
      <slogan>more text goes here</slogan>
    </div>

  </div>
  <div id="header-bottom"></div>

Upvotes: 2

Related Questions