Bootstrap, pull-left for small devices

前端 未结 7 741
名媛妹妹
名媛妹妹 2020-12-05 00:31

I\'m building a site in Bootstrap 3. Is there anyway to make a element use the class pull-left on smaller devices and use pull-right on larger ones?

Something like:

相关标签:
7条回答
  • 2020-12-05 00:44

    Yes. Create your own style. I don’t know what element you’re trying to float left/right, but create an application.css file and create a CSS class for it:

    /* default, mobile-first styles */
    .logo {
        float: left;
    }
    
    /* tablets and upwards */
    @media (min-width: 768px) {
        .logo {
            float: right;
        }
    }
    

    Don’t be afraid to write custom CSS. Bootstrap is meant to be exactly that: a bootstrap, a starter point.

    0 讨论(0)
  • 2020-12-05 00:47

    Just add this to your SASS file:

    @media (max-width: $screen-xs-max) {
        .pull-xs-left {
            float: left;
        }
        .pull-xs-right {
            float: right;
        }
    }
    
    @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
        .pull-sm-left {
            float: left;
        }
        .pull-sm-right {
            float: right;
        }
    }
    
    @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
        .pull-md-left {
            float: left;
        }
        .pull-md-right {
            float: right;
        }
    }
    
    @media (min-width: $screen-lg-min) {
        .pull-lg-left {
            float: left;
        }
        .pull-lg-right {
            float: right;
        }
    }
    

    Insert actual px values for $screen-* if you use plain CSS of course.

    HTML:

    <div class="pull-md-left pull-lg-left">
        this div is only floated on screen-md and screen-lg
    </div>
    
    0 讨论(0)
  • 2020-12-05 00:52

    LESS version of @Alex's answer

    @media (max-width: @screen-xs-max) {
        .pull-xs-left {
            .pull-left();
        }
    
        .pull-xs-right {
            .pull-right();
        }
    }
    
    @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
        .pull-sm-left {
            .pull-left();
        }
    
        .pull-sm-right {
            .pull-right();
        }
    }
    
    @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
        .pull-md-left {
            .pull-left();
        }
    
        .pull-md-right {
            .pull-right();
        }
    }
    
    @media (min-width: @screen-lg-min) {
        .pull-lg-left {
            .pull-left();
        }
    
        .pull-lg-right {
            .pull-right();
        }
    }
    
    0 讨论(0)
  • 2020-12-05 00:55

    Possibly you can use column ordering.

    <div class="row">
      <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
      <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
    </div>
    

    Looks like floating columns will be getting added to version 4 by like @Alex has done - https://github.com/twbs/bootstrap/issues/13690

    0 讨论(0)
  • 2020-12-05 00:59

    There is no need to create your own class with media queries. Bootstrap 3 already has float ordering for media breakpoints under Column Ordering.

    The syntax for the class is col-<#grid-size>-(push|pull)-<#cols> where <#grid-size> is xs, sm, md or lg and <#cols> is how far you want the column to move for that grid size. Push or pull is left or right of course.

    I use it all the time so I know it works well.

    0 讨论(0)
  • 2020-12-05 01:00

    This is what i am using . change @screen-xs-max for other sizes

    /* Pull left in mobile resolutions */
    @media (max-width: @screen-xs-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;
        }
    }
    
    0 讨论(0)
提交回复
热议问题