Bootstrap 3: pull-right apenas para col-lg

127

Novo no bootstrap 3 .... No meu layout, tenho:

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

Gostaria que os 'elementos 2' NÃO estivessem alinhados em telas menores que as de col-lg. Tão efetivamente tendo a classe pull-right apenas para col-lg-6 ...

Como eu consegui isso?

Aqui está um violino: http://jsfiddle.net/thibs/Y6WPz/

Obrigado

Thibs
fonte
Portanto, isso agora é uma coisa no Bootstrap 4 . Basta usar order-lg-1, order-lg-2etc. em suas colunas.
limfinity

Respostas:

156

Você pode colocar o "elemento 2" em uma coluna menor (por exemplo:) col-2e depois usar apenas pushem telas maiores:

<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

Outra opção é substituir o flutuador do .pull-rightuso de uma consulta @media.

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

Por fim, outra opção é criar sua própria .pull-right-lgclasse CSS.

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

ATUALIZAR

O Bootstrap 4 inclui carros alegóricos responsivos , portanto, neste caso, você apenas usaria float-lg-right.
Nenhum CSS extra é necessário .

Demonstração do Bootstrap 4

Zim
fonte
obrigado por isso, mas o conteúdo deve usar as 6 colunas completas, caso contrário, o que não queremos.
Thibs
esperava não ter uma consulta de mídia, mas funcionará. Obrigado
Thibs
28

Experimente este trecho MENOS (criado a partir dos exemplos acima e dos mixins de consulta de mídia em 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;
}
}
Mark P
fonte
Dig esta solução ty!
Pez
3
Isso deve ser adicionado ao 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;
    }
}
Coca
fonte
Bom, isso deve fazer parte do Bootstrap padrão!
Owen
12

Não há necessidade de criar sua própria classe com consultas de mídia. O Bootstrap 3 já possui pedidos de flutuação para pontos de interrupção de mídia em Ordenação de colunas: http://getbootstrap.com/css/#grid-column-ordering

A sintaxe da classe é col-<#grid-size>-(push|pull)-<#cols>onde <#grid-size>está xs, sm, md ou lg e <#cols>é a distância que você deseja que a coluna se mova para esse tamanho de grade. Empurrar ou puxar é esquerdo ou direito, é claro.

Eu o uso o tempo todo, então sei que funciona bem.

Quinn
fonte
3

Funciona bem também:

/* small screen portrait */

@media (max-width: 321px) {

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

}


/* small screen lanscape */

@media (max-width: 480px) {

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

}
Greg
fonte
3

Adicionar o CSS mostrado abaixo ao seu aplicativo Bootstrap 3 permite suporte para

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

classes que funcionam exatamente como o novo

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

classes que foram introduzidas no 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;
}

Além disso, acrescenta

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

integridade, sendo compatível com

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

do Bootstrap 4.

caw
fonte
2

Para aqueles interessados ​​no alinhamento de texto, uma solução simples é criar uma nova classe:

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

Em seguida, adicione essa 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>
jchavannes
fonte
2

É muito simples usar o Sass, basta usar @extend:

.pull-right-xs { 
    @extend .pull-right;
 }
Rogerio Orioli
fonte
1

É isso que estou usando. alterar @ screen-md-max para outros tamanhos

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

Basta usar as classes de utilidade responsivas do bootstrap!

A melhor solução para essa tarefa é usar o seguinte código:

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

O elemento será alinhado à direita apenas nas lgtelas - no restante, o displayatributo será definido blockcomo é por padrão para o divelemento. Essa abordagem está usando a text-rightclasse no elemento pai em vez de pull-right.

Solução alternativa:

A maior desvantagem é que o código html dentro precisa ser repetido duas vezes.

<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>
Lucas
fonte
1

Você pode usar push e pull para alterar a ordem das colunas. Você puxa uma coluna e empurra a outra em dispositivos grandes:

<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>
Carlos Ucha
fonte
0

agora inclua o bootstrap 4:

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

e código deve ser assim:

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