¿Cómo cambio el orden de las columnas Bootstrap 3 en el diseño móvil?

Resuelto user3000310 asked hace 10 años • 8 respuestas

Estoy creando un diseño responsivo con una barra de navegación fija en la parte superior. Debajo tengo dos columnas, una para la barra lateral (3) y otra para el contenido (9). Que en el escritorio se ve así

barra de navegación
[3][9]

Cuando uso resizeun dispositivo móvil, navbarla barra lateral está comprimida y oculta, luego se apila encima del contenido, así:

barra de navegación
[3]
[9]

Me gustaría que el contenido principal estuviera en la parte superior, así que necesito cambiar el orden en el móvil a este:

barra de navegación
[9]
[3]

Encontré este artículo que cubre los mismos puntos, pero la respuesta aceptada se editó para decir que la solución no se aplica a la versión actual de Bootstrap.

¿Cómo puedo reordenar estas columnas en el móvil? O alternativamente, ¿cómo puedo incluir el grupo de listas de la barra sid en mi barra de navegación en expansión?

Aquí está mi código:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<div class="navbar navbar-inverse navbar-static-top">
  <div class="container">
    <a href="#" class="navbar-brand">Brand Title</a>
    <button class="navbar-toggle" data-toggle="collapse" data-target=".navHeaderCollapse">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <div class="collapse navbar-collapse navHeaderCollapse">

    <ul class="nav navbar-nav navbar-right"><!--original navbar-->
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">FAQ</a></li>
    </ul>

    </div>
  </div>
</div><!--End Navbar Div-->
    <div class="container">
  <div class="row">

    <div class="col-lg-3">
  <div class="list-group">
    <a href="#" class="list-group-item">
    <h4 class="list-group-item-heading">Lorem ipsum</h4>
    <p class="list-group-item-text">Lorem Ipsum is simply dummy text.</p></a>
  </div>
</div><!--end sidebar-->


<div class="col-lg-9">
  <div class="panel panel-default">
    <div class="panel-body">
      <div class="page-header">
     Main Content
    </div>
  </div>
</div><!--end main content area-->
Expandir fragmento

user3000310 avatar Nov 24 '13 12:11 user3000310
Aceptado

No puede cambiar el orden de las columnas en pantallas más pequeñas, pero puede hacerlo en pantallas grandes.

Así que cambia el orden de tus columnas.

<!--Main Content-->
<div class="col-lg-9 col-lg-push-3">
</div>

<!--Sidebar-->
<div class="col-lg-3 col-lg-pull-9">
</div>

De forma predeterminada, esto muestra primero el contenido principal.

Entonces, en dispositivos móviles, el contenido principal se muestra primero.

Al usar col-lg-pushy col-lg-pullpodemos reordenar las columnas en pantallas grandes y mostrar la barra lateral a la izquierda y el contenido principal a la derecha.

Trabajando el violín aquí .

emre nevayeshirazi avatar Nov 24 '2013 05:11 emre nevayeshirazi

Actualizado 2018

Para la pregunta original basada en Bootstrap 3 , la solución fue usar push-pull .

En Bootstrap 4 ahora es posible cambiar el orden, incluso cuando las columnas están apiladas verticalmente en todo su ancho, gracias a Bootstrap 4 flexbox. OFC, el método push-pull seguirá funcionando, pero ahora hay otras formas de cambiar el orden de las columnas en Bootstrap 4, lo que permite reordenar columnas de ancho completo.

Método 1: uso flex-column-reversepara xspantallas:

<div class="row flex-column-reverse flex-md-row">
    <div class="col-md-3">
        sidebar
    </div>
    <div class="col-md-9">
        main
    </div>
</div>

Método 2: uso order-firstpara xspantallas:

<div class="row">
    <div class="col-md-3">
        sidebar
    </div>
    <div class="col-md-9 order-first order-md-last">
        main
    </div>
</div>

Bootstrap 4 (alfa 6): http://www.codeply.com/go/bBMOsvtJhD
Bootstrap 4.1: https://www.codeply.com/go/e0v77yGtcr


Respuesta original 3.x

Para la pregunta original basada en Bootstrap 3 , la solución fue usar push-pull para los anchos más grandes, y luego las columnas mostrarán su orden natural en anchos más pequeños (xs). (AB al revés a BA).

<div class="container">
    <div class="row">
        <div class="col-md-9 col-md-push-3">
            main
        </div>
        <div class="col-md-3 col-md-pull-9">
            sidebar
        </div>
    </div>
</div>

Arranque 3: http://www.codeply.com/go/wgzJXs3gel

@emre declaró: " No puedes cambiar el orden de las columnas en pantallas más pequeñas, pero puedes hacerlo en pantallas grandes ". Sin embargo, esto debe aclararse para decir: "No se puede cambiar el orden de las columnas" apiladas " de ancho completo ..." en Bootstrap 3.

Carol Skelly avatar Mar 22 '2017 16:03 Carol Skelly