【问题标题】:Bootstrap 3.3.7 "row" causing horizontal scroll barBootstrap 3.3.7“行”导致水平滚动条
【发布时间】:2017-11-25 00:31:07
【问题描述】:

好的好的,我知道了。这个问题被问了很多。但是,到目前为止,我还没有找到一个可行的解决方案。我将我的页面归结为以下内容:

<div class="row">
    <div class="col-sm-12">
        stuff
    </div>
</div>

还有一个水平滚动条。在开发工具中,我可以找到row

.row {
    margin-right: -15px;
    margin-left: -15px;
}

如果我取消点击margin-right: -15px;,问题就会消失。但是,在我的实际页面(包含所有内容)上,这会产生另一个问题。页面需要有零边距,但现在右边有 15px 的边距。

答案之一here 很遗憾将rowcontainer-fluid 包装起来。另一个说用container 包装它。这两个确实使滚动条消失了,但它们也提供了页面边距,这是我不能拥有的。

我发现 threads 早在 2013 年就在讨论这个问题。这真的还没有解决吗?

我需要做什么?

还有:小提琴

https://jsfiddle.net/oLx4g8e3/1/

【问题讨论】:

标签: html css twitter-bootstrap flexbox


【解决方案1】:

引导 5.0 [ 2021 年 4 月]

工作和测试

如果你们中的一些人使用 bootstrap 5,您可以使用 overflow-hidden 来解决这个问题。我刚刚遇到并登陆了这个页面。我认为它可能对某些人有帮助。

我的情况是我必须在container-fluid 内使用row,而row 没有触及我想要的浏览器边缘。当我添加px-0 时,我得到水平滚动条

要解决此问题,您可以使用内置类 overflow-hiddencontainer-fluid

<div class="container-fluid px-0 overflow-hidden">
    <div class="row">
        <div class="col">
            <!-- your text -->
        </div>
    </div>
</div>

来源:https://getbootstrap.com/docs/5.0/layout/gutters/#horizontal-gutters

【讨论】:

    【解决方案2】:

    如果有人在 Bootstrap v4 中遇到这个问题。 只需将m-0 添加到您的 div 中即可。

    <div class="row m-0"></div>
    

    【讨论】:

      【解决方案3】:

      一种更简单的方法是简单地删除违规行的边距:

      .row {
          margin-left: 0px;
          margin-right: 0px;
      }
      

      【讨论】:

        【解决方案4】:

        您是指当容器应该是流体时出现在页面底部的滚动条吗?您的页面中可能有一个元素扩展了屏幕的宽度。

        我通常使用this Chrome extension 来查看哪些 CSS 元素超出了应有的范围。

        另外,看看这个Fiddle 是否有帮助(下面的代码)。

        <div class="container-fluid">
         <div class="row">
          <div class="col-sm-12">
        Lorem Ipsum is simply dummied text of the printing and typesetting industry.
          </div>
         </div>
        </div>
        

        【讨论】:

        • 是的,我说的是页面底部出现的滚动条。 (为清楚起见,已更新标题)。看看小提琴,我的 OP 中除了 HTML 之外什么都没有。谢谢!
        • 另外,你的小提琴侧面有边距,(正如我在 OP 中所说)我没有。
        • 让我澄清一下 - 为什么页面不能有边距?
        • 一个公平的问题。答:因为客户说“无边距” :-) 有图形内容需要一直流血到屏幕边缘。
        • 那里发生了很多事情,这就是我创建小提琴jsfiddle.net/oLx4g8e3/1的原因,它演示了同样的问题。
        【解决方案5】:

        为什么不使用容器流体并完全去除边距?

        <div class="container-fluid" style="margin: 0">
           <div class="row">
              <div class="col-md-6">
        
              </div>
              <div class="col-md-6">
        
              </div>
           </div>
        </div>
        

        或者使用width: 100%围绕它创建自己的div

        【讨论】:

        • 我在小提琴中试过这个。它仍然有边距。
        • 我稍后会在手机上的小提琴中尝试一些东西,我遇到了同样的问题并尝试了很多东西,其中大部分都有效;)
        【解决方案6】:

        首先你不需要rowcol-*12 类,如果你的部分是100% 宽看this 引导示例他们没有采取任何rowcol-*12 也没有标题jumbotron。如果您的部分有列,请在 col-* 类中取行,例如

        <div class="col-sm-6">
            <div class="row">stuff</div>
        </div>
        <div class="col-sm-6">
            <div class="row">stuff</div>
        </div>
        

        Fiddle

        或者如果你使用container-fluid

        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-6">
                    <div class="row">stuff</div>
                </div>
                <div class="col-sm-6">
                    <div class="row">stuff</div>
                </div>
            </div>
        </div>
        

        Fiddle

        【讨论】:

        • 真正聪明的解决方案!我从没想过颠倒顺序,并将.row 放在.col-* 内...它可以完美地阻止页面宽度元素导致水平溢出。
        • 看起来更像是一种 hack 而不是解决方案。
        • 奇怪!我认为他们希望rows 至少在一个引导容器中。将 row 作为绝对父级会导致此问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2021-07-15
        • 1970-01-01
        • 2018-06-20
        • 1970-01-01
        • 2014-10-15
        • 2013-11-05
        相关资源
        最近更新 更多