2011-11-04 66 views
30

您可以在Android浏览器中使可滚动div的溢出内容?Android浏览器错误? div溢出滚动

它可以在所有其他现代浏览器中滚动。

在iOS中它是可滚动的 - 但它不显示滚动条 - 但它可以通过拖动进行滚动。

一个简单的例子: http://jsfiddle.net/KPuW5/1/embedded/result/

这会不会很快解决吗?

+2

这是一个错误:http://code.google.com/p/android/issues/detail?id=6864 有几种解决方法:http://cubiq.org/iscroll-4 Rather比这些黑客 - 错误应该得到解决,所有关于HTML的炒作我感到惊讶它是如何实施糟糕。 – mercador

+0

这似乎现在已经修复。有些SDK没有最新的网页浏览,但仍然可以通过这个问题 – neaumusic

回答

8

overflow: scroll;得到支撑的Android 3.0(API 11)。

对于跨平台(即iOS < = 4.3.2)Cubiq iScroll是一个易于实施的修复程序。

-5

通过在CSS中定义滚动条的样式,可以在Android中制作DIV滚动条。 这篇文章告诉你如何做到这一点: http://css-tricks.com/custom-scrollbars-in-webkit/

+0

你可以在这里包含一个简短的示例,以防止这个答案变得无用,如果/当该链接死了? –

+0

这确实显示Android 2上的滚动条。3,但不会使div可滚动:( – Husky

+0

赫斯基,我试着在Android 2.3上运行,它的工作方式可能不同,在不同的设备上可能会有所不同,请尝试以下webapp:http://applications.frenys.com/webapp/ ?ref = dl&app = 116815031665454(你必须触摸/点击滚动条轨迹的空白部分) – juamp

25

的Android 3.0和更高版本有支持overflow:scroll,在< 3.0又是另一回事。您可能会在使用像iScroll这样的polyfills方面取得一些成功,但这确实是有代价的。在具有复杂布局的网站上实施起来很困难,并且每次网站上的内容发生更改时都需要调用一种方法。内存使用也是一个问题:由于这些类型的polyfills,已经动力不足的设备性能可能会滞后。

我会推荐一种不同的方法:使用Modernizr检测溢出滚动的支持,为您的html标记添加一个类,并使用它来重写您的CSS,以便页面滚动而不是在框中。

/* For browsers that support overflow scrolling */ 
#div { 
    height: 400px; 
    overflow: auto; 
} 

/* And for browsers that don't */ 
html.no-overflowscrolling #div { 
    height: auto; 
} 
+7

我认为你推荐的方法是基于一种误解,Modernizr的'overflowscrolling'测试不是关于“overflow:scroll”是否在浏览器中有效,但是浏览器是否支持'* -overflow-scrolling' css属性,这是不同的。 – speedarius

0

只是为了完整性:

滚动条是Android 2.3的居然还有,但他们是非常错误和默认它们的风格有0宽度,所以就什么也看不见。

你可以让他们通过增加造型像可见:

::-webkit-scrollbar { 
    width: 30px; 
} 
::-webkit-scrollbar-track { 
    background-color: $lightestgrey; 
} 
::-webkit-scrollbar-thumb { 
    background-color: $lightgrey; 
} 

然而,拇指元素是不能拖动,你只可以通过点击下面的轨道或上面移动它。

此外,这些样式将改变所有webkit浏览器中滚动条的外观,所以最好添加一个仅适用于Android 2.3的类。