Bootstrap - 当屏幕尺寸较小时删除填充或边距

时间:2013-05-07 03:18:39

标签: css twitter-bootstrap responsive-design media-queries

编辑: 也许当屏幕缩小到480px宽度以下时,我应该问哪个选择器设置侧边距?我一直在浏览bootstrap-responsiveness.css一段时间来找到它,但似乎没有任何影响这一点。

原始 我基本上想要删除任何默认填充或边距设置,以便在较小的设备屏幕上进行响应。

我在background color选择器上覆盖container-fluid,对于更大的屏幕,它们在宽度上完美呈现100%但是屏幕缩小到更小的尺寸, 默认情况下,Bootstrap似乎在container-fluidcontainer上添加了边距或填充。

<div class="container-fluid">
    <div class="row-fluid">
      test
    </div>
</div>

如果我使用自定义css覆盖Bootstrap的默认样式,我应该覆盖哪些媒体查询或选择器以在较小的屏幕上删除此填充?

13 个答案:

答案 0 :(得分:91)

@media查询专门用于&#39;手机&#39;是..

@media (max-width: 480px) { ... }

但是,您可能希望删除任何较小屏幕尺寸的填充/边距。默认情况下,Bootstrap以978px调整主体,容器和导航栏的边距/填充。

以下是一些对我有用的查询:

@media (max-width: 978px) {
    .container {
      padding:0;
      margin:0;
    }

    body {
      padding:0;
    }

    .navbar-fixed-top, .navbar-fixed-bottom, .navbar-static-top {
      margin-left: 0;
      margin-right: 0;
      margin-bottom:0;
    }
}

Demo


Bootstrap 4更新

使用新的响应spacing utils,可以设置不同屏幕宽度(断点)的填充/边距: https://stackoverflow.com/a/43208888/171456

答案 1 :(得分:17)

这里的问题比删除容器填充要复杂得多,因为在为封闭行应用负边距时,网格结构依赖于此填充。

在这种情况下删除容器填充将导致由此容器类中的所有行引起的x轴溢出,这是Bootstrap Grid中最愚蠢的事情之一。

逻辑上应该通过

来处理
  1. 从不将.container类用于行
  2. 以外的任何内容
  3. 复制没有用于非网格html的填充的.container
  4. 要移除移动设备上的.container填充,您可以使用媒体查询手动删除它,然后overflow-x: hidden;这不是很可靠但在大多数情况下都有效。
  5. 如果您使用LESS,最终结果将如下所示

    @media (max-width: @screen-md-max) {
        .container{
            padding: 0;
            overflow-x: hidden;
        }
    }
    

    将媒体查询更改为您要定位的任何大小。

    最后的想法,我强烈建议使用Foundation Framework网格作为更高级的方式

答案 2 :(得分:8)

此线程有助于在我的特定情况下找到解决方案(bootstrap 3)

@media (max-width: 767px) {
  .container-fluid, .row {
    padding:0px;
  }
  .navbar-header {
    margin:0px;
  }
}

答案 3 :(得分:7)

要解决这样的问题,我正在使用CSS - 最快和最快我认为最简单的方法......只需根据您的需要进行修改......

@media only screen and (max-width: 480px) {
    #your_id {width:000px;height:000px;}
}
@media only screen and (min-width: 480px) and (max-width: 768px) {
    #your_id {width:000px;height:000px;}
}
@media only screen and (min-width: 768px) and (max-width: 959px) {
    #your_id {width:000px;height:000px;}
}
@media only screen and (min-width: 959px) {
    #your_id {width:000px;height:000px;}
}

答案 4 :(得分:3)

我获得一个100%宽度的元素的方法是使用负左右边距。身体有一个24px的填充,所以你可以使用负边距:

element{
    margin-left:  -24px;
    margin-right: -24px;
    padding-left:  24px;
    padding-right:  24px;
}

答案 5 :(得分:1)

我在使用类似格式和代码的网站上遇到过这个问题,而且我已经把我的大脑放在了一些缺少的细节上,这些细节让我的网站有些工作,有些则没有。

对于Bootstrap 3:我的答案不是重写css for .container-fluid,.row或重置边距,我意识到的一致模式是较长的单词的长度抛弃了设计和创建余量

解决方案步骤:

  1. 通过临时删除包含容器的部分并在小型浏览器上测试您的网站来测试您的网页。这将识别您的问题容器。

  2. 您可能遇到div格式问题。如果你这样做,修复它。如果一切顺利的话:

  3. 确定您是否使用了未包装的长词。如果你不能改变这个词(比如标记行或标语等)

  4. 解决方案1:在较小屏幕的媒体查询中将字体格式化为较小的尺寸(我通常会找到@media(最大宽度:767px)就足够了。)

    OR:

    解决方案2:

    @media (max-width: 767px){
    
    h1, h2, h3 {word-wrap: break-word;}
    }
    

答案 6 :(得分:1)

PauliusMarčiukaitis的CSS非常适合我的Genesis主题,以下是我如何根据我的要求进一步修改它:

@media only screen and (max-width: 480px) {
.entry {
background-color: #fff;
margin-bottom: 0;
padding: 10px 8px;

}

答案 7 :(得分:1)

简单的解决方案是编写类似的内容

px-lg-1

mb-lg-5

通过添加lg,该类将仅在大屏幕上应用

答案 8 :(得分:0)

.container-fluid {
    margin-right: auto;
    margin-left: auto;
    padding-left:0px;
    padding-right:0px;
}

答案 9 :(得分:0)

这是我为Bootstrap 3/4做的事情

使用容器流体代替容器。

将此添加到我的CSS

@media (min-width: 1400px) {
    .container-fluid{
        max-width: 1400px;
    }   
}

这会删除宽度小于1400像素的屏幕上的边距

答案 10 :(得分:0)

另一个可能引起边距问题的CSS是CSS中有direction:someValue,因此只需将其设置为Initial即可将其删除。

例如:

body {
     direction:rtl;
 }
@media (max-width: 480px) {
    body {
     direction:initial;
    }
}

答案 11 :(得分:0)

在Bootstrap 4中,初始容器具有15px的边距,向下层叠到所有行和列。所以,这样的事情对我有用...

@media (max-width: 576px) {
    .container-fluid {
        padding-left: 5px;
        padding-right: 5px;
    }

    .row {
        margin-left: -5px;
        margin-right: -5px;
    }
    .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto {
        padding-left: 5px;
        padding-right: 5px;
    }
    .row.no-gutters {
        margin-left: 0;
        margin-right: 0;
    }
}

答案 12 :(得分:0)

对于 Bootstrp 5 使用 .g-0 .g-md-1 这会将屏幕尺寸小于 576px 的间距设置为零

<div class="container g-0 g-md-1"> ... </div>