modal dinamicas color bootstrap alertas twitter-bootstrap bootstrap-4

twitter bootstrap - dinamicas - Falta visible-** y oculto-** en Bootstrap v4



bootstrap modal (8)

En Bootstrap v3, a menudo uso las clases ocultas ** combinadas con clearfix para controlar diseños de múltiples columnas en diferentes anchos de pantalla. Por ejemplo,

Podría combinar múltiples ocultos - ** en un DIV para hacer que mis múltiples columnas aparezcan correctamente en diferentes anchos de pantalla.

Como ejemplo, si quisiera mostrar filas de fotos de productos, 4 por fila en tamaños de pantalla más grandes, 3 en pantallas más pequeñas y luego 2 en pantallas muy pequeñas. Las fotos del producto pueden tener diferentes alturas, por lo que necesito el clearfix para asegurar que la fila se rompa correctamente.

Aquí hay un ejemplo en v3 ...

http://jsbin.com/tosebayode/edit?html,css,output

Ahora que v4 ha eliminado estas clases y las ha reemplazado con las clases visibles / ocultas - ** - arriba / abajo, parece que tengo que hacer lo mismo con múltiples DIV.

Aquí hay un ejemplo similar en v4 ...

http://jsbin.com/sagowihowa/edit?html,css,output

Así que pasé de DIV individuales a tener que agregar múltiples DIV con muchas clases arriba / abajo para lograr lo mismo.

De...

<div class="clearfix visible-xs-block visible-sm-block"></div>

a...

<div class="clearfix hidden-sm-up"></div> <div class="clearfix hidden-md-up hidden-xs-down"></div> <div class="clearfix hidden-md-down"></div>

¿Hay una mejor manera de hacer esto en v4 que he pasado por alto?


Bootstrap 4 para ocultar todo el contenido utiliza esta clase ''.d-none'' , se ocultará todo, independientemente de los puntos de interrupción, igual que la clase de versión de bootstrap anterior ''.hidden''


Bootstrap v4.1 usa nuevos nombres de clase para ocultar columnas en su sistema de cuadrícula.

Para ocultar columnas dependiendo del ancho de la pantalla, use la clase d-none o cualquiera de las clases d-{sm,md,lg,xl}-none . Para mostrar columnas en ciertos tamaños de pantalla, combine las clases mencionadas anteriormente con las clases d-block o d-{sm,md,lg,xl}-block .

Ejemplos son:

<div class="d-lg-none">hide on screens wider than lg</div> <div class="d-none d-lg-block">hide on screens smaller than lg</div>

Más de estos here .


Desafortunadamente, estas nuevas clases de bootstrap 4 no funcionan como las antiguas en un div usando collapse ya que configuran el div visible para block que comienza visible en lugar de oculto y si agrega un div extra alrededor de la funcionalidad de collapse ya no funciona.


Desafortunadamente, todas las clases hidden-*-up y hidden-*-down se eliminaron de Bootstrap (a partir de Bootstrap Versión 4 Beta , en la Versión 4 Alfa y la Versión 3 estas clases todavía existían).

En su lugar, se deben usar nuevas clases d-* , como se menciona aquí: https://getbootstrap.com/docs/4.0/migration/#utilities

Descubrí que el nuevo enfoque es menos útil en algunas circunstancias. El antiguo enfoque era OCULTAR elementos, mientras que el nuevo enfoque es MOSTRAR elementos. Mostrar elementos no es tan fácil con CSS, ya que necesita saber si el elemento se muestra como bloque, en línea, bloque en línea, tabla, etc.

Es posible que desee restaurar los antiguos estilos "hidden- *" conocidos de Bootstrap 3 con este CSS:

/*/ * Restore Bootstrap 3 "hidden" utility classes. /*/ /* Breakpoint XS */ @media (max-width: 575px) { .hidden-xs-down, .hidden-sm-down, .hidden-md-down, .hidden-lg-down, .hidden-xl-down, .hidden-xs-up, .hidden-unless-sm, .hidden-unless-md, .hidden-unless-lg, .hidden-unless-xl { display: none !important; } } /* Breakpoint SM */ @media (min-width: 576px) and (max-width: 767px) { .hidden-sm-down, .hidden-md-down, .hidden-lg-down, .hidden-xl-down, .hidden-xs-up, .hidden-sm-up, .hidden-unless-xs, .hidden-unless-md, .hidden-unless-lg, .hidden-unless-xl { display: none !important; } } /* Breakpoint MD */ @media (min-width: 768px) and (max-width: 991px) { .hidden-md-down, .hidden-lg-down, .hidden-xl-down, .hidden-xs-up, .hidden-sm-up, .hidden-md-up, .hidden-unless-xs, .hidden-unless-sm, .hidden-unless-lg, .hidden-unless-xl { display: none !important; } } /* Breakpoint LG */ @media (min-width: 992px) and (max-width: 1199px) { .hidden-lg-down, .hidden-xl-down, .hidden-xs-up, .hidden-sm-up, .hidden-md-up, .hidden-lg-up, .hidden-unless-xs, .hidden-unless-sm, .hidden-unless-md, .hidden-unless-xl { display: none !important; } } /* Breakpoint XL */ @media (min-width: 1200px) { .hidden-xl-down, .hidden-xs-up, .hidden-sm-up, .hidden-md-up, .hidden-lg-up, .hidden-xl-up, .hidden-unless-xs, .hidden-unless-sm, .hidden-unless-md, .hidden-unless-lg { display: none !important; } }

