有沒有辦法做到這一點?我不希望內容在屏幕下方滾動。 (這是誰可能有較小的屏幕比大多數人)無論如何,如果絕對位置元素在屏幕下方,使身體滾動條出現?
回答
NB:列維普特納是正確的pointing out,如果
<div>
是空的這種行爲只發生。
兩個選項:
- 你可以設置一個
min-height
和min-width
的<body>
。 - 您可以在調整窗口大小時使用JavaScript在
<body>
上設置height
。
設置min-height
和min-width
:
例如,如果絕對定位<div>
是400個× 300像素:
body {
min-height: 400px;
min-width: 300px;
}
限制:
- Internet Explorer 6 缺少對此的支持,雖然有簡單的黑客來解決這個問題。在這一點上,
min-height
在幾乎所有其他瀏覽器中工作。 - 沒有辦法容納動態大小的
<div>
,期望通過過度補償。
動態設置height
(當被調整大小的窗口):
鑑於絕對定位的400個× 300像素,位於[0,0] <div>
:
var $win = $(window);
$win.resize(function(){
var height = Math.max(400, $win.height());
var width = Math.max(300, $win.width());
$('body').css({
height: height,
width: width
});
});
或者,如果<div>
的尺寸或位置可變:
var $win = $(window);
var $div = $('#thediv'); // the absolutely positioned div
$win.resize(function(){
var offset = $div.offset();
var height = $div.outerHeight() + offset.top;
var width = $div.outerWidth() + offset.left;
height = Math.max(height, $win.height());
width = Math.max(width, $win.width());
$('body').css({
height: height,
width: width
});
});
通過使用outerHeight
和outerWidth
,包括填充和邊框。通過使用offset
(而不是CSS top
和left
,如果你正在使用jQuery或乾脆<body onresize="myResize()" >
爲本地JavaScript上的位置相帶到文件,不給offset parent。
好的,謝謝我會嘗試在我回到我的筆記本電腦時。 (我也不擔心IE 6或更早的版本,我選擇不支持更早的版本,因爲我的網站使用socket io很多,並且不支持比6更遠的版本。 – 2012-01-18 12:19:28
如果您滿意要使用JavaScript來解決這個問題,你應該在調整窗口大小時將'body'高度設置爲絕對定位'div'的高度。 – thirtydot 2012-01-18 12:23:05
如何檢測窗口大小? – 2012-01-18 12:27:54
使用$(window).resize(function(){...});
。
據我瞭解,這是你在做什麼:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<div id="scroll-div" style="position:absolute; height:2000px;"></div>
</body>
</html>
,並期望得到一個滾動條?從我所瞭解的瀏覽器不會呈現div或至少滾動條,直到你添加一些內容。
如果你只是添加一些內容到div(滾動div),你會得到滾動條。
+1,即使技術上沒有OP的問題的答案。謝謝讓我意識到我是盲目地認爲這是由div的位置造成的...... :-) – PPvG 2012-01-18 13:43:38
- 1. CSS位置絕對 - 下一個定位元素是身體?
- 2. 絕對位置和溢出:自動沒有滾動條出現
- 3. 使用jQuery在屏幕上元素的絕對位置
- 4. 無論垂直滾動條效果如何,控件的位置
- 5. 固定位置:溢出時的絕對元素:滾動時的滾動元素
- 6. 如何使gridview元素適合沒有滾動條的屏幕?
- 7. 如何使用位置:絕對滾動
- 8. 當它滾動出屏幕時更改元素位置
- 9. IE7滾動條位置:相對項目WAS超出屏幕
- 10. 如何在元素出現在屏幕上時啓動動畫?
- 11. 相對鼠標位置,如果元素大於屏幕
- 12. 讓div出現在相同的位置,無論屏幕大小如何
- 13. 溢出:滾動div位置:絕對元素內
- 14. 無論屏幕尺寸如何,元素是否保留其位置?
- 15. 如果元素在固定位置元素後面滾動
- 16. 避免滾動絕對定位元素
- 17. 如何在屏幕上定位元素?
- 18. 垂直滾動條位置絕對
- 19. CSS,位置:絕對的,滾動條
- 20. 如果位置絕對和overflow-x hidden指定,則不能滾動到元素
- 21. 如何在Windows Phone上的元素內滾動時使滾動條出現?
- 22. HTML/CSS:出現滾動條下方的HTML元素
- 23. 無論滾動條如何修復div的位置
- 24. 如何由於絕對位置使屏幕中心的模態?
- 25. 如何將絕對位置的元素放在元素旁邊?
- 26. 絕對位置元素沒有隱藏在滾動框外
- 27. 防止位置絕對元素在可滾動div內滯留
- 28. 使元素絕對,但不要改變其在屏幕上的位置
- 29. jQuery - 彈出框出現在屏幕上,無論他們滾動多少
- 30. 有絕對定位時移動的身體元素
你是指水平還是垂直(或兩者)?你能證明這個問題嗎? http://jsfiddle.net//http://jsbin.com/ – thirtydot 2012-01-18 12:11:16
垂直。只需製作一個絕對定位的div,其高度超過當前屏幕高度即可瞭解我的意思(我現在遠離我的筆記本電腦,或者我會演示) – 2012-01-18 12:17:50