This is definitely a WebKit issue. It happens in both Chrome and Safari. I've sent bug reports to Apple about it, but I've yet to get a response or see a fix in an update. Still happening in Safari 5.
–
DavidJun 28 '10 at 16:34

I've had that in the last month too...but I'm using firefox and it happens basically in all pages.
–
devoured elysiumAug 4 '10 at 9:55

setting the background color to both html and body worked (Chrome 5.0.375.125)
–
LucasAug 11 '10 at 20:34

Just wanted to add that this happened to me with in Safari. Adding the "background" to the HTML worked. Something like: <style type="text/css"> html { background-image: url(<path_to_bg_image>); }</style>
–
wenbertSep 19 '11 at 17:08

It force's chrome to think the pages content is 100% when its not - this stops the body 'appearing' the size of the content and resolves the missing background bug. This is basically doing what height: 100% does when applied to the body or html but you don't get the side effect of have your backgrounds cut off when scrolling (past 100% page height) like you do with a 100% height on those elements.

I had the same issue on a couple of sites and fixed it by moving the background styling from body to html (which I guess is a variation of the body {} to html, body{} technique already mentioned but shows that you can make do with the style on html only), e.g.

This answer worked no issues (using chrome browser). But after I refreshed the CSS and html file, I reverted back to the previous definition of only having the body tag. It works with that too, i.e. I no longer have the html{...} defn in my css. Any thoughts?? Thanks.
–
Sathish JayapalJul 4 '12 at 21:38

Simple, correct, solution - define the background image and colour in html, not body. Unless you've defined a specific height (not a percentage) in the body, its height will be assumed to be as tall as required to hold all content. so your background styling should go into html, which is the entire html document, not just the body. Simples.

I'm not sure if your answer is browser specific. Chrome requires html CSS defn once and then once it loads that up. You go back comment the html information. Everything works with just the body tag in CSS file. Cheers.
–
Sathish JayapalJul 4 '12 at 21:41

I would try what Logan and 1mdm suggested, tho tweak the CSS, but I would really wait for a new Chrome version to come out with fixed bugs, before growing white hair.

IMHO the current Chrome version is still alpha version and was released so that it can spread while it is in development. I personally had issues with table widths, my code worked fine in EVERY browser but could not make it work in Chrome.

Hi, what I think Brad is saying is that it's generally bad practice to just answer with a link - it's preferable to give an overview of what the link contains, so that if the link ever breaks the information is still here.
–
JeffDec 13 '12 at 2:07

Everybody has said your code is fine, and you know it works on other browsers without problems. So it's time to drop the science and just try stuff :)

Try putting the background color IN the body tag itself instead of/as-well-as in the CSS. Maybe insist again (redudantly) in Javascript. At some point, Chrome will have to place the background as you want it every time. Might be a timing-interpreting issue...

[Should any of this work, of course, you can toggle it on the server-side so the funny code only shows up in Chrome. And in a few months, when Chrome has changed and the problem disappears... well, worry about that later.]

Adam's chromeFix solution with Paul Alexander's pure-CSS modification solved the problem in Chrome, but not in Safari. A couple additional tweaks solved the problem in Safari, too: width: 100% and z-index:-1 (or some other appropriate negative value that puts this element behind all the other elements on the page).

I'm pretty sure this is a bug in Chrome. Most likely it happens if you resize the browser TO full screen, then switch tabs. And sometimes if you just switch tabs/open a new one. Good to hear you found a "fix" though.