From the fiddle, it appears that by using flexbox justify-content:center
and align-items:center
on .carousel-item .img .text
the text becomes centered. What this is doing is setting the div to be display: flex
and centering the content both vertically and horizontally.
More on flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
html, body, .containerWrap{
height: 100%;
display: flex;
flex-direction: column;
background: red;
margin: 0;
}
.containerWrap {
display:flex;
flex-flow: column nowrap;
background-color:blue;
}
.defaultContainer {
flex:none;
background-color:black;
color:white;
}
.centerContainer {
flex:auto;
background-color:yellow;
overflow-y: auto;
}
.header{
height: 95px;
}
.header .row .col{
}
.footer{
height: 65px;
}
.text-align-right{
text-align: right;
}
.logo img{
height: 85px;
}
.carousel-item .img{
background-repeat: no-repeat;
background-size: cover;
background-position: center;
text-align: center;
}
.carousel-item .img .text{
color: #000;
background-color: #FFC;
vertical-align: middle;
opacity: 0.8;
display: flex;
justify-content: center;
align-items: center;
}
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="styles.css" media="screen" />
<title>Hello, world!</title>
</head>
<body>
<div class="containerWrap">
<div class="header defaultContainer">
<div class="container-fluid h-100">
<div class="row h-100 align-items-end">
<div class="col-4 logo">
<img src="https://logosbynick.com/wp-content/uploads/2018/03/final-logo-example.png"/>
</div>
<div class="col-2"></div>
<div class="col-6 text-align-right">
<a href="#">one</a>
<a href="#">two</a>
<a href="#">three</a>
<a href="#">four</a>
<a href="#">five</a>
</div>
</div>
</div>
</div>
<div class="centerContainer h-100 bg-secondary text-white">
<div id="carouselExampleControls" class="h-100 carousel slide" data-ride="carousel">
<div class="carousel-inner h-100">
<div class="carousel-item active h-100 ">
<div class="img bg-info h-100 " style="background-image: url(test.jpg);">
<div class="text h-100">first image</div>
</div>
</div>
<div class="carousel-item h-100">
<div class="img bg-warning h-100" style="background-image: url(test1.jpg);">
<div class="text h-100">second image</div>
</div>
</div>
<div class="carousel-item h-100">
<div class="img bg-success h-100" style="background-image: url(test2.jpg);">
<div class="text h-100">third image</div>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
<div class="footer defaultContainer">
<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-5 h-100 bg-success">left info</div>
<div class="col-2 h-100 bg-warning"></div>
<div class="col-5 h-100 bg-info text-align-right">right info</div>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
edit: this is easier to see when viewing the snippet in full page mode.