Having trouble with CSS background image - html

I'm trying to use a stock photo to cover my page. For some reason I cannot seem to get this to work. My image just refuses to cover the page.
#cover {
background-image: url("https://i.stack.imgur.com/QE9pP.jpg");
background-size: cover;
background-size: center center;
background-repeat: no-repeat;
background-attachment: fixed;
background-color: #464646;
}
.cover-content {
color: hsla(182, 100%, 28%, 1);
font-family: font-family: 'Gravitas One', cursive;
font-size: 400%;
text-align: center;
}
<div id="cover">
<div class="cover-content">
<h1>Snowfall Design Studio</h1>
</div>
</div>

Your page does not cover the whole viewport. If you want an image to cover the whole screen, put the background-image on the html or body element
html {
height: 100%;
}
body {
min-height: 100%;
background-image: url("https://i.stack.imgur.com/QE9pP.jpg");
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;
background-color: #464646;
}
.cover-content {
color: hsla(182, 100%, 28%, 1);
font-family: font-family: 'Gravitas One', cursive;
font-size: 400%;
text-align: center;
}
<div id="cover">
<div class="cover-content">
<h1>Snowfall Design Studio</h1>
</div>
</div>

Here is an example of the image covering the whole page: https://codepen.io/anon/pen/owJVgq
You needed to move the background images to the body tag and add a viewport of:
<meta name="viewport" content="width=device-width, initial-scale=1">
If you are looking for this section to be just a section and have more content below the picture, this is what you're looking for: https://codepen.io/anon/pen/BZvbNe
Again you need to add the viewport, but also add:
body {
margin: 0px;
padding: 0px;
}

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?

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/

Full Screen Background - contain element

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;
}

Repeating background image with absolute footer

I am trying to have a repeating image as my background for a blog I run.
I cannot get the footer to appear.
EDIT: THE CODE PROVIDED HAS THE HEADER, REPEATING IMAGE, AND FOOTER. It was the simplest way to code in the images for the background.
body {
background:#1b0e11;
color:#170d23;
font:11px/18px arial, verdana, helvetica, sans serif;
margin:0px 0px 0px 0px;
padding:0px;
background-image: url(http://i1331.photobucket.com/albums/w595/4V3D15/header_zpsf652d36b.png), url(http://i1331.photobucket.com/albums/w595/4V3D15/middle_zps8a8ab3d1.png), url(http://i1331.photobucket.com/albums/w595/4V3D15/footer2_zpsc6e75bc2.png);
background-repeat: no-repeat, repeat-y, no-repeat;
background-position: center top, center center, center bottom;
}
Just remove/comment this out:
// background-repeat: no-repeat, repeat-y, no-repeat;
Not quite sure where your code is for the footer, can you provide a fiddle?
I fail to see a problem with the code you provided.
My attempt at a footer using your background.
HTML:
<div class="footer">Footer</div>
CSS:
body {
background:#1b0e11;
color:#170d23;
font:11px/18px arial, verdana, helvetica, sans serif;
margin:0px 0px 500px 0px;
padding:0px;
background-image: url(http://i1331.photobucket.com/albums/w595/4V3D15/header_zpsf652d36b.png), url(http://i1331.photobucket.com/albums/w595/4V3D15/middle_zps8a8ab3d1.png), url(http://i1331.photobucket.com/albums/w595/4V3D15/footer2_zpsc6e75bc2.png);
background-repeat: no-repeat, repeat-y, no-repeat;
background-position: center top, center center, center bottom;
}
.footer {
width: 100%;
height: 100px;
outline: 1px solid;
background: #eee;
position: absolute;
bottom: 0;
}
DEMO HERE