溢出:隐藏应用于<body>在iPhone Safari上工作吗?
overflow:hidden
应用于<body>
在iPhone Safari上工作吗? 看来不是。 我不能在整个网站创build一个包装,以实现…
你知道解决scheme吗?
例如:我有一个长的页面,只是我想隐藏“折叠”下的内容,它应该在iPhone / iPad上工作。
我有一个类似的问题,发现应用overflow: hidden;
到html
和body
解决了我的问题。
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 }