Bootstrap 3: pull-right solo per col-lg


127

Nuovo per bootstrap 3 .... Nel mio layout ho:

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

Vorrei che gli "elementi 2" NON fossero allineati su schermi più piccoli di quelli colorati. Così efficace avere la classe pull-right solo per col-lg-6 ...

Come ho potuto raggiungere questo obiettivo?

Ecco un violino: http://jsfiddle.net/thibs/Y6WPz/

Grazie



Quindi ora questo è un aspetto di Bootstrap 4 . Basta usare order-lg-1, order-lg-2ecc. Sulle tue colonne.
— limfinity

Risposte:


156

È possibile inserire "elemento 2" in una colonna più piccola (ovvero:) col-2e quindi utilizzare solo pushsu schermi più grandi:

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

Demo: http://bootply.com/88095

Un'altra opzione è quella di ignorare il float .pull-rightdell'utilizzo di una query @media ..

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

Infine, un'altra opzione è quella di creare la tua .pull-right-lgclasse CSS ..

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

AGGIORNARE

Bootstrap 4 include float reattivi , quindi in questo caso lo useresti float-lg-right.
Non è necessario alcun CSS aggiuntivo .

Demo Bootstrap 4


grazie per questo, ma il contenuto deve usare i 6 col pieni altrimenti si avvolge, cosa che non vogliamo.
— Thibs

speravo di non avere una query multimediale, ma lo farà. Grazie
— Thibs

28

Prova questo MENO frammento (è stato creato dagli esempi precedenti e i mixin di query multimediali in 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;
}
}

Scava questa soluzione ty!
— Pez,

3
Questo dovrebbe essere aggiunto in bootstrap.
— Lorem Ipsum Dolor,

20
.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;
    }
}

Bene, questo dovrebbe far parte del Bootstrap predefinito!
— Owen,

12

Non è necessario creare la tua classe con query multimediali. Bootstrap 3 ha già un ordinamento float per i punti di interruzione dei supporti in Ordine colonna: http://getbootstrap.com/css/#grid-column-ordering

La sintassi per la classe è col-<#grid-size>-(push|pull)-<#cols>dove <#grid-size>sono xs, sm, md o lg ed <#cols>è quanto si desidera che la colonna si sposti per quella dimensione della griglia. Spingere o tirare è a sinistra o a destra, ovviamente.

Lo uso sempre, quindi so che funziona bene.


3

Funziona bene anche:

/* small screen portrait */

@media (max-width: 321px) {

  .pull-right { 
    float: none!important; 
  }

}


/* small screen lanscape */

@media (max-width: 480px) {

  .pull-right {
    float: none!important; 
  }

}

3

L'aggiunta del CSS mostrato di seguito all'applicazione Bootstrap 3 abilita il supporto per

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

classi che funzionano esattamente come le nuove

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

classi che sono state introdotte in 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;
}

A parte questo, aggiunge

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

per completezza, essendo compatibile con

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

da Bootstrap 4.


2

Per coloro che sono interessati all'allineamento del testo, una soluzione semplice è quella di creare una nuova classe:

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

Quindi aggiungi quella classe:

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

2

È molto semplice usare Sass, basta usare @extend:

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

1

Questo è quello che sto usando. change @ screen-md-max per altre dimensioni

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


1

Usa solo le classi di utilità responsive di bootstrap!

La soluzione migliore per tale attività è utilizzare il seguente codice:

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

L'elemento verrà allineato a destra solo sulle lgschermate; per il resto l' displayattributo verrà impostato blockcome è predefinito per l' divelemento. Questo approccio utilizza la text-rightclasse sull'elemento padre anziché pull-right.

Soluzione alternativa:

Lo svantaggio maggiore è che il codice HTML all'interno deve essere ripetuto due volte.

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

1

È possibile utilizzare push and pull per modificare l'ordine delle colonne. Tiri una colonna e spingi l'altra su dispositivi di grandi dimensioni:

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

0

ora include bootstrap 4:

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

e il codice dovrebbe essere così:

<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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.