Alex Wright
Alex Wright

Reputation: 192

Horizontally center video in Bootstrap

Researched elsewhere, can't find a solution to horizontally center a video in a Bootstrap div / header section while keeping the video vertically aligned with the top. Div / header section is 100% width with two fixed heights at certain viewport breakpoints.

I've tried removing/renaming the <header> tag in case Bootstrap's styles interfere. Tried <center> tags, specifying the video tag as display:inline and many many other attempts.

The video in this example centers at certain breakpoints but otherwise is left-aligned. I'd like it to be centered throughout all viewport widths, and top aligned as well.

Thanks very much!

HTML:

<header>
  <video loop muted autoplay poster="images/3671960.jpg" class="fullscreen-video">
        <source src="video/3671960.mp4" type="video/mp4">
  </video>
<div class="header-content">
  <div class="header-content-inner">
      <h1>A bunch of header text.</h1>
  </div>
</div>
<div class="launcher">
    <div class="launcher-inner">
      <a href="#what-i-do" class="btn btn-primary btn-outline-inverse page-scroll text-capitalize">Button text</a>
    </div>
</div>

CSS :

header {
position: relative;
text-align: center;
top: 0;
left: 0;
width:100%;
height: 475px;
color: #fff;
overflow: hidden;
margin: 0 auto;
}

header .fullscreen-video {
position: absolute;
top: 0;
left: 0;
min-width:100%;
min-height:100%;
z-index: -100;
}

@media (min-width: 768px) { 
header {
height: 665px;
}
}

Upvotes: 0

Views: 9382

Answers (1)

Srinivasan Lakshmanan
Srinivasan Lakshmanan

Reputation: 433

HTML

<header>
  <video loop muted autoplay poster="images/3671960.jpg" class="fullscreen-video">
    <source src="video/3671960.mp4" type="video/mp4">
  </video>
<div class="header-content">
  <div class="header-content-inner">
      <h1>A bunch of header text.</h1>
  </div>
</div>
<div class="launcher">
    <div class="launcher-inner">
      <a href="#what-i-do" class="btn btn-primary btn-outline-inverse page-scroll text-capitalize">Button text</a>
    </div>
</div>
</header>

CSS

header {
  position: relative;
  text-align: center;
  top: 0;
  left: 0;
  width:100%;
  height: 475px;
  color: #fff;
  overflow: hidden;
  margin: 0 auto;
}

header .fullscreen-video {
  position: absolute;
  left: 50%;
  top: 0;
  -ms-transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  min-width:100%;
  min-height:100%;
  z-index: -100;
}

@media (min-width: 768px) { 
  header {
    height: 665px;
  }
}

Demo Link : https://jsfiddle.net/hellosrini/vwc5hek0/

Upvotes: 4

Related Questions