【问题标题】:Bootstrap 4 ordering classBootstrap 4 排序类
【发布时间】:2018-12-09 11:00:33
【问题描述】:

我有一个关于 bootstrap 4.1 重新排序的问题。根据文档:

重新排序

使用 .order- 类来控制视觉顺序 你的内容。这些类是响应式的,因此您可以设置顺序 通过断点(例如,.order-1.order-md-2)。包括对 1 的支持 跨越所有五个网格层的 12 个。

我尝试仅在中小型屏幕上设置重新排序,使用文档中显示的.orderclasses,但它也会在较大的断点上重新排序内容,我做错了吗?

<div class="container-fluid">
    <div class="row">
        <div class="col-sm-12 col-lg-4 order-sm-2">
        <!-- some contents here -->
        </div>
        <div class="col-sm-12 col-lg-8 order-sm-1">
        <!-- some contents here -->
        </div>
    </div>
</div>

【问题讨论】:

    标签: html twitter-bootstrap bootstrap-4


    【解决方案1】:

    您需要在更大的断点中重新排序,因为引导程序是移动优先的方法,(这意味着它在媒体查询中使用min-width),所以当仅使用sm 时,它将应用sm 及以上的属性(包括mdlg)。

    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" />
    <div class="container-fluid">
      <div class="row">
        <div class="col-sm-12 col-lg-4 order-sm-2 order-lg-1">
          mobile 2nd and then desktop 1st
        </div>
        <div class="col-sm-12 col-lg-8 order-sm-1 order-lg-2">
          mobile 1st and then desktop 2st
        </div>
      </div>
    </div>

    关于 BS4 中的order 的另一件事是,您可以使用order-X-firstorder-X-lastorder-X-0,所以这里是这些类的sn-p。你可以在answer看到他们

    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" />
    <div class="container-fluid">
      <div class="row">
        <div class="col-sm-12 col-lg-4 order-sm-last order-lg-first">
          mobile 2nd and then desktop 1st
        </div>
        <div class="col-sm-12 col-lg-8 order-sm-first order-lg-last">
          mobile 1st and then desktop 2st
        </div>
      </div>
    </div>

    【讨论】:

    • 所以澄清一下,它只会在较小的屏幕上显示顺序为 2 和 1,对吗?从小屏幕及上方显示 1 然后 2?
    • 只需在 sn-p 中切换 full page 即可查看结果,但可以
    • 这是我采用的解决方案,我没有考虑boostrap框架的移动优先方法,所以我误解了如何正确使用.order类实用程序
    • 我正在尝试发布的不同解决方案,更新后您的答案是最正确的,我遇到的问题是错误的.order 类使用。我尝试使用.order-1 order-lg-2 修复它,这很有效,但我对在 booststrap 中重新排序的列没有太多经验,所以我假设正如你在评论中所说的那样,我的方法是错误的。
    • 你需要了解flexbox顺序,引导顺序是基于哪个
    【解决方案2】:

    这是 Bootstrap 的默认行为,是预期的。

    简而言之,所有引导程序的断点后缀 (-sm-md ...) 从该断点向上工作。

    因此,如果您设置col-sm-6,则意味着您的列将是sm断点和mdlg中行大小的一半,除非您覆盖它(例如col-md-2)。

    这一切都可以追溯到here(在媒体查询中使用最小宽度)

    【讨论】:

      【解决方案3】:

      这是一个示例,您可以如何使用媒体查询来做到这一点:

      <div class="row">
         <div class="col-12">
             <!-- some content -->
         </div>
         <div class="col-md-9">
             <!-- some content -->
         </div>
         <div class="col-md-3 move-down">
             <!-- some content -->
         </div>
         <div class="col-md-6 move-up">
             <!-- some content -->
         </div>
         <div class="col-md-6">
             <!-- some content -->
         </div>
      </div>
      
      @media (max-width: 767px) {
          .move-down {
              order: 2;
          }
          .move-up {
              order: 1;
          }
      }
      

      【讨论】:

        【解决方案4】:

        您是否尝试过 order-1,这将为大屏幕设置默认值

        <div class="col-sm-12 col-lg-4 order-1 order-sm-2">
            <!-- some contents here -->
        </div>
        <div class="col-sm-12 col-lg-8 order-2 order-sm-1">
            <!-- some contents here -->
        </div>
        

        来源:Column ordering in Bootstrap 4

        【讨论】:

        • 谢谢,我试过了,但它会以错误的方式排列列。我发现很多人有同样的问题,但这个问题正在解决我的问题。 stackoverflow.com/questions/48598915/…
        • 啊,我明白了。所以它会忽略order-2 属性。
        • 是的,我已经更正了您的答案,这是我采用的有效解决方案。感谢您的支持!
        • @user9741470 您不能/不应编辑答案只是为了使其正确并给它接受的答案。还有你在你的 sn-p order-sm 而不是 order 中的其他东西,那么你为什么编辑这个答案然后接受呢?顺便说一句,Have you tried doing order-1, this sets the default for larger screens 是错误的。因为order 适用于超小屏幕及以上。
        • 哦,我明白了。只是想帮忙。
        【解决方案5】:

        我也遇到了一些问题。以下是让它为我工作的代码:

         <div class="container-fluid">
                    <div class="row">
                        <div class="col-sm-6 order-sm-2 order-1">
                        <!-- some contents here -->Content1
                        </div>
                        <div class="col-sm-6 order-sm-1 order-2">
                        <!-- some contents here -->Content2
                     </div>
               </div>
          </div>
        

        编辑:从各个列中删除了 .order-md 类。

        【讨论】:

        • 你不需要 order-md 并且不回答 OP 的问题,因为 OP 希望从 sm 开始并在 lg 更改
        • 是的,我知道。试图蛮力解决方案,但忘记清理。谢谢。
        猜你喜欢
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        • 2018-10-02
        • 2016-02-19
        • 2018-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多