Подтвердить что ты не робот

Bootstrap, pull-left для небольших устройств

Я создаю сайт в Bootstrap 3. В любом случае, чтобы элемент использовал класс pull-left на более мелких устройствах и использовал pull-right на более крупных?

Что-то вроде: pull-left-sm pull-right-lg.

Мне удалось сделать это с помощью jquery, уловив размер окна. Есть ли другой путь? Pref без дублирования кода в скрытом-x pull-left. Или считается, что сейчас лучше дублировать код/​​контент, когда вы будете реагировать?

4b9b3361

Ответ 1

Вы можете использовать CSS Media Queries

Основное использование будет таким: если вы хотите плавать влево ниже устройств шириной 500 пикселей, то

@media (max-width: 500px) {
 .your_class {
    float: left;
  }
}

 @media (min-width: 501px) {
 .your_class {
    float: right;
  }
}

Ответ 2

Просто добавьте это в свой файл SASS:

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

Вставьте фактические значения px для $screen-*, если вы используете простой CSS.

HTML:

<div class="pull-md-left pull-lg-left">
    this div is only floated on screen-md and screen-lg
</div>

Ответ 3

Нет необходимости создавать свой собственный класс с медиа-запросами. Bootstrap 3 уже имеет упорядочение с плавающей запятой для точек прерывания медиа в разделе " Порядок столбцов".

Синтаксис для класса: col-<#grid-size>-(push|pull)-<#cols> где <#grid-size> - это xs, sm, md или lg а <#cols> - как далеко вы хочу, чтобы столбец переместился для этого размера сетки. Толкать или тянуть влево или вправо, конечно.

Я использую это все время, поэтому я знаю, что это работает хорошо.

Ответ 4

Возможно, вы можете использовать порядок столбцов.

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

Похоже, что плавающие столбцы будут добавлены в версию 4, как это сделал @Alex - https://github.com/twbs/bootstrap/issues/13690

Ответ 5

Да. Создайте свой собственный стиль. Я не знаю, какой элемент вы пытаетесь плавать влево/вправо, но создайте файл application.css и создайте для него класс CSS:

/* default, mobile-first styles */
.logo {
    float: left;
}

/* tablets and upwards */
@media (min-width: 768px) {
    .logo {
        float: right;
    }
}

Не бойтесь писать собственный CSS. Бутстрап предназначен именно для этого: бутстрап, стартовая точка.

Ответ 6

Это то, что я использую. изменить @screen-xs-max для других размеров

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

Ответ 7

Меньшая версия ответа @Alex

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