Ticket #9093 (closed bug: worksforme)
Css Body Background will disappear in old Opera
| Reported by: | alistair.potts@… | Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | 1.next |
| Component: | misc | Version: | 1.6 |
| Keywords: | needsreview | Cc: | |
| Blocking: | Blocked by: |
Description
I realise that there's no support for Opera < 10.6, but jquery makes any body background image vanish in older Opera versions, which isn't good.
Happens when jquery is in the body. Failure verified to occur on Opera 9.64 on Windows.
<!DOCTYPE html>
<style>
body{ background-image: url("/whatever.png"); }
</style>
<body>
<script src="/jquery.js"></script>
Change History
comment:2 follow-up: ↓ 6 Changed 2 years ago by addyosmani
- Priority changed from undecided to low
- Resolution set to worksforme
- Status changed from new to closed
- Component changed from unfiled to misc
I've tested http://jsfiddle.net/df9nM/1/show/ (a working reproduction of your test case, pardon the image) with all versions of Opera I have back to 9.64 (9.64,10,10.6) using jQuery 1.6 and haven't been able to reproduce this issue at all. The body background is completely visible. Please note that #9028 has been fixed.
If anyone is able to reproduce the issue in Opera < 10.6 (or provide an alternative test case that does reproduce) please feel free to re-open this ticket.
comment:3 Changed 2 years ago by anonymous
Hello, not sure if my previous comment went through, anyway:
is the test case I've made. In Opera 9.64 / win32 you'll see that nothing shows in the bottom right pane. The problem is the _fix_ that was made in #9028, which sets the background to "none" on the disconnected body element.
comment:4 Changed 2 years ago by timmywil
I don't see how that fix could be related as it only sets background to none on our mock body. No browser confuses setting it's style with a css rule that would affect all body elements...right?
comment:5 Changed 2 years ago by alistair.potts@…
Well, you'd think so. But apparently not in Opera. Line 1281 is definitely what's causing it, just commenting it out is an immediate fix (but obviously not satisfactory).
comment:6 in reply to: ↑ 2 Changed 2 years ago by ajpotts77
Replying to addyosmani:
I've tested http://jsfiddle.net/df9nM/1/show/ (a working reproduction of your test case, pardon the image) with all versions of Opera I have back to 9.64 (9.64,10,10.6) using jQuery 1.6 and haven't been able to reproduce this issue at all. The body background is completely visible. Please note that #9028 has been fixed.
If anyone is able to reproduce the issue in Opera < 10.6 (or provide an alternative test case that does reproduce) please feel free to re-open this ticket.
I've tried a few more tests and you don't need a body tag at all, you just need the jquery script to load after the style.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

The reason is that jquery1.6 is now creating a magic disconnected body element, and setting the background to none (line 1281). In old opera, this makes the background of the real body disappear too.
Apparently, the background needs to be set to "none" because of bug #9028 (IE crash).
Possible solution is only to set the background to "none" if it's IE.