溢出:隐藏应用于<body>在iPhone Safari上工作吗?

overflow:hidden应用于<body>在iPhone Safari上工作吗? 看来不是。 我不能在整个网站创build一个包装,以实现…

你知道解决scheme吗?

例如:我有一个长的页面,只是我想隐藏“折叠”下的内容,它应该在iPhone / iPad上工作。

我有一个类似的问题,发现应用overflow: hidden;htmlbody解决了我的问题。

 html, body { overflow: hidden; } 

对于iOS 9,您可能需要使用它:( 谢谢chaenu!)

 html, body { overflow: hidden; position: relative; height: 100%; } 
 .wrapper{ position:relative; //that's it overflow:hidden; } 

这里列出的一些解决scheme在伸展弹性滚动时有一些奇怪的故障。 为了解决我使用:

 body.lock-position { height: 100%; overflow: hidden; width: 100%; position: fixed; } 

资料来源: http : //www.teamtownend.com/2013/07/ios-prevent-scrolling-on-body/

今天在iOS 8&9上有这个问题,看来我们现在需要增加高度:100%;

所以添加

 html, body { position: relative; height: 100%; overflow: hidden; } 

把这里的答案和评论和这个类似的问题结合在一起对我有效。

所以张贴作为一个整体的答案。

以下是您需要在网站内容的周围放置包装div的方法,只需在<body>标签内。

  <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- other meta and head stuff here --> <head> <body> <div class="wrapper"> <!-- Your site content here --> </div> </body> </html> 

创build包装类如下。

 .wrapper{ position:relative; //that's it overflow:hidden; } 

我也从这个答案中得到了这个想法。

这个答案在这里也得到了一些思考。 某些东西可能在桌面和设备上同样好用。

为什么不把你不想显示的内容封装在一个带有类的元素中,并将该类设置为display:none样式表中display:none仅用于iphone和其他手持设备的内容?

 <!--[if !IE]>--> <link media="only screen and (max-device-width: 480px)" href="small-device.css" type= "text/css" rel="stylesheet"> <!--<![endif]--> 

是的,这与safari中的新更新有关,如果您使用overflow:hidden来清除div,那么现在会破坏您的布局。

它确实适用,但仅适用于DOM中的某些元素。 例如,它不会在表,td或其他元素上工作,但它会在<DIV>标记上工作。
例如:

 <body> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/> 

只在iOS 4.3中testing过。

小编辑:你可能会更好使用溢出:滚动,所以两个手指滚动确实工作。

 html { position:relative; top:0px; left:0px; overflow:auto; height:auto } 

将此作为默认添加到您的CSS

 .class-on-html{ position:fixed; top:0px; left:0px; overflow:hidden; height:100%; } 

toggleClass这个类来切割页面

当你closures这个类的时候,第一行将会调用滚动条

我曾与<body><div class="wrapper">

popup窗口打开时

<body>获得100%的高度并溢出:隐藏

<div class="wrapper">获取位置:相对;溢出:隐藏;身高:100%;

我使用JS / jQuery来获取页面的实际滚动位置,并将其作为data-attribut存储到body中

然后我滚动到.wrapper DIV中的滚动位置 (不在窗口中)

这是我的解决scheme:

JS / jQuery的:

 // when popup opens $('body').attr( 'data-pos', $(window).scrollTop()); // get actual scrollpos $('body').addClass('locked'); // add class to body $('.wrapper').scrollTop( $('body').attr( 'data-pos' ) ); // let wrapper scroll to scrollpos // when popup close $("body").removeClass('locked'); $( window ).scrollTop( $('body').attr( 'data-pos' )); 

CSS:

 body.locked {position:relative;overflow:hidden;height:100%;} body.locked .wrapper {position:relative;overflow:hidden;height:100%;} 

它适用于双方…桌面和移动(iOS)。

提示和改进,欢迎:)

干杯!

它在Safari浏览器中工作。

 html, body { overflow: hidden; position: fixed }