I want to create a section with a background covering it in a mobile web page, so I was using the following CSS code:
#section1{
background: url("background1.png") auto 749px;
height: 749px;
}
The background is showing correctly on Android (Chrome, Firefox ...), but it is not showing at all on iPhone or iPad (Safari, Chrome iOS ...). I have tried to set these properties using jQuery when the DOM is ready, but no luck. I read that the size might be a problem, but the image is about 700kB (1124x749px) so it should accomplish the Safari Web Content Guide rules. Which is the problem?
Add a background-color solved my problem
I hope this will help someone in despair. In my case, it was the size of the image that was too big, so the iPad just wasn't loading it (and it was right actually).
Diminishing its size and quality solved the loading issue.
Reduce the image size if nothing else works -- iOS doesn't like large image sizes on mobile and simply won't display the image if it's too large.
Great fundamentals by @insertusernamehere! No matter what I did I couldn't get my image to show up...until, I went back to basics. The image size was too large and iPhone didn't like loading an image of that size, over 700kbs. So, I reduced it to 32kb and we were in action.
There's a problem with your CSS rule:
Your using the shorthand notation in which the
background-size
-property comes after thebackground-position
-property and it must be separated by a/
.What you're trying to do is to set the position, but it will fail as
auto
is not a valid value for it.To get it to work in shorthand notation it has to look like this:
Also note that there's a value called
cover
, which may be suitable and more flexible here:The support for
background-size
in the shorthand notation is also not very broad, as it's supported in Firefox 18+, Chrome 21+, IE9+ and Opera. It is not supported in Safari at all. Regarding this, I would suggest to always use:Here are a few examples and a demo, to demonstrate that behavior. You'll see that Firefox for example shows every image except the fist one. Safari on the other hand shows only the last.
CSS
Demo
Try before buy
Further reading
MDN CSS reference "background"
MDN CSS reference "background-size"
I had an negative text-indent that was throwing my background image off the page, so color:Transparent it is then.
The problem was not solved when I tried to use properly the background in shorthand. It works when I split the background property: