我不相信沒有任何解決方法,不使用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>
什麼的doctype您使用:
我使用
scrollLeft()
設置基於div和畫布寬度初始滾動,類似於解決了這個與jQuery? –我沒有指定一個。我該怎麼做? – jdelator