Full Screen Background - contain element - html

I have a section of a website where I need a full screen background image. I used the trick from CSS Tricks - the first option. That works fine, but I have some content in that section and it is not contained. so if the height is reduced, but the width at max on a screen, the content of that section overflows. Is there any smart way of containing that content so that it reduces by height as well?
This is the CSS I'm using.
background: url('https://dl.dropboxusercontent.com/u/72385383/services-header-bg.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
See example fiddle.
The fiddle doesn't show the result properly, here is a screenshot of what I mean. I need it to work as in the fiddle where it's contained (so that the background image expands in height even more than the current height of the browser, but in both Chrome and Mozilla, it runs out. See example full screen and reduced.
Please help
EDIT
Here is the entire HTML
<div id="services-header">
<div class="container">
<div class="row">
<div class="col-xs-12" style="height: 100%;">
<h1>
The Creativity of the West meet <br>
the Technical Skill & Expertise of the East
</h1>
<p>
Our extraordinary team brings years of technology related experience to the table to ensure <br>
that you receive an amazing product at an unbelievable price. <br><br>
</p>
<img src="https://dl.dropboxusercontent.com/u/72385383/platforms.png" alt="Platforms"> <br><br><br><br><br><br>
<img src="https://dl.dropboxusercontent.com/u/72385383/iphone6.png" alt="iPhone APPR">
</div>
</div>
</div>
</div>
<div id="services-content">
<div class="container">
<div class="row">
<div class="col-xs-12">
<h1>What we can do for you</h1>
</div>
</div>
<div class="row service-row">
<img src="https://dl.dropboxusercontent.com/u/72385383/s-creative.jpg" alt="">
<p class="service">
Mobile Application <br>
Design & Development
</p>
<p class="desc">(iOS — Android — Windows)</p>
</div>
</div>
</div>
And here is the CSS:
body {
margin: 0;
padding: 0;
}
img {max-width: 100%;}
#services-header{
background: url('https://dl.dropboxusercontent.com/u/72385383/services-header-bg.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 100%;
text-align: center;
font-weight: 300;
color: #ffffff;
}
#services-header h1 {
font-size: 56px;
padding-top: 60px;
font-weight: 300;
line-height: 120%;
margin-bottom: .3em;
}
#services-header p {
font-size: 24px;
}
#services-content h1 {
font-size: 56px;
font-weight: 300;
text-align: center;
}
#services-content img {
display: block;
margin: 10px auto;
}
#services-content p.service {
font-weight: 600;
text-align: center;
}
#services-content p.service a{
font-weight: 600;
text-align: center;
color: #f93434;
cursor: pointer;
}
#services-content p.desc {
font-weight: 300;
text-align: center;
}
.service-row {
margin-bottom: 50px;
}
footer.services-page {
background: #000000;
padding: 20px 40px;
color: #ffffff;
font-weight: 300;
}
span.copyright {
}
span.footer-contact {
float: right;
}
span.footer-contact a {
margin-right: 30px;
color: #ffffff;
cursor: pointer;
}

The problem was that Mozilla needed a body {height:100%;} definition.

