当前位置: 首页 > 知识库问答 >
问题:

引导3-较小屏幕上的列顶部边距

方嘉言
2023-03-14

我有一行有X个可能的列。

<div class="container">
    <div class="row">
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <div class="col-lg-3 col-sm-4 col-xs-6">content</div>
        <!-- ... and so on ... -->
    </div>
</div>

现在我想将边距top:20px添加到所有小屏幕列和大屏幕列的相同边距,如果有超过4行,则会显示两个“行”,因此需要一些间距。

仅使用CSS就可以做到这一点吗?

共有3个答案

齐学文
2023-03-14

这是一个老职位,但下面是一个干净的解决方案。

[class*="col-"] {
  margin-bottom: 15px;
}

这在某些情况下效果很好,但在不需要时会增加额外的、不必要的余量。为了解决这个问题,我们可以创建一个新的css类,在列堆叠时将上边距应用于列。我创建了一个名为的类。行网格

.row.row-grid [class*="col-"] + [class*="col-"] {
  margin-top: 15px;
}

@media (min-width: 1200px) {
  .row.row-grid [class*="col-lg-"] + [class*="col-lg-"] {
    margin-top: 0;
  }
}
@media (min-width: 992px) {
  .row.row-grid [class*="col-md-"] + [class*="col-md-"] {
    margin-top: 0;
  }
}
@media (min-width: 768px) {
  .row.row-grid [class*="col-sm-"] + [class*="col-sm-"] {
    margin-top: 0;
  }
}
朱翔
2023-03-14

我需要类似的东西,下面是我想出的解决方案。为未来的读者(和我自己)记录它

$res-list: (xs: (0px, 767px), sm: (768px, 991px), md: (992px, 1199px), lg: (1200px, 9999px));
$dir-list: (t: top, r: right, b: bottom, l: left);

@for $r from 1 through 10{
  @each $res-abbr, $res-vals in $res-list{
    @media (min-width: nth($res-vals, 1)) and (max-width: nth($res-vals, 2)) {
      @each $dir-abbr, $dir-name in $dir-list{
        $x: $r * 5;
        .m#{$dir-abbr}-#{$res-abbr}-#{$x}{
          margin-#{$dir-name}: #{$x}px;
        }
        .m#{$dir-abbr}-#{$res-abbr}-#{$r}p{
          margin-#{$dir-name}: #{$r}unquote('%');
        }
      }
    }
  }
}

这个SASS代码生成如下的类

@media (min-width: 0px) and (max-width: 767px) {
    .mt-xs-5 { margin-top: 5px; }
    .mt-xs-1p { margin-top: 1%; }
    .mr-xs-5 { margin-right: 5px; }
    .mr-xs-1p { margin-right: 1%; }
    .mb-xs-5 { margin-bottom: 5px; }
    .mb-xs-1p { margin-bottom: 1%; }
    .ml-xs-5 { margin-left: 5px; }
    .ml-xs-1p { margin-left: 1%; } 
}

因此,内容编辑器可以使用。mt-xs-10页边距顶部:10px应用于超小屏幕上的给定元素。

我希望它能帮助别人。

潘高洁
2023-03-14

您可以在需要上页边距时使用媒体查询。。

@media (max-width: 767px) {
    .col-xs-6 {
        margin-top:20px;
    }
}

http://www.bootply.com/126007

附言-总计没有什么错。列-*中。行超过12(即:http://getbootstrap.com/css/#grid-示例(混合)。它只会导致一个包裹。文档中有几个使用此技术的示例。它通常不适合嵌套行。

 类似资料:
  • 问题内容: 我在页面上有以下布局: 但是在较小的屏幕尺寸上,我需要以下布局: (请注意列顺序的重新安排。)是否可以仅在较小的屏幕尺寸上推/拉列?我已经尝试了以下方法,但是我得到的布局最奇怪,并且似乎完全丢失了…: 问题答案: 我自己回答,只需思考:移动优先! 按照我想要在平板电脑上的顺序获取它们,然后将它们推入/拉入到桌面上。

  • 链接到网站: 网站 navbar链接在较小屏幕上折叠成一个汉堡菜单下拉菜单,我为顶部边框创建了一个CSS属性,应用于navbar。现在,当屏幕变小,汉堡菜单按钮似乎是重叠的绿色边框-顶部的navbar! 也许这是一个初学者的问题,但我尝试了我所能想到的一切:边距将按钮移低一点(现在它也与底部边框重叠),移除背景颜色或使用使其透明(似乎根本不起作用)... 非常感谢任何建议... 下面是它的样子:

  • 我有一个SingleChildScrollView,它有一个包含许多子项的列小部件。我希望将一组按钮“放在下一个屏幕上”(例如“PageBreak小部件”)。 我已经尝试过了,但是它产生了一个异常,因为您只应该使用一个定位小部件和一个堆栈小部件(而不是列小部件):

  • 问题内容: 我有一个div,当我的页面首次加载时,它离顶部约100像素(该页面包含一些按钮等)。 当用户滚动通过它时,我希望div“关注”该用户,因为它附着在屏幕顶部。当用户返回页面顶部时,我希望它返回到其原始位置。 问题答案: 诀窍是您必须将其设置为position:fixed,但仅在用户滚动经过它之后才能设置。 可以通过将处理程序附加到window.scroll事件来完成此操作 当页面滚动经过

  • 我正在创建一个带有底部导航和抽屉的简单应用程序。 我将所有屏幕包装在带有顶部栏和底部栏的脚手架中。我想在特定屏幕上隐藏顶部栏和底部栏。有人知道如何实现吗 以下是设置导航的代码。 包含用于导航到屏幕

  • 问题内容: 我前一段时间遇到了这个问题,忘记了解决方案是什么。我在文档的顶部有一个小间隙,也许5/10像素? 我想您会知道我在说什么,该如何摆脱呢? 谢谢 问题答案: 在您的CSS文件中添加以下内容: