Falta o visível - * * e escondido - * * no Bootstrap v4

no Bootstrap v3, uso frequentemente as classes escondidas - ** combinadas com o clearfix para controlar os layouts multi-colunas em diferentes larguras do ecrã. Por exemplo,

Eu poderia combinar vários escondidos - * * em um DIV para fazer minhas múltiplas colunas aparecerem corretamente em diferentes larguras de tela.

como exemplo, se eu quisesse mostrar linhas de fotos do produto, 4 por linha em tamanhos de ecrã maiores, 3 em ecrãs menores, depois 2 em ecrãs muito pequenos. As fotos do produto podem ser diferentes alturas então eu precisa do clearfix para garantir que a linha quebra corretamente.

Aqui está um exemplo em v3...

Http://jsbin.com/tosebayode/edit?html,css,saída

Agora que o v4 eliminou estas classes, e substituiu-as pelas classes visível/escondida-** - up/down, parece que tenho de fazer a mesma coisa com várias DIVs em vez disso.

Aqui está um exemplo semelhante em v4...

Http://jsbin.com/sagowihowa/edit?html,css,saída

Por isso, passei de solteira. DIVs a ter que adicionar várias DIVs com muitas classes de cima/baixo para alcançar a mesma coisa.

De.....

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

To...

<div class="clearfix hidden-sm-up"></div>
<div class="clearfix hidden-md-up hidden-xs-down"></div>
<div class="clearfix hidden-md-down"></div>
Há uma maneira melhor de fazer isto na v4 que eu tenha esquecido?

Author: Martin Lindgren, 2016-02-12

7 answers

Actualização do 'Bootstrap' 4 (2018)

As classes hidden-* e visible-* já não existe in Bootstrap 4. Se quiser esconder um elemento em níveis específicos ou pontos de paragem no Bootstrap 4, use o d-* classes de visualização em conformidade.

Lembre-se que o ponto de paragem extra-pequeno/móvel (anteriormente xs) é o ponto de paragem predefinido (implícito), a menos que substituído por um maior. Portanto, o -xs infix já não existe. existe no Bootstrap 4 .

Mostrar / esconder para ponto de paragem e para baixo:

  • 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 a hidden)

Mostrar / esconder para ponto de paragem e para cima:

  • hidden-xs-up = d-none (o mesmo 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 / esconder apenas para um único ponto de paragem:

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

Demonstração das classes de visualização sensíveis no Bootstrap 4

Também, note que d-*-block pode ser substituído com d-*-inline, d-*-flex, d-*-table-cell, d-*-table etc.. dependendo do tipo de exibição do elemento. Leia mais nas classes de visualização

 405
Author: Zim, 2018-04-25 11:35:58

Infelizmente todas as classes hidden-*-up e hidden-*-down foram removidas do Bootstrap (a partir da versão Bootstrap 4 Beta , na versão 4 Alfa e na versão 3 estas classes ainda existiam).

Em vez disso, devem ser utilizadas novas classes d-*, Como mencionado aqui: https://getbootstrap.com/docs/4.0/migration/#utilities

Descobri que a nova abordagem é menos útil em algumas circunstâncias. A velha abordagem era esconder os elementos enquanto os novos abordagem é para mostrar elementos. Mostrar elementos não é tão fácil com CSS, uma vez que você precisa saber se o elemento é apresentado como bloco, inline, inline-block, tabela etc.

Você pode querer restaurar os antigos estilos "escondidos - *" conhecidos do Bootsrap 3 com 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;
    } 
}

As classes hidden-unless-* não foram incluídas no Bootstrap 3, mas também são úteis e devem ser auto-explicativas.

 23
Author: Klaro, 2017-08-14 21:16:09

O Bootstrap v4.1 usa novos nomes de classes para esconder colunas no seu sistema de grelha.

Para esconder as colunas dependendo da largura do ecrã, use d-none A classe ou qualquer uma das classes d-{sm,md,lg,xl}-none. Para mostrar as colunas em certos tamanhos de ecrã, combine as classes acima mencionadas com as classes d-block ou d-{sm,md,lg,xl}-block.

Os exemplos são:

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

Mais destes aqui .

 6
Author: sandddyyyy, 2018-05-28 03:24:21

Http://v4-alpha.getbootstrap.com/layout/responsive-utilities/

Agora você tem que definir o tamanho do que está sendo escondido como assim

.hidden-xs-down

Irá esconder qualquer coisa de xs e menores, apenas xs

.hidden-xs-up

Vai esconder tudo

 4
Author: Kyle Selman, 2016-02-11 22:56:26
Não espero que múltiplos divs sejam uma boa solução.

Eu também acho que você pode substituir .visible-sm-block por .hidden-xs-down e .hidden-md-up (ou .hidden-sm-down e .hidden-lg-up para agir nas mesmas consultas de mídia).

hidden-sm-up compila em:

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

.hidden-sm-down e .hidden-lg-up compila em:

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

Ambas as situações devem agir da mesma forma.

A tua situação torna-se diferente quando tentas substituir .visible-sm-block e .visible-lg-block. Bootstrap v4 docs dizer-lhe:

Estas aulas não tentam para acomodar casos menos comuns em que um a visibilidade do elemento não pode ser expressa como um único alcance contíguo dos tamanhos de ponto de paragem do viewport; em alternativa, terá de usar CSS personalizados nesses 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;
  }
}
 4
Author: Bass Jobsen, 2016-02-12 12:35:55
O usuário Klaro sugeriu restaurar as antigas classes de visibilidade, o que é uma boa idéia. Infelizmente, a solução deles não funcionou no meu projecto.

Eu penso que é uma idéia melhor restaurar a mistura velha de bootstrap, porque está cobrindo todos os pontos de paragem que podem ser definidos individualmente pelo Usuário.

Aqui está o 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;
    }
  }
}

No meu caso, inseri esta parte num ficheiro _custom.scss que está incluído neste ponto no 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";
[..]
 3
Author: Michael Walter, 2017-09-06 08:47:55

Infelizmente, estas novas classes de bootstrap 4 não funcionam como as antigas num div usando {[[0]} à medida que configuram o div visível para block que começa visível em vez de escondido e se adicionar um div extra à volta da funcionalidade collapse já não funciona.

 0
Author: Scotty G, 2018-02-23 19:47:59