【问题标题】:Bootstrap page Overflow-x hidden, one element on page on IOS still scrolls left and rightBootstrap页面Overflow-x隐藏,IOS页面上一个元素依然左右滚动
【发布时间】:2016-04-16 23:21:08
【问题描述】:

通过消除左右滚动,我希望我的 cordova 应用看起来不像 Web 应用,而更像真正的应用。

我已经在 html 和 body 标记上将 overflow-x 属性设置为隐藏,这适用于除了下面的页面之外的所有页面,它可以左右滚动但不应该。

我是否误解了网格?我尝试将“overlow-x:hidden”属性应用于封闭的 div,而不是其他地方建议的 body 和 html,尝试将该属性应用于单个 div,尝试限制 div 的宽度。我尝试将 html 位置更改为固定(它修复了左右滚动,但也停止了我需要的)。你can view the page below on an iOS device to see the behaviour here。我的哪些糟糕的技能组合(css、html 或 bootstrap)让我失望了?

    <!DOCTYPE html>
<html lang="en" style="position: relative; min-height: 100%;">
    <head>
        <meta charset="utf-8" /> 
        <title>
            My Awesome Title
        </title>
        <meta name="generator" content="BBEdit 11.0" /> 

        <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/entypo.min.css"> 
        <script type="text/javascript" src="scripts/jquery-2.0.3.min.js">
        </script>
        <script type="text/javascript" src="scripts/bootstrap.min.js">
        </script>
        <script type="text/javascript" src="scripts/bootbox.min.js">
        </script>
        <style>
            html, body {
            overflow-x: hidden !important;
            }
        </style>
        <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no' /> 
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6 col-md-offset-3" style="background-color:#F8F8F8;">
                    <h2 class="text-center">
                        My Awesome Title
                    </h2>
                    <br /> 
                    <div id="hexpix" class="center-block">
                        <br /><br /> 
                        <div id="hexpixdiv">
                        </div>
                    </div>
<!-- Alert Space -->
                    <div id="AlertSpace" class="center-block" style="text-align:center; width:75%">
                    </div>
                    <br /> 
<!-- Hex Content Space for text  -->
                    <div id="hexindex" class="text-center">
                    </div>
<!-- hexindex close -->
                    <div id="hexcontent" class="text-center">
                    <!-- 
    <p>
                            Blah blah this text should NOT scroll left and right because overflow-x is set to hidden but it slides back and forth like a hotplate on butter. Why, people, Why?
                            <p>
 -->

                    </div>
<!-- hexcontent close -->
                    <div id='HelpButton'>
                    </div>
                </div>
<!-- Column class close-->
            </div>
<!-- Row class close-->
            <br /> 
        </div>
<!--Container close-->
        <div id="sharestrip" style="position: absolute; bottom:40px; width:100%; height:10px;">
            <div class="row">
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="Reddit">
                        <span>
                        </span>
                    </a>
                </div>
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="SMS">
                        <span class="icon-export">
                        </span>
                </div>
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="Email">
                        <span class="icon-gmail">
                        </span>
                    </a>
                </div>
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="Twitter">
                        <span class="icon-twitter">
                        </span>
                    </a>
                </div>
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="Facebook">
                        <span class="icon-facebook">
                        </span>
                    </a>
                </div>
                <div class="col-xs-2 text-center">
                    <a href="javascript:void(0)" class="tumblr">
                        <span>
                        </span>
                    </a>
                </div>
            </div>
<!-- Row -->
        </div>
<!-- Sharestrip -->
        <div id="footer" style="position: absolute;
  bottom: 0;
  width: 100%;  height: 20px;">
<!-- See hex.css for custom css on this -->
            <div class="col-xs-12 navbar-inverse navbar-fixed-bottom">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-3 text-center">
                            <a href="javascript:void(0)">
                                <span class="nav-link">
                                </span>
                            </a>
                        </div>
                        <div class="col-xs-2 text-center">
                            <a href="javascript:void(0)" 
                            <span class="nav-link">
                                1
                            </span>
                            </a>
                        </div>
                        <div class="col-xs-2 text-center">
                            <a href="javascript:void(0)">
                                <span class="nav-link">
                                    2
                                </span>
                            </a>
                        </div>
                        <div class="col-xs-2 text-center">
                            <a href="javascript:void(0)">
                                <span class="nav-link">
                                    3
                                </span>
                            </a>
                        </div>
                        <div class="col-xs-3 text-center">
                            <a href="javascript:void(0)">
                                <span class="nav-link">
                                </span>
                            </a>
                        </div>
                    </div>
<!-- End Row -->
                </div>
<!-- End Container -->
            </div>
<!-- End Navbar -->
        </div>
<!-- End Footer -->
    </body>
</html>

【问题讨论】:

    标签: html ios css twitter-bootstrap-3


    【解决方案1】:

    当你设置溢出:隐藏元素并不意味着它停止可滚动...它只是隐藏滚动条。由于移动设备在触摸元素上的任何位置时会滚动内容,因此它只是保持可滚动状态。

    事实是 - 即使在桌面设备上,您的网站也可以在 X 轴上滚动,您只需在 body 标签上使用 overflow-x: hidden 将其隐藏。

    您的网站在所有设备上都可以横向滚动的原因是您忘记将 class="container" 添加到 &lt;div id="sharestrip"... 并且其中的行有 @987654327 @ 大于窗口宽度。

    这种行为被.container 减少了padding-left: 15px and padding-right: 15px,所以只需记住将 class="container" 添加到行的父级。

    【讨论】:

    • 我将所有行都放在 .container div 中,但它并没有改变行为:Revised html here
    • 是的,你修复了sharestrip,但也编辑了页脚,现在页脚破坏了网站,将.container直接放在下一个.container不是一个好主意。
    • 哎呀。对不起。是的,你说得对,我并不是要嵌套 .container 标签。我放了一个CodePen together here with the layout I intended,容器仍然是slides left and right on an ios device,但有趣的是,.navbar-fixed 元素没有:它在整个页面宽度上保持坚如磐石。
    • 现在桌面布局即使在调整窗口大小时也能正常工作,我想我需要一部 iphone 来检查那里的内容,所以现在很抱歉,但无法调查这个问题。
    • 感谢您试一试并分享有关 x 可滚动页面和填充的那些信息——现在深入研究导航栏 css,看看它是否包含有关它如何固定到宽度的线索。笔中的颜色表明它是溢出的主体,并且由于某种原因没有调整到视口宽度。
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多