【问题标题】:Bootstrap 3: pull-right for col-lg onlyBootstrap 3:仅用于 col-lg 的右拉
【发布时间】:2013-10-24 15:39:59
【问题描述】:

Bootstrap 3 的新手......在我的布局中,我有:

<div class="row">
    <div class="col-lg-6 col-md-6">elements 1</div>
    <div class="col-lg-6 col-md-6">
         <div class="pull-right">
            elements 2
         </div>
    </div>
</div>

我希望“元素 2”不要在小于 col-lg 的屏幕上对齐。如此有效地使课程仅适用于 col-lg-6...

我怎样才能做到这一点?

这是一个小提琴:http://jsfiddle.net/thibs/Y6WPz/

谢谢你

【问题讨论】:

标签: css twitter-bootstrap twitter-bootstrap-3 bootstrap-4


【解决方案1】:

使用Sass很简单,使用@extend即可:

.pull-right-xs { 
    @extend .pull-right;
 }

【讨论】:

    【解决方案2】:

    对于那些对文本对齐感兴趣的人,一个简单的解决方案是创建一个新类:

    .text-right-large {
        text-align: right;
    }
    @media (max-width: 991px) {
        .text-right-large {
            text-align: left;
        }
    }
    

    然后添加那个类:

    <div class="row">
        <div class="col-lg-6 col-md-6">elements 1</div>
        <div class="col-lg-6 col-md-6 text-right-large">
            elements 2
        </div>
    </div>
    

    【讨论】:

      【解决方案3】:

      您可以使用推拉来更改列顺序。在大型设备上拉一列并推动另一列:

      <div class="row">
          <div class="col-lg-6 col-md-6 col-lg-pull-6">elements 1</div>
          <div class="col-lg-6 col-md-6 col-lg-push-6">
               <div>
                  elements 2
               </div>
          </div>
      </div>
      

      【讨论】:

        【解决方案4】:

        您可以将“元素 2”放在较小的列中(即:col-2),然后仅在较大的屏幕上使用 push

        <div class="row">
            <div class="col-lg-6 col-xs-6">elements 1</div>
            <div class="col-lg-6 col-xs-6">
              <div class="row">
               <div class="col-lg-2 col-lg-push-10 col-md-2 col-md-push-0 col-sm-2 col-sm-push-0 col-xs-2 col-xs-push-0">
                 <div class="pull-right">elements 2</div>
               </div>
              </div>
            </div>
        </div>
        

        演示:http://bootply.com/88095

        另一种选择是使用@media 查询覆盖.pull-right 的浮动。

        @media (max-width: 1200px) {
            .row .col-lg-6 > .pull-right {
                float: none !important;
            }
        }
        

        最后,另一种选择是创建自己的.pull-right-lg CSS 类..

        @media (min-width: 1200px) {
            .pull-right-lg {
                float: right;
            }
        }
        

        更新

        Bootstrap 4 包含 responsive floats,因此在这种情况下您只需使用 float-lg-right
        不需要额外的 CSS

        Bootstrap 4 Demo

        【讨论】:

        • 谢谢,但内容必须使用完整的 6 列,否则它会换行,这是我们不想要的。
        • 希望没有媒体查询,但它会做到。谢谢你
        【解决方案5】:

        将下面显示的 CSS 添加到您的 Bootstrap 3 应用程序可以支持

        pull-{ε|sm-|md-|lg-}left
        pull-{ε|sm-|md-|lg-}right
        

        类与新类完全一样

        float-{ε|sm-|md-|lg-|xl-}left
        float-{ε|sm-|md-|lg-|xl-}right
        

        Bootstrap 4 中引入的类:

        @media (min-width: 768px) {
            .pull-sm-left {
                float: left !important;
            }
            .pull-sm-right {
                float: right !important;
            }
            .pull-sm-none {
                float: none !important;
            }
        }
        @media (min-width: 992px) {
            .pull-md-left {
                float: left !important;
            }
            .pull-md-right {
                float: right !important;
            }
            .pull-md-none {
                float: none !important;
            }
        }
        @media (min-width: 1200px) {
            .pull-lg-left {
                float: left !important;
            }
            .pull-lg-right {
                float: right !important;
            }
            .pull-lg-none {
                float: none !important;
            }
        }
        .pull-none {
            float: none !important;
        }
        

        除此之外,它还增加了

        pull-{ε|sm-|md-|lg-}none
        

        为了完整性,兼容

        float-{ε|sm-|md-|lg-|xl-}none
        

        来自 Bootstrap 4。

        【讨论】:

          【解决方案6】:

          现在包括引导程序 4:

          @import url('https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.min.css');
          

          代码应该是这样的:

          <div class="row">
              <div class="col-lg-6 col-md-6" style="border:solid 1px red">elements 1</div>
              <div class="col-lg-6 col-md-6" style="border:solid 1px red">
                   <div class="pull-lg-right pull-xl-right">
                      elements 2
                   </div>
              </div>
          </div>
          

          【讨论】:

            【解决方案7】:

            只需使用引导程序的响应式实用程序类!

            该任务的最佳解决方案是使用以下代码:

            <div class="row">
                <div class="col-lg-6 col-md-6">elements 1</div>
                <div class="col-lg-6 col-md-6 text-right">
                    <div class="visible-lg-inline-block visible-md-block visible-sm-block visible-xs-block">
                        elements 2
                    </div>
                </div>
            </div>
            

            元素将仅在 lg 屏幕上向右对齐 - 在其余部分,display 属性将设置为 block,因为它默认为 div 元素。 这种方法是在父元素上使用text-right 类而不是pull-right

            替代解决方案:

            最大的缺点是里面的html代码需要重复两次。

            <div class="row">
                <div class="col-lg-6 col-md-6">elements 1</div>
                <div class="col-lg-6 col-md-6">
                     <div class="pull-right visible-lg">
                        elements 2
                     </div>
                     <div class="hidden-lg">
                        elements 2
                     </div>
                </div>
            </div>
            

            【讨论】:

              【解决方案8】:
              .pull-right-not-xs, .pull-right-not-sm, .pull-right-not-md, .pull-right-not-lg{
                  float: right;
              }
              
              .pull-left-not-xs, .pull-left-not-sm, .pull-left-not-md, .pull-left-not-lg{
                  float: left;
              }
              @media (max-width: 767px) {    
                  .pull-right-not-xs, .pull-left-not-xs{
                      float: none;
                  }
                  .pull-right-xs {
                      float: right;
                  }
                  .pull-left-xs {
                      float: left;
                  }
              }
              @media (min-width: 768px) and (max-width: 991px) {
                  .pull-right-not-sm, .pull-left-not-sm{
                      float: none;
                  }
                  .pull-right-sm {
                      float: right;
                  }
                  .pull-left-sm {
                      float: left;
                  }
              }
              @media (min-width: 992px) and (max-width: 1199px) {
                  .pull-right-not-md, .pull-left-not-md{
                      float: none;
                  }
                  .pull-right-md {
                      float: right;
                  }
                  .pull-left-md {
                      float: left;
                  }
              }
              @media (min-width: 1200px) {
                  .pull-right-not-lg, .pull-left-not-lg{
                      float: none;
                  }
                  .pull-right-lg {
                      float: right;
                  }
                  .pull-left-lg {
                      float: left;
                  }
              }
              

              【讨论】:

              • 很好,这应该是默认 Bootstrap 的一部分!
              【解决方案9】:

              这个问题在 bootstrap-4-alpha-2 中得到解决。

              这里是链接: http://blog.getbootstrap.com/2015/12/08/bootstrap-4-alpha-2/

              在 github 上克隆它: https://github.com/twbs/bootstrap/tree/v4.0.0-alpha.2

              【讨论】:

              【解决方案10】:

              无需使用媒体查询创建自己的类。 Bootstrap 3 已经在列排序下对媒体断点进行浮动排序:http://getbootstrap.com/css/#grid-column-ordering

              该类的语法是col-&lt;#grid-size&gt;-(push|pull)-&lt;#cols&gt;,其中&lt;#grid-size&gt; 是xs、sm、md 或lg,&lt;#cols&gt; 是您希望该列针对该网格大小移动多远。推或拉当然是左或右。

              我一直在使用它,所以我知道它很好用。

              【讨论】:

                【解决方案11】:

                这就是我正在使用的。将 @screen-md-max 更改为其他尺寸

                /* Pull left in lg resolutions */
                @media (min-width: @screen-md-max) {
                    .pull-xs-right {
                        float: right !important;
                    }
                    .pull-xs-left {
                        float: left !important;
                    }
                
                    .radio-inline.pull-xs-left  + .radio-inline.pull-xs-left ,
                    .checkbox-inline.pull-xs-left  + .checkbox-inline.pull-xs-left  {
                        margin-left: 0;
                    }
                    .radio-inline.pull-xs-left, .checkbox-inline.pull-xs-left{
                        margin-right: 10px;
                    }
                }
                

                【讨论】:

                  【解决方案12】:

                  也很好用:

                  /* small screen portrait */
                  
                  @media (max-width: 321px) {
                  
                    .pull-right { 
                      float: none!important; 
                    }
                  
                  }
                  
                  
                  /* small screen lanscape */
                  
                  @media (max-width: 480px) {
                  
                    .pull-right {
                      float: none!important; 
                    }
                  
                  }
                  

                  【讨论】:

                    【解决方案13】:

                    试试这个 LESS sn-p(它是根据上面的示例和 grid.less 中的媒体查询混合创建的)。

                    @media (min-width: @screen-sm-min) {
                    .pull-right-sm {
                      float: right;
                    }
                    }
                    @media (min-width: @screen-md-min) {
                    .pull-right-md {
                      float: right;
                    }
                    }
                    @media (min-width: @screen-lg-min) {
                    .pull-right-lg {
                      float: right;
                    }
                    }
                    

                    【讨论】:

                    • 挖掘这个解决方案!
                    • 这应该添加到引导程序中。
                    猜你喜欢
                    • 2018-07-03
                    • 2013-08-11
                    • 1970-01-01
                    • 2013-08-06
                    • 2015-08-19
                    • 2021-09-17
                    • 2014-12-17
                    • 2013-11-20
                    相关资源
                    最近更新 更多