Firstly we need the html wrappers for the content. We have four wrappers for the background, scrollable area, centering vertically and centering horizontal.
<div class="overlay"> <div class="t"> <div class="tc"> <div class="content"> <h1>This is the lightbox overlay</h1> <p>Check it at different sizes to see how it works</p> </div> </div> </div> </div>
Now we add some css to the background outer wrapper, to position it on top and fill the screen with black:
.overlay { width: 100%; height: 100%; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 5; overflow: auto; background: rgb(76, 76, 76); background-color: rgba(0, 0, 0, 0.8); }
Then the css added to the inner wrapper allows the content to be aligned vertically and horizontally:
.overlay .t { margin: auto; display: table; width: 100%; height: 100%; } .overlay .tc { display: table-cell; vertical-align: middle; }
And finally the content wrapper can then restrict the content width and style the lightbox background/padding depending on the content type:
.overlay .content { max-width: 680px; margin: 0 auto; padding: 20px; background-color: #fff; }
Here's how that looks so far:
If you want a different background, rather than a black background you can blur the content behind using the following code:
<div class="page toblur blur"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae quam in enim volutpat pulvinar.</p> </div>
You then add the css to blur the background. The blur class can be added and removed to trigger the animation effect:
.toblur { -webkit-transform: translate3d(0, 0, 0); -webkit-filter: blur(0px); -moz-filter: blur(0px); -o-filter: blur(0px); -ms-filter: blur(0px); filter: blur(0px); -webkit-transition: all ease-out 0.2s; -moz-transition: all ease-out 0.2s; -o-transition: all ease-out 0.2s; -ms-transition: all ease-out 0.2s; transition: all ease-out 0.2s; } .blur { -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); }
Here's how that looks now:
http://jsfiddle.net/kmturley/m2vEN/3/
If you need margins around the lightbox:
Flexbox version (IE11 align top as it doesn't support the margin: auto fix) https://jsfiddle.net/kmturley/570ka9Lq/1/
Tablecell version (Works well in all browsers)
http://jsfiddle.net/kmturley/m2vEN/12/
No comments:
Post a Comment