The problem is that there is no content after #wrapper . To get horizontal scrolling, content should be fixed on the left edge of the document, which becomes hidden when the tapering viewport or specified content exceeds the width of the viewport. Since #wrapper floats to the right, this is not possible because it does not have a left-handed anchor point. :after makes it work.
#wrapper { float:right ... } body:after { clear:right; content:' '; display:block; height:1px; min-width:420px }
In the CSS above, a space is added after the contents of the body , which is #wrapper . This space is at least the width of the #wrapper box model, but does not have a float and is tied to the left edge of the viewport. So ... as soon as its extreme right edge is hidden, horizontal scrolling starts; creating the illusion that #wrapper triggers a scroll event.
Violin: http://jsfiddle.net/jg3nH/
source share