user1493824
user1493824

Reputation: 41

How to have two background images. One a top banner and the second a textured background?

I'm starting to work on a website. I would like to have two background images. One would be a banner image at the top similar to the gray strip across the top of stack overflow's website. Then the other image is a image that I would have to create a textured background. This would be like the white space on this website but instead of a color it would be a repeatable image. Websites with the look i'm going for are pinterest.com, subtlepatterns.com, Facebook.com, etc...

I have tried many different things. I tried putting a background in the html tag in the css. That didn't work. I also tried putting two different background images in the body tag. That didn't work because it would just show the first one. I also tried creating the background in it's own class. But when I did that it wouldn't show up at all. Maybe I left something out of the html?

Currently I have Following code:

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
margin: 0;
padding: 0;
background-image:url(../images/absurdidad.png);
background-repeat:repeat;
}

This has created the main background image that takes up the whole screen like I want it to. Know if I could add the second one just at the top to only repeat horizontally then it'll be great!

Thanks in advance for the help.

Upvotes: 4

Views: 12026

Answers (5)

arttronics
arttronics

Reputation: 9955

Here's a jsFiddle I just made: jsFiddle Banner and Repeatable Background

CSS:

body{
    background-image:url("http://silviahartmann.com/background-tile-art/images/grunge-background-seamless-repeating.jpg");
    background-repeat: repeat;
    color: white;
}

#headerBackground{
   position: fixed;
   width: 100%;
   height: 50px;
   background-color: gray;
}

#headerContent {
    background-image: url(http://lorempixel.com/700/50/city/5);
    background-position: center center;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    text-align: center;
}

HTML:

<div id="headerBackground">
    <div id="headerContent">Other Header Content</div>
</div>

Update: Revised jsFiddle with Hotlinkable repeatable background image.

Upvotes: 2

Prashobh
Prashobh

Reputation: 9542

size and position you can adjust.Here image2 will repeat.

background:url(image1.jpg),url(image2.jpg);
background-size:80px 60px;
-moz-background-size:80px 60px; /* Firefox 3.6 */
background-repeat:no-repeat,repeat;
background-position:top left,center center;

Upvotes: 1

Edouard Reinach
Edouard Reinach

Reputation: 624

using commas, you can have multiple background in the same element:

background-image: url('first'), url('second');

and the same rule apply for other styling:

background-position: top, bottom;

And so on.

More informations @ css3.info

If you want widespread browser support, multiple DIVs is the only way to do it:

<div class="one">
  <div class="two">
  </div>
</div>

Good luck!

Upvotes: 5

King Skippus
King Skippus

Reputation: 3826

The only way I know of to do this is to have multiple wrapper tags with background associated with them. For example:

<div style="background-image:url(../images/image1.png);">
    <div style="background-image:url(../images/image2.png);">
        <!-- div content -->
    </div>
</div>

Upvotes: 2

leopic
leopic

Reputation: 3012

This will help you Can I have multiple background images using CSS?

You can use CSS3 to serve multiple backgrounds or some tag trickery to get it to work.

Upvotes: 1

Related Questions