Las clases hidden-unless-* no se incluyeron en Bootstrap 3, pero también son útiles y deberían explicarse por sí mismas.


El usuario Klaro sugirió restaurar las antiguas clases de visibilidad, lo cual es una buena idea. Desafortunadamente, su solución no funcionó en mi proyecto.

Creo que es una mejor idea restaurar el antiguo mixin de bootstrap, ya que cubre todos los puntos de interrupción que el usuario puede definir individualmente.

Aquí está el código:

// Restore Bootstrap 3 "hidden" utility classes. @each $bp in map-keys($grid-breakpoints) { .hidden-#{$bp}-up { @include media-breakpoint-up($bp) { display: none !important; } } .hidden-#{$bp}-down { @include media-breakpoint-down($bp) { display: none !important; } } .hidden-#{$bp}-only{ @include media-breakpoint-only($bp){ display:none !important; } } }

En mi caso, he insertado esta parte en un archivo _custom.scss que se incluye en este punto en bootstrap.scss :

/*! * Bootstrap v4.0.0-beta (https://getbootstrap.com) * Copyright 2011-2017 The Bootstrap Authors * Copyright 2011-2017 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ @import "functions"; @import "variables"; @import "mixins"; @import "custom"; // <-- my custom file for overwriting default vars and adding the snippet from above @import "print"; @import "reboot"; [..]


No espero que múltiples div''s sean una buena solución.

También creo que puede reemplazar .visible-sm-block con .hidden-xs-down y .hidden-md-up (o .hidden-sm-down y .hidden-lg-up para actuar en las mismas consultas de medios).

hidden-sm-up compila en:

.visible-sm-block { display: none !important; } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-block { display: block !important; } }

.hidden-sm-down y .hidden-lg-up compilan en:

@media (max-width: 768px) { .hidden-xs-down { display: none !important; } } @media (min-width: 991px) { .hidden-lg-up { display: none !important; } }

Ambas situaciones deberían actuar igual.

Su situación se vuelve diferente cuando intenta reemplazar .visible-sm-block y .visible-lg-block . Los documentos de Bootstrap v4 te dicen:

Estas clases no intentan acomodar casos menos comunes en los que la visibilidad de un elemento no puede expresarse como un único rango contiguo de tamaños de punto de corte de la vista; en su lugar, necesitará usar CSS personalizado en tales casos.

.visible-sm-and-lg { display: none !important; } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-and-lg { display: block !important; } } @media (min-width: 1200px) { .visible-sm-and-lg { display: block !important; } }



Actualización para Bootstrap 4 (2018)

Las hidden-* y hidden-* ya no existen en Bootstrap 4. Si desea ocultar un elemento en niveles o puntos de interrupción específicos en Bootstrap 4, use las clases de visualización d-* consecuencia.

Recuerde que extra-small / mobile (anteriormente xs ) es el punto de interrupción predeterminado (implícito), a menos que sea anulado por un punto de interrupción más grande . Por lo tanto, el infijo -xs ya no existe en Bootstrap 4 .

Mostrar / ocultar para punto de interrupción y abajo :

  • hidden-xs-down (hidden-xs) = d-none d-sm-block
  • hidden-sm-down (hidden-sm hidden-xs) = d-none d-md-block
  • hidden-md-down (hidden-md hidden-sm hidden-xs) = d-none d-lg-block
  • hidden-lg-down = d-none d-xl-block
  • hidden-xl-down (n / a 3.x) = d-none (igual que hidden )

Mostrar / ocultar para punto de interrupción y arriba :

  • hidden-xs-up = d-none (igual que hidden )
  • hidden-sm-up = d-sm-none
  • hidden-md-up = d-md-none
  • hidden-lg-up = d-lg-none
  • hidden-xl-up (n / a 3.x) = d-xl-none

Mostrar / ocultar solo para un único punto de interrupción :

  • hidden-xs (solo) = d-none d-sm-block (igual que hidden-xs-down )
  • hidden-sm (solo) = d-block d-sm-none d-md-block
  • hidden-md (solo) = d-block d-md-none d-lg-block
  • hidden-lg (solo) = d-block d-lg-none d-xl-block
  • hidden-xl (n / a 3.x) = d-block d-xl-none
  • visible-xs (solo) = d-block d-sm-none
  • visible-sm (solo) = d-none d-sm-block d-md-none
  • visible-md (solo) = d-none d-md-block d-lg-none
  • visible-lg (solo) = d-none d-lg-block d-xl-none
  • visible-xl (n / a 3.x) = d-none d-xl-block

Demostración de las clases de visualización receptiva en Bootstrap 4

Además, tenga en cuenta que el d-*-block se puede reemplazar con d-*-inline , d-*-flex , d-*-table-cell , d-*-table etc., según el tipo de visualización del elemento. Lea más sobre las clases de visualización