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.