2009-10-27 69 views
3
<html> 
<head> 
<style type="text/css" rel="stylesheet"> 
    * {margin:0;padding:0;} 

    div#box {background-color:green;width:1000px;} 

    /* #box {position:absolute;top:0;right:0;} */ 
    /* #box {position:absolute;top:0;left:0;} */ 
    /* #box {float:right;} */ 
    #box {float:left;} 

    .clearer {clear:both;} 
</style> 
</head> 
<body> 
    <div id="box"> 
     asdafdsf 
    </div> 
    <div class="clearer"></div> 
</body> 
</html> 

取消對第一條浮法留下ID與浮動合適的人,你會看到的。我也將我嘗試過的解決方案留下了評論。上浮動沒有水平滾動條右

你應該有一個複製和粘貼完整的repro。

+1

什麼的doctype您使用:

我使用scrollLeft()設置基於div和畫布寬度初始滾動,類似於解決了這個與jQuery? –

+0

我沒有指定一個。我該怎麼做? – jdelator

回答

2

我不相信沒有任何解決方法,不使用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> 
0

我(我想可能是)一個類似的問題,我想右對齊畫布元素更寬然後保存它的股利。 div大約爲300px,canvas元素大約爲1000px。

使用float: right,畫布右對齊,但div上的滾動條消失。

$("#div").scrollLeft(canvas.width() - div.width())