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


89

编辑: 也许我应该问,当屏幕缩小到480px以下时,哪个选择器会设置边距?我已经浏览bootstrap-sensitiveness.css一段时间了,但是似乎没有任何影响。

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

我有一个background color覆盖在container-fluid选择器和用于更大的屏幕他们提供横跨宽度完全100%,但是他们在屏幕减小到更小的尺寸,在默认情况下,自举似乎添加余量或填充上container-fluidcontainer

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

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


1
实际上,填充已添加到主体。
史密斯先生2013年

Answers:


116

专门针对“电话”的@media查询是..

@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;
    }
}

演示版


Bootstrap 4的更新

使用新的响应式间距实用程序,可让您为不同的屏幕宽度(断点)设置填充/边距:https : //stackoverflow.com/a/43208888/171456


4
是! 终于找到了导致这种行为的原因。您指出了我的问题。非常感谢。
成李

感谢有用的提示。对我来说很好。
Sedat Kumcu

这非常有用,并且可以进行引导。.谢谢
Faisal

打开的导航栏的最大宽度如何?
Faisal

也许我有一个类似的问题,但与正文和实际的.container类之间的填充有关。对于Iphone 5屏幕而言,该容器的体积确实很小,间距实用程序对我完全没有帮助,相反,我直接编辑了主体样式,将填充从50px更改为15px,现在我们在屏幕上有更多的空间。
Paulo Henrique

20

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

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

逻辑上应该通过

  1. 永远不要将.container类用于行之外
  2. 克隆.container没有填充可用于非网格html的类
  3. 要删除.container移动设备上的填充,您可以通过媒体查询手动将其删除,overflow-x: hidden;这不是很可靠,但在大多数情况下都可以使用。

如果您使用的LESS是最终结果,则结果将如下所示

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

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

最后的想法,我强烈建议您使用Foundation FrameworkGrid作为更高级的方法


如果出于某些原因您不想px-sm-0在列上使用它,它仍然适用于Bootstrap 4 。
塞巴斯蒂安·托马斯

8

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

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

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;}
}

1
抱歉..它并没有简单地通过添加选择器来覆盖该填充...
Seong Lee

1
@tassoevan恐怕我已经知道000px是否与0相同,并且将000px更改为0并不能解决问题,我也不知道将像素值的宽度设置为0还是一个好主意。我猜这与边距或填充有关。
成李

1
“ 000”仅是示例。您应该输入#your_id {margin:5px; padding:0px;}而不是#your_id {width:000px; height:000px;}
2013年

2
尝试始终编写正确的代码!初学者可能会感到困惑!:)
Mackelito 2013年

3

我让元素达到设备宽度100%的方式是在其上使用负的左右边距。主体的填充为24像素,因此您可以对以下内容使用负边距:

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

2

在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;
    }
}

1
被低估的答案,这帮助我摆脱了移动设备上的水平滚动条
William Randokun

1

我曾在使用相似格式和代码的网站上发生过此问题,而我却全神贯注于使某些网站正常工作的缺失细节。

对于Bootstrap 3:对我来说,答案不是用重写CSS来实现.container-fluid,.row或重置页边距,我意识到的一贯模式是较长的字词不符合设计和边距

解决步骤:

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

  2. 您可能有div格式问题。如果这样做,请修复它。如果一切顺利,则:

  3. 确定您是否使用了没有包装的长字。如果您不能更改单词(例如标语或标语等)

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

要么:

解决方案2:

@media (max-width: 767px){

h1, h2, h3 {word-wrap: break-word;}
}

1

PauliusMarčiukaitis的CSS很好地适用于我的创世纪主题,这是我如何根据自己的需求对其进行进一步修改的方式:

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

}



0

这是我为Bootstrap 3/4所做的工作

使用容器流体而不是容器。

将此添加到我的CSS

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

这会删除低于1400px宽度的屏幕边距


0

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

例如:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.