If you're trying to accomplish the same as the CSS-Tricks example you have to do the same
html{
background: url('https://dl.dropboxusercontent.com/u/72385383/services-header-bg.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

Related

CSS - make background image a link

I have placed a background image inside a div but would like it to be an active link to another page, and also maybe light up when hovered over. Here is the HTML & the CSS, any help would be greatly appreciated! thanks...
<div class="col-sm-4 img1">Football</div>
.img1 {
background-image: url(https://....);
background-repeat: no-repeat;
background-size: cover;
EDIT: full code;
.img1 {
background-image: url(https://images.unsplash.com/photo-1472108482137-8df36ccf0d7b?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1050&q=80);
background-repeat: no-repeat;
background-size: cover;
font-weight: bolder;
font-size: xx-large;
}
.img2 {
background-image: url(https://cdn.pixabay.com/photo/2015/05/28/16/37/sport-788105_960_720.jpg);
background-repeat: no-repeat;
background-size: 100%;
background-size: cover;
font-weight: bolder;
font-size: xx-large;
}
.img3 {
background-image: url(https://images.unsplash.com/photo-1528543606781-2f6e6857f318?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=701&q=80);
background-size: 80%;
background-repeat: no-repeat;
background-size: cover;
font-weight: bolder;
font-size: xx-large;
}
<!-- Containers center and horizontally pad your content -->
<div class="container-fluid">
<!-- create row inside container / row is wrapper for column-->
<div class="row">
<!-- now create 3 columns with small breakpoint -->
<div class="col-sm-4 brdcol img1"> Water Sports</div>
<div class="col-sm-4 brdcol img2">Football</div>
<div class="col-sm-4 brdcol img3">Hiking</div>
<!-- columns centred in page with parent container -->
</div>
</div>
All you need to do to have a clickable image - is to wrap your div element(the one with background image) with anchor tag, like this:
<div class="col-sm-4 img1">Football</div>
You need a single anchor tag with some CSS.
<a class="photo" href="website.net/link"></a>
CSS
.photo {
background-image: url('http://www.thinksnaps.com/wp-content/uploads/2014/07/images-background.jpg');
background-size: 300px;
background-repeat: no-repeat;
background-position: center;
border-radius: 50%;
background-clip: border-box;
transition: background-size 0.2s;
transition-timing-function: cubic-bezier(.07,1.41,.82,1.41);
display: block;
width: 190px;
height: 190px;
text-decoration: none;
cursor: pointer;
overflow: hidden;
text-indent: 100%;
white-space:nowrap;
}
.photo:hover {
background-size: 500px;
}

Is there a way to make the text bright and the background dark?

I would like a dark background with bright text, but the linear gradient and/or filter is making the entire div dark. Is there a way to archive both?
html(reactstrap)
<div class="banner">
<Container>
<div class="banner-text">
<div class="banner-heading">Glad to see you here !</div>
<div class="banner-sub-heading">
Here goes the secondary heading on hero banner
</div>
</div>
</Container>
</div>
css
.banner {
background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
url("../images/page/Front.jpg");
filter: brightness(0.6);
text-align: center;
color: #fff;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.banner-text {
filter: brightness(1.75);
padding: 200px 0 150px 0;
}
.banner-heading {
filter: brightness(1.75);
font-family: "Lobster", cursive;
font-size: 75px;
font-weight: 700;
line-height: 100px;
margin-bottom: 30px;
color: #fff;
}
Yes this is possible; if you remove the alpha channel from the rgba of the banner background; it will remove the opacity that is applied over the top of all the child elements.
Then remove the filter css properties from both banner text and banner heading this will then remove filtering effect on both text elements, leaving the colour to appear as expected. Please see below:
.banner {
background: linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)),
url("../images/page/Front.jpg");
text-align: center;
color: #fff;
background-repeat: no-repeat;
background-attachment: scroll;
background-position: center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.banner-text {
padding: 200px 0 150px 0;
color: white;
}
.banner-heading {
font-family: "Lobster", cursive;
font-size: 75px;
font-weight: 700;
line-height: 100px;
margin-bottom: 30px;
color: #ffff;
}
<div class="banner">
<Container>
<div class="banner-text">
<div class="banner-heading">Glad to see you here !</div>
<div class="banner-sub-heading">
Here goes the secondary heading on hero banner
</div>
</div>
</Container>
</div>
So what I’ve done to lighten my background picture is used
background-color:rgba(255,255,255,0.2);
background-blend-mode: lighten;
Maybe use something similar but to darken in the css of your background and try it for your text as well?

How to make Jumbotron in col-md-6 placed in the center on both side?

Here's my page:
The problem is, my Jumbotron placed on the upper side of the page. I want to move it to the center (a little down below). I tried overriding margin and padding but it still didn't work. How would I do that?
Here's my HTML
<div class="col-md-6">
<div class="welcome-page-eat">
<div class="jumbotron">
<h2>
Hello, world!
</h2>
<p>
This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.
</p>
<p>
<a class="btn btn-primary btn-large" href="#">Learn more</a>
</p>
</div>
</div>
</div>
And here's my CSS:
.welcome-page-eat {
background: url(../images/front_page/eat.jpg) no-repeat right 0;
margin-right: -15px;
margin-left: -15px;
padding-bottom: 62.5%;
background-position: 50% 50%;
background-repeat: no-repeat;
background-size: cover;
}
.welcome-page-cook {
background: url(../images/front_page/cook.jpg) no-repeat right 0;
margin-right: -15px;
margin-left: -15px;
padding-bottom: 62.5%;
background-position: 50% 50%;
background-repeat: no-repeat;
background-size: cover;
}
.jumbotron {
background-color: transparent;
color: white;
}
Try using:
.jumbotron {
background-color: transparent;
color: white;
margin: auto;
width: 90%;
}
Maybe this article can help you: W3CSchools | CSS Margin

Why background image isn't responsive to browser resize?

My background image and its text are responsive to width resizing as long as the browser height is sized to the max. But when decreasing browser (such as Chrome) height the background image doesn't fit the whole window anymore. Any suggestions help!
#header {
background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(/img/roses.jpg);
background-size: cover;
background-position: center center;
height: 100vh;
}
.name h1 {
font-family: 'Muli', sans-serif;
font-size: 500%;
font-weight: 300;
text-align: center;
padding-top: 10%;
}
.name p {
font-family: 'Play', sans-serif;
font-size: 150%;
text-align: center;
padding-top: 5%;
}
.navigation p {
display: inline;
}
.navigation {
text-align: center;
padding-top: 10%;
}
.contents:hover {
color: white;
text-decoration: none;
}
.contents {
color: whitesmoke;
text-decoration: none;
}
/* Media Queries */
#media (max-width: 33.9em) {
.name h1 {
font-size: 300%;
}
.name p {
font-size: 100%;
}
}
<section id="header">
<div class="container">
<div class="row">
<div class="col-xs-12 name">
<h1>Temple Naylor</h1>
</div>
</div>
<div class="row">
<div class="col-xs-12 name">
<p>I create Web-designs with a sense of Feng-Shui in mind; resulting for a intuitive, responsive, harmonious, experience for users across the world. <br>
NOW AVAILABLE FOR YOU</p>
</div>
</div>
<div class="row">
<div class="col-xs-12 navigation hidden-md-down">
<p><a class="contents" href="#">ABOUT</a> / </p>
<p><a class="contents" href="#">WORK</a> / </p>
<p><a class="contents" href="#">CONTACT</a> / </p>
<p><a class="contents" href="#">PHOTOGRAPHY</a></p>
</div>
</div>
</div>
</section>
Close but a little off. You want background-size: cover
body {
background: url(http://www.hd-wallpapersdownload.com/script/bulk-upload/3d-wallpaper-rose-dowload.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
DEMO
UPDATE:
I was told the OP would like to keep text from scrolling as it shrunk, so here is a version of the text in VW opposed to PX so it becomes responsive as well.
DEMO with responsive text.
When you resize the window, #header is more than 100% of the browser height due the .container inside, therefore the scrolling.
To fix it, add
#header { overflow: hidden; }
body { margin: 0; }
or get the .container out of the #header
you may want to use background-size: 100%;
updated
remove height: 100vh; from header and this should fix the problem
see fiddle
you may want to add background-position: fixed if this suits you, fiddle
see this great tut https://css-tricks.com/perfect-full-page-background-image/

flexslider with fixed height while keeping image aspect ratio with overflow hidden

Been searching for hours now. I want flexslider for a kind of banner rotator on a page. I managed to get a fixed height for the images. But the width of the images get stretched to the browsers borders left and right. I believe what i want is some kine of "overflow: hidden". If browser_width > img_width: show background left and right from the image. If browser_width < img_width: Cut of parts from the image on left and right side. All ways keep the aspect ratio.
Currently the image gets stretched/shrinked horizontally.
HTML
<div class="flexslider">
<ul class="slides">
<li>
<div class="flexslider_image">
<img src="/images/alnwick-castle-92607.png" />
</div>
</li>
<li>
<div class="flexslider_image">
<img src="/images/server-90389.png" />
</div>
</li>
</ul>
</div>
CSS
.slider_container {
margin-top: -120px;
}
.flexslider {
border: none !important;
box-shadow: none;
margin:0px;
padding: 0px;
}
.slides li {
background-position: center;
-webkit-backface-visibility: hidden;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.flexslider_image {
}
.flexslider_image img {
height: 500px;
}
After searching for some more hours i found a solution.
Do not use an img-tag for the image. Instead use a div with a background image. For details see my html and css.
Another advantage i was locking for anyway is, that one can now more easily place content on the slides.
HTML
<div class="flexslider">
<ul class="slides">
<li>
<div class="flexslider_background" style="background: url('/images/server-90389.png') no-repeat center;">
<div class="flexslider_content">
<p>
Hallo Test 2
</p>
</div>
</div>
</li>
<li>
<div class="flexslider_background" style="background: url('/images/minecraft-938604.png') no-repeat center;">
<div class="flexslider_content">
<p>
Hallo Test 3
</p>
</div>
</div>
</li>
<li>
<div class="flexslider_background" style="background: url('/images/minecraft-669310.jpg') no-repeat center;">
<div class="flexslider_content">
<p>
Hallo Test 4
</p>
</div>
</div>
</li>
</ul>
</div>
CSS
.slider_container {
margin-top: -120px;
}
.flexslider {
border: none !important;
box-shadow: none !important;
margin:0px !important;
padding: 0px !important;
margin-bottom: 10px !important;
background-color: #eee !important;
}
.slides li {
background-position: center;
-webkit-backface-visibility: hidden;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.flexslider_background {
height: 500px;
text-align: center;
}
.flexslider_content {
display: inline-block;
margin-top: 145px;
height: 350px;
width: 1000px;
border: 3px solid black;
}
.flexslider_content p {
float: left;
font-size: 2em;
}