回答
您可以將滾動div放入第二個div中,並將其隱藏起來,然後讓內部div更寬更高一些(但數量可能因瀏覽器而異)。
事情是這樣的:
#outer {
overflow:hidden;
width:200px;
height:400px;
border:1px solid #ccc;
}
#inner {
overflow:scroll;
width:217px;
height:417px;
}
在http://jsfiddle.net/uB6Dg/1/完整的示例。
編輯: 不幸的是,你還可以得到滾動條通過突出顯示文本和拖動,並且它確實使填充等比這更痛苦的一點,但其他的我認爲JavaScript是要走的路。
我與這一個去,因爲我首選使用CSS,但我可能會建議還添加StephanBönnemann的想法,並使用WebKit滾動條,因爲這會阻止它顯示,如果他們突出顯示內容 – StephenJRomero
我喜歡StephanBönnemann提出的解決方案,但不幸將其添加到以上意思是#inner在webkit瀏覽器中結束了17px太寬。 我認爲斯蒂芬的解決方案是最優雅的webkit瀏覽器,而我的瀏覽器將提供兼容性,沒有類似的僞選擇器。 – Maloric
@Maloric答案指出我在正確的方向,但是我需要流體寬度,我也想上的寬度更準確滾動條。
這是一個函數,它將根據瀏覽器報告的內容返回滾動條的確切寬度。
var getWidth = function() {
var scrollDiv = document.createElement('div'),
scrollbarWidth;
scrollDiv.style.overflow = 'scroll';
document.body.appendChild(scrollDiv);
scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
return scrollbarWidth;
};
var width = getWidth();
var container = document.querySelector('.overflowing-container');
container.style.paddingRight = width + 'px';
container.style.marginRight = (width * -1) + 'px';
// Just for testing purposes
document.querySelector('.scrollbar-width').innerHTML = 'scrollbar height: ' + getWidth()
.container {
height: 200px;
overflow-x: hidden;
overflow-y: auto;
width: 500px;
}
.overflowing-container {
height: 100%;
overflow-y: auto;
width: 100%;
}
<div class="container">
<div class="overflowing-container">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tristique feugiat metus, eget mollis nibh vestibulum eu. Nullam eros orci, gravida eu quam nec, maximus posuere dui. Maecenas erat magna, elementum eget nunc eget, tincidunt varius nisl. Phasellus pretium congue consectetur. Donec rutrum nisi sed eros posuere, vel pretium nunc viverra. Praesent consequat sagittis urna, quis convallis magna gravida et. In sed eleifend arcu.
Duis ornare condimentum est luctus malesuada. Morbi nec sodales nunc. Morbi vehicula tristique massa, nec lacinia tellus vulputate fringilla. Nam eget pulvinar libero. Vestibulum ligula mi, tincidunt ac pellentesque vitae, convallis eu tortor. Cras varius dolor sit amet libero rhoncus, mattis aliquet augue porttitor. Etiam sollicitudin, sem ut mollis imperdiet, erat enim gravida tortor, et imperdiet sem nibh in ex. Aliquam ac aliquam risus. Suspendisse gravida suscipit sapien, et ultrices massa ornare eget. Nulla venenatis pellentesque arcu at auctor. Sed libero ligula, pretium in metus a, malesuada ullamcorper leo. Vivamus tempor velit in ante fringilla rhoncus. Nam ac iaculis arcu. Mauris a nisi quis arcu feugiat posuere.
</div>
</div>
<div class="scrollbar-width"></div>
上述片段顯示了這個動作。
- 1. 隱藏滾動條(啓用滾動)
- 2. 隱藏的WebKit滾動條時溢出滾動:觸摸啓用
- 3. 溢出滾動已隱藏溢出
- 4. Blueprintjs表隱藏溢出-s滾動條
- 5. 溢出虛假滾動條:隱藏
- 6. 滾動時隱藏溢出
- 7. 溢出:隱藏 - 滾動
- 8. 隱藏滾動條
- 9. 隱藏滾動條
- 10. 隱藏滾動條
- 11. CSS溢出滾動和隱藏滾動條(IOS)
- 12. 如何隱藏滾動(溢出:隱藏)?
- 13. 在NSScrollView中啓用滾動功能時隱藏滾動條
- 14. 隱藏滾動條如果不滾動
- 15. 隱藏/顯示滾動條上的webkit滾動條
- 16. 溢出隱藏自動滾動
- 17. ,同時隱藏滾動條和隱藏溢出觸發事件
- 18. 使用CSS溢出自動隱藏垂直滾動條
- 19. 滾動條自動隱藏在溢出不起作用
- 20. 使用溢出:滾動,隱藏Firefox中未使用的滾動條
- 21. 如何隱藏css溢出div的滾動條而不使用溢出:隱藏?
- 22. 隱藏Midori的滾動條
- 23. css隱藏滾動條?
- 24. 隱藏NSScrollView的滾動條
- 25. Android隱藏listview滾動條?
- 26. Android Webapp隱藏滾動條?
- 27. 隱藏水平滾動條
- 28. 如何隱藏滾動條
- 29. 隱藏webBrowser滾動條wpf
- 30. 隱藏RecyclerView滾動條
請不要更改或刪除用戶的標準UI元素,它只會惹惱他們。 – Damien
我認爲人們正在閱讀這個錯誤我不想隱藏身體滾動或任何默認的用戶界面。我設置了一個div來溢出:scroll;我想要功能溢出滾動給出了該div,但我不想顯示它隨附的滾動條。 – StephenJRomero