Я не верю, что можно обойтись без использования javascript. Браузер отображает страницу относительно верхнего левого угла этой страницы, поэтому все, что находится выше или слева от этой точки 0,0, фактически находится за пределами экрана. Все переполнения происходит снизу и справа. То же самое происходит с содержимым внутри любого элемента блока. Поэтому, если у вас есть элемент, расположенный относительно правой стороны страницы, ширина которого больше 100%. Часть слева от исходной точки 0,0 будет просто за кадром.
Хотелось бы, чтобы кто-то доказал, что я не прав.
Вот решение javascript, которое работает:
<html>
<head>
<style type="text/css" rel="stylesheet">
* {margin:0;padding:0;}
div#box {background-color:green;width:1000px;}
#box {position:absolute;top:0;left:0;}
.clearer {clear:both;}
</style>
</head>
<body>
<div id="box">
asdafdsf
</div>
<div class="clearer"></div>
<script type="text/javascript">
function layout() {
if( typeof( window.innerWidth ) == 'number' )
this.screenWidth = window.innerWidth;
else //patch for IE
this.screenWidth = document.body.clientWidth;
this.el = document.getElementById('box')
if (this.el.offsetWidth > this.screenWidth)
window.scroll(this.el.offsetWidth,0);
else
this.el.style.left = (this.screenWidth - this.el.offsetWidth) + 'px';
}
function eventListener(el,action,func) {
if (el) {
if (el.addEventListener)
el.addEventListener(action, func, false);
else if (el.attachEvent)
el.attachEvent('on' + action, func);
}
}
eventListener(window,'resize',layout);
layout();
</script>
</body>
</html>